From dc8523cac8245a41bc1a1da5c0c2fccd9288bfc3 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 13 Nov 2018 10:12:42 +0100 Subject: [PATCH] Fixed convex hull and volume offset after object split to part --- src/libslic3r/Model.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index d0590f994..43179e83a 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -165,6 +165,9 @@ ModelObject* Model::add_object(const char *name, const char *path, const Triangl new_object->name = name; new_object->input_file = path; ModelVolume *new_volume = new_object->add_volume(mesh); +#if ENABLE_MODELVOLUME_TRANSFORM + new_volume->center_geometry(); +#endif // ENABLE_MODELVOLUME_TRANSFORM new_volume->name = name; new_object->invalidate_bounding_box(); return new_object; @@ -177,6 +180,9 @@ ModelObject* Model::add_object(const char *name, const char *path, TriangleMesh new_object->name = name; new_object->input_file = path; ModelVolume *new_volume = new_object->add_volume(std::move(mesh)); +#if ENABLE_MODELVOLUME_TRANSFORM + new_volume->center_geometry(); +#endif // ENABLE_MODELVOLUME_TRANSFORM new_volume->name = name; new_object->invalidate_bounding_box(); return new_object; @@ -1251,11 +1257,15 @@ size_t ModelVolume::split(unsigned int max_extruders) for (TriangleMesh *mesh : meshptrs) { mesh->repair(); if (idx == 0) + { this->mesh = std::move(*mesh); + this->calculate_convex_hull(); + } else this->object->volumes.insert(this->object->volumes.begin() + (++ivolume), new ModelVolume(object, *this, std::move(*mesh))); #if ENABLE_MODELVOLUME_TRANSFORM + this->object->volumes[ivolume]->set_offset(Vec3d::Zero()); this->object->volumes[ivolume]->center_geometry(); this->object->volumes[ivolume]->translate(offset); #endif // ENABLE_MODELVOLUME_TRANSFORM