diff --git a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm index 00373f138..13c1b6945 100644 --- a/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm +++ b/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm @@ -424,6 +424,7 @@ sub on_btn_load { # apply the same translation we applied to the object if (($delta_x != 0.0) || ($delta_y != 0.0) || ($delta_z != 0.0)) { $new_volume->mesh->translate($delta_x, $delta_y, $delta_z); + $new_volume->convex_hull->translate($delta_x, $delta_y, $delta_z); } # set a default extruder value, since user can't add it manually diff --git a/xs/src/libslic3r/Model.cpp b/xs/src/libslic3r/Model.cpp index af764eb89..e0097ce2e 100644 --- a/xs/src/libslic3r/Model.cpp +++ b/xs/src/libslic3r/Model.cpp @@ -973,6 +973,11 @@ const TriangleMesh& ModelVolume::get_convex_hull() const return m_convex_hull; } +TriangleMesh& ModelVolume::get_convex_hull() +{ + return m_convex_hull; +} + ModelVolume::Type ModelVolume::type_from_string(const std::string &s) { // Legacy support diff --git a/xs/src/libslic3r/Model.hpp b/xs/src/libslic3r/Model.hpp index 34a7c7cc1..353dc5ccc 100644 --- a/xs/src/libslic3r/Model.hpp +++ b/xs/src/libslic3r/Model.hpp @@ -195,6 +195,7 @@ public: void calculate_convex_hull(); const TriangleMesh& get_convex_hull() const; + TriangleMesh& get_convex_hull(); // Helpers for loading / storing into AMF / 3MF files. static Type type_from_string(const std::string &s); diff --git a/xs/xsp/Model.xsp b/xs/xsp/Model.xsp index 0f9b5cd15..0b59b3126 100644 --- a/xs/xsp/Model.xsp +++ b/xs/xsp/Model.xsp @@ -338,6 +338,8 @@ ModelMaterial::attributes() %code%{ RETVAL = &THIS->config; %}; Ref mesh() %code%{ RETVAL = &THIS->mesh; %}; + Ref convex_hull() + %code%{ RETVAL = &THIS->get_convex_hull(); %}; bool modifier() %code%{ RETVAL = THIS->is_modifier(); %};