diff --git a/xs/src/libslic3r/TriangleMesh.cpp b/xs/src/libslic3r/TriangleMesh.cpp index a4b90610e..61429a4d2 100644 --- a/xs/src/libslic3r/TriangleMesh.cpp +++ b/xs/src/libslic3r/TriangleMesh.cpp @@ -28,7 +28,6 @@ TriangleMesh::TriangleMesh() stl_initialize(&this->stl); } -TriangleMesh::TriangleMesh(const Pointf3s &points, const std::vector& facets ) : TriangleMesh(points.data(), facets.data(), facets.size()) {} TriangleMesh::TriangleMesh(const Pointf3* points, const Point3* facets, size_t n_facets) : repaired(false) { diff --git a/xs/src/libslic3r/TriangleMesh.hpp b/xs/src/libslic3r/TriangleMesh.hpp index e8a518a6e..c2e14d925 100644 --- a/xs/src/libslic3r/TriangleMesh.hpp +++ b/xs/src/libslic3r/TriangleMesh.hpp @@ -36,10 +36,10 @@ class TriangleMesh { public: TriangleMesh(); - TriangleMesh(const Pointf3* points, const Point3* facets, size_t n_facets); - TriangleMesh(const Pointf3s &points, const std::vector &facets); /// Templated constructor to adapt containers that offer .data() and .size() + /// First argument is a container (either vector or array) of Pointf3 for the vertex data. + /// Second argument is container of facets (currently Point3). template TriangleMesh(const Vertex_Cont& vertices, const Facet_Cont& facets) : TriangleMesh(vertices.data(), facets.data(), facets.size()) {} @@ -143,6 +143,12 @@ class TriangleMesh bool repaired; private: + + /// Private constructor that is called from the public sphere. + /// It doesn't do any bounds checking on points and operates on raw pointers, so we hide it. + /// Other constructors can call this one! + TriangleMesh(const Pointf3* points, const Point3* facets, size_t n_facets); + friend class TriangleMeshSlicer; friend class TriangleMeshSlicer; friend class TriangleMeshSlicer;