From 96e14b5d3b1656ec520c02a0eb0fad8dd55ff18c Mon Sep 17 00:00:00 2001 From: bubnikv <bubnikv@gmail.com> Date: Tue, 4 Dec 2018 11:35:04 +0100 Subject: [PATCH] Fixed Canvas3D update after an object instance is deleted. --- src/libslic3r/Model.cpp | 8 -------- src/libslic3r/Model.hpp | 3 --- src/slic3r/GUI/GLCanvas3D.cpp | 2 +- src/slic3r/GUI/GUI_ObjectList.cpp | 1 - 4 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index b734f1108..250c1c968 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -699,14 +699,6 @@ void ModelObject::clear_volumes() this->invalidate_bounding_box(); } -void ModelObject::reset_volumes_idxs() -{ - for (ModelVolume *v : this->volumes) - { - v->set_new_unique_id(); - } -} - ModelInstance* ModelObject::add_instance() { ModelInstance* i = new ModelInstance(this); diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index cf6459dd5..b02862203 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -200,9 +200,6 @@ public: void clear_volumes(); bool is_multiparts() const { return volumes.size() > 1; } - // set a new unique id to all volumes - void reset_volumes_idxs(); - ModelInstance* add_instance(); ModelInstance* add_instance(const ModelInstance &instance); ModelInstance* add_instance(const Vec3d &offset, const Vec3d &scaling_factor, const Vec3d &rotation); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 3ab08b773..b918ae7ca 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -4087,7 +4087,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re volume->extruder_id = extruder_id; // updates volumes transformations - volume->set_instance_transformation(mvs->model_volume->get_object()->instances[volume->instance_idx()]->get_transformation()); + volume->set_instance_transformation(mvs->model_volume->get_object()->instances[mvs->composite_id.instance_id]->get_transformation()); volume->set_volume_transformation(mvs->model_volume->get_transformation()); } } diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 5a98c5254..3948cf686 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -946,7 +946,6 @@ bool ObjectList::del_subobject_from_object(const int obj_idx, const int idx, con return false; } (*m_objects)[obj_idx]->delete_instance(idx); - (*m_objects)[obj_idx]->reset_volumes_idxs(); } else return false;