diff --git a/src/OpenMesh/Core/Mesh/BaseKernel.hh b/src/OpenMesh/Core/Mesh/BaseKernel.hh index 0a0fee1a..0270a580 100644 --- a/src/OpenMesh/Core/Mesh/BaseKernel.hh +++ b/src/OpenMesh/Core/Mesh/BaseKernel.hh @@ -516,7 +516,7 @@ public: // Copy all properties, if build in is true // Otherwise, copy only properties without build in specifier if ( *p_it && ( _copyBuildIn || (*p_it)->name().substr(0,2) != "v:" ) ) - (*p_it)->copy(_vh_from.idx(), _vh_to.idx()); + (*p_it)->copy(static_cast(_vh_from.idx()), static_cast(_vh_to.idx())); } } @@ -690,6 +690,9 @@ public: //----------------------------------------------------- element numbers virtual size_t n_edges() const { return 0; } virtual size_t n_faces() const { return 0; } + template + size_t n_elements() const; + protected: //------------------------------------------- synchronize properties @@ -814,6 +817,16 @@ private: }; +template <> +inline size_t BaseKernel::n_elements() const { return n_vertices(); } +template <> +inline size_t BaseKernel::n_elements() const { return n_halfedges(); } +template <> +inline size_t BaseKernel::n_elements() const { return n_edges(); } +template <> +inline size_t BaseKernel::n_elements() const { return n_faces(); } + + //============================================================================= } // namespace OpenMesh //=============================================================================