From b111d28053e484e5d356461c9713d12afd97f8e8 Mon Sep 17 00:00:00 2001 From: Garux Date: Wed, 17 Jun 2020 19:36:33 +0300 Subject: [PATCH] * set clipper points to selected face on clipper tool switching-on --- radiant/selection.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/radiant/selection.cpp b/radiant/selection.cpp index fd5e4989..ecb19e5c 100644 --- a/radiant/selection.cpp +++ b/radiant/selection.cpp @@ -4708,11 +4708,18 @@ public: } selectionChange( selector ); } - void reset(){ + void reset( bool initFromFace ){ for( std::size_t i = 0; i < 3; ++i ){ m_points[i].m_set = false; m_points[i].setSelected( false ); ///? } + if( initFromFace && !g_SelectedFaceInstances.empty() ){ + const Winding& w = g_SelectedFaceInstances.last().getFace().getWinding(); + for( std::size_t i = 0; i < 3; ++i ){ + m_points[i].m_set = true; + m_points[i].m_point = w[i].vertex; + } + } updatePlane(); } /* Translatable */ @@ -6836,7 +6843,7 @@ EComponentMode ComponentMode() const { } void SetManipulatorMode( EManipulatorMode mode ){ if( ( mode == eClip ) || ( ManipulatorMode() == eClip ) ){ - m_clip_manipulator.reset(); + m_clip_manipulator.reset( ( mode == eClip ) && ( ManipulatorMode() != eClip ) ); if( ( mode == eClip ) != ( ManipulatorMode() == eClip ) ) Clipper_modeChanged( mode == eClip ); }