From 218cf5537671106165fadd045bfcc68ad03495ed Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Mon, 26 Aug 2024 15:31:50 +0800 Subject: [PATCH] NEW:add "show hit face index" function when show non_manifold_edges jira: none Change-Id: I9bb3e731715eb595c84e01acd0af86b5600618be (cherry picked from commit 6f56123a42a0837ddf5dbd7f12453899f6a2bcb2) --- .../GUI/Gizmos/GLGizmoMmuSegmentation.cpp | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 83d008cd4..2e776753e 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -205,15 +205,17 @@ void GLGizmoMmuSegmentation::render_non_manifold_edges() const { m_non_manifold_edges_model.init_model_from_lines(non_manifold_edges); m_non_manifold_edges_model.set_color(ColorRGBA::RED()); } - const Camera & camera = wxGetApp().plater()->get_camera(); - auto view_mat = camera.get_view_matrix(); - auto proj_mat = camera.get_projection_matrix(); - GLShaderProgram *shader = wxGetApp().get_shader("flat"); - shader->start_using(); - shader->set_uniform("view_model_matrix", view_mat); - shader->set_uniform("projection_matrix", proj_mat); - m_non_manifold_edges_model.render_geometry(); - shader->stop_using(); + if (m_non_manifold_edges_model.is_initialized()) { + const Camera & camera = wxGetApp().plater()->get_camera(); + auto view_mat = camera.get_view_matrix(); + auto proj_mat = camera.get_projection_matrix(); + GLShaderProgram *shader = wxGetApp().get_shader("flat"); + shader->start_using(); + shader->set_uniform("view_model_matrix", view_mat); + shader->set_uniform("projection_matrix", proj_mat); + m_non_manifold_edges_model.render_geometry(); + shader->stop_using(); + } } } @@ -502,7 +504,9 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott float textbox_width = 1.5 * slider_icon_width; SliderInputLayout slider_input_layout = {clipping_slider_left, sliders_width, drag_left_width + circle_max_width, textbox_width}; - + if (wxGetApp().plater()->is_show_non_manifold_edges() && m_rr.mesh_id >= 0) { + m_imgui->text(_L("hit face") + ":" + std::to_string(m_rr.facet)); + } { m_imgui->text(m_desc.at("filaments")); float text_offset = m_imgui->calc_text_size(m_desc.at("filaments")).x + m_imgui->scaled(1.5f);