From 1ae93ef20c61c22061e2c90e492eefcabdb4e5c8 Mon Sep 17 00:00:00 2001 From: Garux Date: Thu, 15 Nov 2018 01:02:37 +0300 Subject: [PATCH] also merge clipper points on CSGWrapMerge command --- radiant/clippertool.cpp | 4 ++++ radiant/clippertool.h | 1 + radiant/csg.cpp | 2 +- radiant/selection.cpp | 13 +++++-------- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/radiant/clippertool.cpp b/radiant/clippertool.cpp index 9443a320..a23cdf88 100644 --- a/radiant/clippertool.cpp +++ b/radiant/clippertool.cpp @@ -72,6 +72,10 @@ void Clipper_setPlanePoints( const ClipperPoints& points ){ Clipper_update(); } +const ClipperPoints& Clipper_getPlanePoints(){ + return g_clipper_points; +} + #include "gtkutil/idledraw.h" void Clipper_BoundsChanged(){ if ( Clipper_ok_plane() ) diff --git a/radiant/clippertool.h b/radiant/clippertool.h index 06a59697..68283bf4 100644 --- a/radiant/clippertool.h +++ b/radiant/clippertool.h @@ -48,6 +48,7 @@ public: void Clipper_setPlanePoints( const ClipperPoints& points ); +const ClipperPoints& Clipper_getPlanePoints(); void Clipper_Construct(); void Clipper_Destroy(); void Clipper_modeChanged( bool isClipper ); diff --git a/radiant/csg.cpp b/radiant/csg.cpp index c4d5a22a..96a1a10c 100644 --- a/radiant/csg.cpp +++ b/radiant/csg.cpp @@ -1225,7 +1225,7 @@ void CSG_WrapMerge( const ClipperPoints& clipperPoints ){ void CSG_WrapMerge(){ UndoableCommand undo( "brushWrapMerge" ); - CSG_WrapMerge( ClipperPoints() ); + CSG_WrapMerge( Clipper_getPlanePoints() ); } diff --git a/radiant/selection.cpp b/radiant/selection.cpp index 9b490972..babc48cc 100644 --- a/radiant/selection.cpp +++ b/radiant/selection.cpp @@ -4508,8 +4508,10 @@ EComponentMode ComponentMode() const { return m_componentmode; } void SetManipulatorMode( EManipulatorMode mode ){ - if( ( mode == eClip ) != ( ManipulatorMode() == eClip ) ){ - Clipper_modeChanged( mode == eClip ); + if( ( mode == eClip ) || ( ManipulatorMode() == eClip ) ){ + m_clip_manipulator.reset(); + if( ( mode == eClip ) != ( ManipulatorMode() == eClip ) ) + Clipper_modeChanged( mode == eClip ); } m_pivotIsCustom = false; @@ -4521,12 +4523,7 @@ void SetManipulatorMode( EManipulatorMode mode ){ case eScale: m_manipulator = &m_scale_manipulator; break; case eSkew: m_manipulator = &m_skew_manipulator; break; case eDrag: m_manipulator = &m_drag_manipulator; break; - case eClip: - { - m_manipulator = &m_clip_manipulator; - m_clip_manipulator.reset(); - break; - } + case eClip: m_manipulator = &m_clip_manipulator; break; } pivotChanged(); }