From a74c070a5e407d547da98dc4b5cebbe314c7ed15 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Fri, 19 Aug 2022 10:48:32 +0200 Subject: [PATCH] Set Measure Gizmo to be activable for single volume selections only --- src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp | 11 ++--------- src/slic3r/GUI/Selection.hpp | 1 + 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index c17a116cc5..582c76a0da 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -100,17 +100,12 @@ std::string GLGizmoMeasure::on_get_name() const return _u8L("Measure"); } - - bool GLGizmoMeasure::on_is_activable() const { - // This is assumed in GLCanvas3D::do_rotate, do not change this - // without updating that function too. - return m_parent.get_selection().is_single_full_instance(); + const Selection& selection = m_parent.get_selection(); + return selection.is_single_volume() || selection.is_single_volume_instance(); } - - void GLGizmoMeasure::on_render() { const Selection& selection = m_parent.get_selection(); @@ -139,9 +134,7 @@ void GLGizmoMeasure::on_render() shader->set_uniform("view_model_matrix", view_model_matrix); shader->set_uniform("projection_matrix", camera.get_projection_matrix()); - update_if_needed(); - m_imgui->begin(std::string("DEBUG")); diff --git a/src/slic3r/GUI/Selection.hpp b/src/slic3r/GUI/Selection.hpp index cebea29e05..e118f6bca5 100644 --- a/src/slic3r/GUI/Selection.hpp +++ b/src/slic3r/GUI/Selection.hpp @@ -328,6 +328,7 @@ public: #if ENABLE_WORLD_COORDINATE bool is_single_volume_or_modifier() const { return is_single_volume() || is_single_modifier(); } #endif // ENABLE_WORLD_COORDINATE + bool is_single_volume_instance() const { return is_single_full_instance() && m_list.size() == 1; } bool contains_volume(unsigned int volume_idx) const { return m_list.find(volume_idx) != m_list.end(); } // returns true if the selection contains all the given indices