From e86cbf0d8c0631b94586d3c98a2b085c9ef4060e Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 18 Feb 2022 14:40:43 +0100 Subject: [PATCH] Tech ENABLE_WORLD_COORDINATE_SCALE_REVISITED - Detection of required transformation baking done on mouse dragging event in place of mouse up event for gizmo scale Fixed conflicts during rebase with master --- src/slic3r/GUI/GUI_ObjectManipulation.cpp | 5 ++--- src/slic3r/GUI/Selection.cpp | 10 ++-------- src/slic3r/GUI/Selection.hpp | 3 +-- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectManipulation.cpp b/src/slic3r/GUI/GUI_ObjectManipulation.cpp index 60609b7eb6..48934e1657 100644 --- a/src/slic3r/GUI/GUI_ObjectManipulation.cpp +++ b/src/slic3r/GUI/GUI_ObjectManipulation.cpp @@ -1268,16 +1268,15 @@ void ObjectManipulation::set_uniform_scaling(const bool use_uniform_scale) const Selection &selection = wxGetApp().plater()->canvas3D()->get_selection(); #if ENABLE_WORLD_COORDINATE_SCALE_REVISITED if (!use_uniform_scale) { - int res = selection.bake_transform_if_needed(false); + int res = selection.bake_transform_if_needed(); if (res == -1) { // Enforce uniform scaling. m_lock_bnt->SetLock(true); return; } - else if (res == 0) { + else if (res == 0) // Recalculate cached values at this panel, refresh the screen. this->UpdateAndShow(true); - } } m_uniform_scale = use_uniform_scale; diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index dfd543a82b..685e0af8c9 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1311,7 +1311,7 @@ void Selection::translate(unsigned int object_idx, unsigned int instance_idx, co } #if ENABLE_WORLD_COORDINATE_SCALE_REVISITED -int Selection::bake_transform_if_needed(bool apply_scale) const +int Selection::bake_transform_if_needed() const { if ((is_single_full_instance() && wxGetApp().obj_manipul()->is_world_coordinates()) || (is_single_volume_or_modifier() && !wxGetApp().obj_manipul()->is_local_coordinates())) { @@ -1349,13 +1349,7 @@ int Selection::bake_transform_if_needed(bool apply_scale) const if (dlg.ShowModal() != wxID_YES) return -1; - if (apply_scale) { - wxGetApp().plater()->get_current_canvas3D()->do_scale(L("Scale + Bake transform")); - Plater::SuppressSnapshots suppress(wxGetApp().plater()); - wxGetApp().plater()->take_snapshot(_("Bake transform")); - } - else - wxGetApp().plater()->take_snapshot(_("Bake transform")); + wxGetApp().plater()->take_snapshot(_("Bake transform")); // Bake the rotation into the meshes of the object. wxGetApp().model().objects[volume.composite_id.object_id]->bake_xy_rotation_into_meshes(volume.composite_id.instance_id); diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index 5e9b504beb..95a73f8f75 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -371,8 +371,7 @@ public: // -1 if the user refused to proceed with baking when asked // 0 if the baking was performed // 1 if no baking was needed - // if apply_scale == true the scaling of the current selection is applied - int bake_transform_if_needed(bool apply_scale) const; + int bake_transform_if_needed() const; #endif // ENABLE_WORLD_COORDINATE_SCALE_REVISITED void erase();