From e9d340c87f846d1095b181bb55f740b163d5f1d2 Mon Sep 17 00:00:00 2001 From: Lukas Matena <lukasmatena@seznam.cz> Date: Thu, 9 Jan 2020 10:03:33 +0100 Subject: [PATCH] Fixed transformations of the hollowed GLVolume --- src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp | 7 +++---- src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp | 3 +++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp b/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp index 44894a0fb..048392b45 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp @@ -123,6 +123,9 @@ void GLGizmoHollow::on_render() const GLint print_box_worldmatrix_id = (current_program_id > 0) ? ::glGetUniformLocation(current_program_id, "print_box.volume_world_matrix") : -1; glcheck(); m_c->m_volume_with_cavity->set_render_color(); + const Geometry::Transformation& volume_trafo = m_c->m_model_object->volumes.front()->get_transformation(); + m_c->m_volume_with_cavity->set_volume_transformation(volume_trafo); + m_c->m_volume_with_cavity->set_instance_transformation(m_c->m_model_object->instances[size_t(m_c->m_active_instance)]->get_transformation()); m_c->m_volume_with_cavity->render(color_id, print_box_detection_id, print_box_worldmatrix_id); m_parent.get_shader().stop_using(); } @@ -629,13 +632,9 @@ void GLGizmoHollow::update_hollowed_mesh(std::unique_ptr<TriangleMesh> &&mesh) } // create a new GLVolume that only has the cavity inside - Geometry::Transformation volume_trafo = m_c->m_model_object->volumes.front()->get_transformation(); - volume_trafo.set_offset(volume_trafo.get_offset()); m_c->m_volume_with_cavity.reset(new GLVolume(GLVolume::MODEL_COLOR[2])); m_c->m_volume_with_cavity->indexed_vertex_array.load_mesh(*m_c->m_cavity_mesh.get()); m_c->m_volume_with_cavity->finalize_geometry(true); - m_c->m_volume_with_cavity->set_volume_transformation(volume_trafo); - m_c->m_volume_with_cavity->set_instance_transformation(m_c->m_model_object->instances[size_t(m_c->m_active_instance)]->get_transformation()); m_c->m_volume_with_cavity->force_transparent = false; // Reset raycaster so it works with the new mesh: diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index cb9dc2753..2dc41edca 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -133,6 +133,9 @@ void GLGizmoSlaSupports::on_render() const GLint print_box_worldmatrix_id = (current_program_id > 0) ? ::glGetUniformLocation(current_program_id, "print_box.volume_world_matrix") : -1; glcheck(); m_c->m_volume_with_cavity->set_render_color(); + const Geometry::Transformation& volume_trafo = m_c->m_model_object->volumes.front()->get_transformation(); + m_c->m_volume_with_cavity->set_volume_transformation(volume_trafo); + m_c->m_volume_with_cavity->set_instance_transformation(m_c->m_model_object->instances[size_t(m_c->m_active_instance)]->get_transformation()); m_c->m_volume_with_cavity->render(color_id, print_box_detection_id, print_box_worldmatrix_id); m_parent.get_shader().stop_using(); }