From c5874871e0a9cef9a2b14b367547db1362030295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Thu, 27 Sep 2012 10:23:35 +0000 Subject: [PATCH] Added new clean function removing only primitives git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@706 fdac6126-5c0c-442c-9429-916003d36597 --- src/OpenMesh/Core/Mesh/ArrayKernel.cc | 27 ++++++++++++++++++--------- src/OpenMesh/Core/Mesh/ArrayKernel.hh | 10 ++++++++++ 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/OpenMesh/Core/Mesh/ArrayKernel.cc b/src/OpenMesh/Core/Mesh/ArrayKernel.cc index 7446f074..c34068bf 100644 --- a/src/OpenMesh/Core/Mesh/ArrayKernel.cc +++ b/src/OpenMesh/Core/Mesh/ArrayKernel.cc @@ -117,6 +117,21 @@ void ArrayKernel::garbage_collection(bool _v, bool _e, bool _f) garbage_collection( empty_vh,empty_hh,empty_fh,_v, _e, _f); } +void ArrayKernel::clean() +{ + + vertices_.clear(); + VertexContainer().swap( vertices_ ); + + edges_.clear(); + EdgeContainer().swap( edges_ ); + + faces_.clear(); + FaceContainer().swap( faces_ ); + +} + + void ArrayKernel::clear() { vprops_clear(); @@ -124,17 +139,11 @@ void ArrayKernel::clear() hprops_clear(); fprops_clear(); - vertices_.clear(); - VertexContainer().swap( vertices_ ); - - edges_.clear(); - EdgeContainer().swap( edges_ ); - - faces_.clear(); - FaceContainer().swap( faces_ ); - + clean(); } + + void ArrayKernel::resize( unsigned int _n_vertices, unsigned int _n_edges, unsigned int _n_faces ) { vertices_.resize(_n_vertices); diff --git a/src/OpenMesh/Core/Mesh/ArrayKernel.hh b/src/OpenMesh/Core/Mesh/ArrayKernel.hh index 5edf19af..d0d2955f 100644 --- a/src/OpenMesh/Core/Mesh/ArrayKernel.hh +++ b/src/OpenMesh/Core/Mesh/ArrayKernel.hh @@ -303,8 +303,18 @@ public: std_API_Container_FHandlePointer& fh_to_update, bool _v=true, bool _e=true, bool _f=true); + /** \brief Clear the whole mesh + * + * This will remove all properties and elements from the mesh + */ void clear(); + /** \brief Reset the whole mesh + * + * This will remove all elements from the mesh but keeps the properties + */ + void clean(); + // --- number of items --- unsigned int n_vertices() const { return vertices_.size(); } unsigned int n_halfedges() const { return 2*edges_.size(); }