From 49cc72e9d2106fe5b3483a59cc10d0a0b749c4ca Mon Sep 17 00:00:00 2001 From: Martin Schultz Date: Thu, 8 Dec 2016 18:18:59 +0100 Subject: [PATCH] added explicit copy constructors for PolyMeshT and TrimeshT to enable static_casts of different mesh types --- src/OpenMesh/Core/Mesh/PolyMeshT.hh | 2 ++ src/OpenMesh/Core/Mesh/TriMeshT.hh | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/OpenMesh/Core/Mesh/PolyMeshT.hh b/src/OpenMesh/Core/Mesh/PolyMeshT.hh index d0e4d4f8..d514fedc 100644 --- a/src/OpenMesh/Core/Mesh/PolyMeshT.hh +++ b/src/OpenMesh/Core/Mesh/PolyMeshT.hh @@ -186,6 +186,8 @@ public: // --- constructor/destructor PolyMeshT() {} + template + explicit PolyMeshT(const T& t) : Kernel(t) {} virtual ~PolyMeshT() {} /** Uses default copy and assignment operator. diff --git a/src/OpenMesh/Core/Mesh/TriMeshT.hh b/src/OpenMesh/Core/Mesh/TriMeshT.hh index 7c3359eb..bf51e29a 100644 --- a/src/OpenMesh/Core/Mesh/TriMeshT.hh +++ b/src/OpenMesh/Core/Mesh/TriMeshT.hh @@ -169,6 +169,10 @@ public: /// Default constructor TriMeshT() : PolyMesh() {} + explicit TriMeshT(PolyMesh rhs) : PolyMesh((rhs.triangulate(), rhs)) + { + } + /// Destructor virtual ~TriMeshT() {}