From 238e32666a605739397a14ce9dcf6361382f95be Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Thu, 12 Jul 2018 23:48:53 -0500 Subject: [PATCH] Replaced redundant constructor and pushed the raw pointer constructor into private scope. --- xs/src/libslic3r/TriangleMesh.cpp | 1 - xs/src/libslic3r/TriangleMesh.hpp | 10 ++++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) 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;