From 9c7a4a1e519fa51c03aa177ad0006e4278e115f8 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Tue, 7 Feb 2023 11:05:32 +0100 Subject: [PATCH] Fixed rendering of scale gizmo --- src/slic3r/GUI/Gizmos/GLGizmoScale.cpp | 28 ++++++-------------------- src/slic3r/GUI/Gizmos/GLGizmoScale.hpp | 3 --- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index 173585ec00..42790caf36 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -264,9 +264,8 @@ void GLGizmoScale3D::on_render() #endif // ENABLE_GL_CORE_PROFILE glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f)); - const Transform3d base_matrix = local_transform(selection); for (int i = 0; i < 10; ++i) { - m_grabbers[i].matrix = base_matrix; + m_grabbers[i].matrix = box_trafo; } const float grabber_mean_size = (float)((m_bounding_box.size().x() + m_bounding_box.size().y() + m_bounding_box.size().z()) / 3.0); @@ -281,7 +280,7 @@ void GLGizmoScale3D::on_render() if (shader != nullptr) { shader->start_using(); const Camera& camera = wxGetApp().plater()->get_camera(); - shader->set_uniform("view_model_matrix", camera.get_view_matrix() * base_matrix); + shader->set_uniform("view_model_matrix", camera.get_view_matrix() * box_trafo); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); #if ENABLE_GL_CORE_PROFILE const std::array& viewport = camera.get_viewport(); @@ -315,7 +314,7 @@ void GLGizmoScale3D::on_render() if (shader != nullptr) { shader->start_using(); const Camera& camera = wxGetApp().plater()->get_camera(); - shader->set_uniform("view_model_matrix", camera.get_view_matrix() * base_matrix); + shader->set_uniform("view_model_matrix", camera.get_view_matrix() * box_trafo); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); #if ENABLE_GL_CORE_PROFILE const std::array& viewport = camera.get_viewport(); @@ -347,7 +346,7 @@ void GLGizmoScale3D::on_render() if (shader != nullptr) { shader->start_using(); const Camera& camera = wxGetApp().plater()->get_camera(); - shader->set_uniform("view_model_matrix", camera.get_view_matrix() * base_matrix); + shader->set_uniform("view_model_matrix", camera.get_view_matrix() * box_trafo); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); #if ENABLE_GL_CORE_PROFILE const std::array& viewport = camera.get_viewport(); @@ -379,7 +378,7 @@ void GLGizmoScale3D::on_render() if (shader != nullptr) { shader->start_using(); const Camera& camera = wxGetApp().plater()->get_camera(); - shader->set_uniform("view_model_matrix", camera.get_view_matrix() * base_matrix); + shader->set_uniform("view_model_matrix", camera.get_view_matrix() * box_trafo); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); #if ENABLE_GL_CORE_PROFILE const std::array& viewport = camera.get_viewport(); @@ -411,7 +410,7 @@ void GLGizmoScale3D::on_render() if (shader != nullptr) { shader->start_using(); const Camera& camera = wxGetApp().plater()->get_camera(); - shader->set_uniform("view_model_matrix", camera.get_view_matrix() * base_matrix); + shader->set_uniform("view_model_matrix", camera.get_view_matrix() * box_trafo); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); #if ENABLE_GL_CORE_PROFILE const std::array& viewport = camera.get_viewport(); @@ -920,20 +919,5 @@ double GLGizmoScale3D::calc_ratio(const UpdateData& data) const return ratio; } -#if ENABLE_WORLD_COORDINATE -Transform3d GLGizmoScale3D::local_transform(const Selection& selection) const -{ - Transform3d ret = Geometry::translation_transform(m_center); - if (!wxGetApp().obj_manipul()->is_world_coordinates()) { - const GLVolume& v = *selection.get_first_volume(); - Transform3d orient_matrix = v.get_instance_transformation().get_rotation_matrix(); - if (selection.is_single_volume_or_modifier() && wxGetApp().obj_manipul()->is_local_coordinates()) - orient_matrix = orient_matrix * v.get_volume_transformation().get_rotation_matrix(); - ret = ret * orient_matrix; - } - return ret; -} -#endif // ENABLE_WORLD_COORDINATE - } // namespace GUI } // namespace Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp index 96594786e1..fe6ab4972e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.hpp @@ -102,9 +102,6 @@ private: void do_scale_uniform(const UpdateData& data); double calc_ratio(const UpdateData& data) const; -#if ENABLE_WORLD_COORDINATE - Transform3d local_transform(const Selection& selection) const; -#endif // ENABLE_WORLD_COORDINATE };