Fixed convex hull and volume offset after object split to part
This commit is contained in:
parent
3d4e37ceb6
commit
dc8523cac8
1 changed files with 10 additions and 0 deletions
|
@ -165,6 +165,9 @@ ModelObject* Model::add_object(const char *name, const char *path, const Triangl
|
||||||
new_object->name = name;
|
new_object->name = name;
|
||||||
new_object->input_file = path;
|
new_object->input_file = path;
|
||||||
ModelVolume *new_volume = new_object->add_volume(mesh);
|
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_volume->name = name;
|
||||||
new_object->invalidate_bounding_box();
|
new_object->invalidate_bounding_box();
|
||||||
return new_object;
|
return new_object;
|
||||||
|
@ -177,6 +180,9 @@ ModelObject* Model::add_object(const char *name, const char *path, TriangleMesh
|
||||||
new_object->name = name;
|
new_object->name = name;
|
||||||
new_object->input_file = path;
|
new_object->input_file = path;
|
||||||
ModelVolume *new_volume = new_object->add_volume(std::move(mesh));
|
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_volume->name = name;
|
||||||
new_object->invalidate_bounding_box();
|
new_object->invalidate_bounding_box();
|
||||||
return new_object;
|
return new_object;
|
||||||
|
@ -1251,11 +1257,15 @@ size_t ModelVolume::split(unsigned int max_extruders)
|
||||||
for (TriangleMesh *mesh : meshptrs) {
|
for (TriangleMesh *mesh : meshptrs) {
|
||||||
mesh->repair();
|
mesh->repair();
|
||||||
if (idx == 0)
|
if (idx == 0)
|
||||||
|
{
|
||||||
this->mesh = std::move(*mesh);
|
this->mesh = std::move(*mesh);
|
||||||
|
this->calculate_convex_hull();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
this->object->volumes.insert(this->object->volumes.begin() + (++ivolume), new ModelVolume(object, *this, std::move(*mesh)));
|
this->object->volumes.insert(this->object->volumes.begin() + (++ivolume), new ModelVolume(object, *this, std::move(*mesh)));
|
||||||
|
|
||||||
#if ENABLE_MODELVOLUME_TRANSFORM
|
#if ENABLE_MODELVOLUME_TRANSFORM
|
||||||
|
this->object->volumes[ivolume]->set_offset(Vec3d::Zero());
|
||||||
this->object->volumes[ivolume]->center_geometry();
|
this->object->volumes[ivolume]->center_geometry();
|
||||||
this->object->volumes[ivolume]->translate(offset);
|
this->object->volumes[ivolume]->translate(offset);
|
||||||
#endif // ENABLE_MODELVOLUME_TRANSFORM
|
#endif // ENABLE_MODELVOLUME_TRANSFORM
|
||||||
|
|
Loading…
Add table
Reference in a new issue