diff --git a/xs/src/libslic3r/TriangleMesh.cpp b/xs/src/libslic3r/TriangleMesh.cpp index ff1f07153..895dba707 100644 --- a/xs/src/libslic3r/TriangleMesh.cpp +++ b/xs/src/libslic3r/TriangleMesh.cpp @@ -280,11 +280,13 @@ TriangleMesh::WriteOBJFile(const std::string &output_file) const { #endif } -void TriangleMesh::transform(const TransformationMatrix &trafo) +TriangleMesh TriangleMesh::transform(const TransformationMatrix &trafo) { + TriangleMesh mesh = TriangleMesh::TriangleMesh(); std::vector trafo_arr = trafo.matrix3x4f(); - stl_transform(&this->stl, trafo_arr.data()); - stl_invalidate_shared_vertices(&this->stl); + stl_transform(&this->stl, &(mesh.stl), trafo_arr.data()); + stl_invalidate_shared_vertices(&(mesh.stl)); + return mesh; } void TriangleMesh::scale(float factor) diff --git a/xs/src/libslic3r/TriangleMesh.hpp b/xs/src/libslic3r/TriangleMesh.hpp index caf016960..a035e20f7 100644 --- a/xs/src/libslic3r/TriangleMesh.hpp +++ b/xs/src/libslic3r/TriangleMesh.hpp @@ -63,7 +63,7 @@ class TriangleMesh bool is_manifold() const; void WriteOBJFile(const std::string &output_file) const; - void transform(const TransformationMatrix &trafo); + TriangleMesh transform(const TransformationMatrix &trafo); void scale(float factor); void scale(const Pointf3 &versor);