From 1be7b9f48edd959a42e33ae43af72564e428df1f Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Wed, 24 Apr 2024 19:54:03 +0800 Subject: [PATCH] ENH:only specified features can be selected in specified mode jira: none Change-Id: Ie8b229b671cbe9f5848154ca687aeb55b853f29e --- src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index 74edb59f2..7eef3d554 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -669,7 +669,18 @@ void GLGizmoMeasure::on_render() mouse_on_object ? m_curr_measuring->get_feature(model_facet_idx, position_on_model, m_mesh_raycaster_map[m_last_hit_volume]->world_tran.get_matrix()) : std::nullopt; } - + if (m_measure_mode == EMeasureMode::ONLY_ASSEMBLY) { + if (m_assembly_mode == AssemblyMode::FACE_FACE) { + if (curr_feature->get_type() != Measure::SurfaceFeatureType::Plane) { + curr_feature.reset(); + } + } else if (m_assembly_mode == AssemblyMode::POINT_POINT) { + if (!(curr_feature->get_type() == Measure::SurfaceFeatureType::Point || + curr_feature->get_type() == Measure::SurfaceFeatureType::Circle)) { + curr_feature.reset(); + } + } + } if (m_curr_feature != curr_feature || (curr_feature.has_value() && curr_feature->get_type() == Measure::SurfaceFeatureType::Circle && (m_curr_feature != curr_feature || m_last_inv_zoom != inv_zoom))) { reset_gripper_pick(GripperType::UNDEFINE, true);