mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Faster update of object manipulation fields while dragging gizmo Move/Rotate/Scale
This commit is contained in:
		
							parent
							
								
									f84838028b
								
							
						
					
					
						commit
						45db1c13ba
					
				
					 4 changed files with 26 additions and 1 deletions
				
			
		|  | @ -3215,6 +3215,11 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) | |||
|         } | ||||
|     } | ||||
|     else if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) { | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|         if (evt.LeftUp()) | ||||
|             m_selection.stop_dragging(); | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| 
 | ||||
|         if (m_layers_editing.state != LayersEditing::Unknown) { | ||||
|             m_layers_editing.state = LayersEditing::Unknown; | ||||
|             _stop_timer(); | ||||
|  |  | |||
|  | @ -631,7 +631,6 @@ void ObjectManipulation::update_if_dirty() | |||
|         update(m_cache.rotation, m_cache.rotation_rounded, meRotation, m_new_rotation); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     if (selection.requires_uniform_scale()) { | ||||
|         m_lock_bnt->SetLock(true); | ||||
|         m_lock_bnt->SetToolTip(_L("You cannot use non-uniform scaling mode for multiple objects/parts selection")); | ||||
|  | @ -654,8 +653,14 @@ void ObjectManipulation::update_if_dirty() | |||
|     else | ||||
|         m_og->disable(); | ||||
| 
 | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     if (!selection.is_dragging()) { | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
|     update_reset_buttons_visibility(); | ||||
|     update_mirror_buttons_visibility(); | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     } | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| 
 | ||||
|     m_dirty = false; | ||||
| } | ||||
|  |  | |||
|  | @ -112,6 +112,9 @@ Selection::Selection() | |||
|     , m_type(Empty) | ||||
|     , m_valid(false) | ||||
|     , m_scale_factor(1.0f) | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     , m_dragging(false) | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| { | ||||
|     this->set_bounding_boxes_dirty(); | ||||
| } | ||||
|  | @ -676,6 +679,10 @@ void Selection::start_dragging() | |||
|     if (!m_valid) | ||||
|         return; | ||||
| 
 | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     m_dragging = true; | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| 
 | ||||
|     set_caches(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -220,6 +220,10 @@ private: | |||
| 
 | ||||
|     float m_scale_factor; | ||||
| 
 | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     bool m_dragging; | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| 
 | ||||
| public: | ||||
|     Selection(); | ||||
| 
 | ||||
|  | @ -312,6 +316,10 @@ public: | |||
|     const BoundingBoxf3& get_scaled_instance_bounding_box() const; | ||||
| 
 | ||||
|     void start_dragging(); | ||||
| #if ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS | ||||
|     void stop_dragging() { m_dragging = false; } | ||||
|     bool is_dragging() const { return m_dragging; } | ||||
| #endif // ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS
 | ||||
| 
 | ||||
|     void translate(const Vec3d& displacement, bool local = false); | ||||
|     void rotate(const Vec3d& rotation, TransformationType transformation_type); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 enricoturri1966
						enricoturri1966