diff --git a/xs/src/slic3r/GUI/GLGizmo.cpp b/xs/src/slic3r/GUI/GLGizmo.cpp index a24b11dcf..d91730d26 100644 --- a/xs/src/slic3r/GUI/GLGizmo.cpp +++ b/xs/src/slic3r/GUI/GLGizmo.cpp @@ -1593,6 +1593,7 @@ void GLGizmoSlaSupports::set_model_object_ptr(ModelObject* model_object) { m_starting_center = Vec3d::Zero(); m_model_object = model_object; + m_model_object_matrix = model_object->instances.front()->world_matrix(); if (is_mesh_update_necessary()) update_mesh(); } @@ -1654,7 +1655,7 @@ void GLGizmoSlaSupports::render_grabbers(bool picking) const ::glEnable(GL_LIGHTING); ::glColor3f((GLfloat)render_color[0], (GLfloat)render_color[1], (GLfloat)render_color[2]); ::glPushMatrix(); - Vec3d center = m_model_object->instances.front()->world_matrix() * m_grabbers[i].center; + Vec3d center = m_model_object_matrix * m_grabbers[i].center; ::glTranslatef((GLfloat)center(0), (GLfloat)center(1), (GLfloat)center(2)); GLUquadricObj *quadric; quadric = ::gluNewQuadric(); diff --git a/xs/src/slic3r/GUI/GLGizmo.hpp b/xs/src/slic3r/GUI/GLGizmo.hpp index b3bc12644..488e5c02e 100644 --- a/xs/src/slic3r/GUI/GLGizmo.hpp +++ b/xs/src/slic3r/GUI/GLGizmo.hpp @@ -408,6 +408,7 @@ class GLGizmoSlaSupports : public GLGizmoBase { private: ModelObject* m_model_object = nullptr; + Transform3d m_model_object_matrix; Vec3f unproject_on_mesh(const Vec2d& mouse_pos); Eigen::MatrixXf m_V; // vertices