ENH:only specified features can be selected in specified mode

jira: none
Change-Id: Ie8b229b671cbe9f5848154ca687aeb55b853f29e
This commit is contained in:
zhou.xu 2024-04-24 19:54:03 +08:00 committed by Lane.Wei
parent 7e53322477
commit 1be7b9f48e
1 changed files with 12 additions and 1 deletions

View File

@ -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);