Added new clean function removing only primitives

git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@706 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
Jan Möbius
2012-09-27 10:23:35 +00:00
parent 10b271fb56
commit c5874871e0
2 changed files with 28 additions and 9 deletions

View File

@@ -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); 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() void ArrayKernel::clear()
{ {
vprops_clear(); vprops_clear();
@@ -124,17 +139,11 @@ void ArrayKernel::clear()
hprops_clear(); hprops_clear();
fprops_clear(); fprops_clear();
vertices_.clear(); clean();
VertexContainer().swap( vertices_ );
edges_.clear();
EdgeContainer().swap( edges_ );
faces_.clear();
FaceContainer().swap( faces_ );
} }
void ArrayKernel::resize( unsigned int _n_vertices, unsigned int _n_edges, unsigned int _n_faces ) void ArrayKernel::resize( unsigned int _n_vertices, unsigned int _n_edges, unsigned int _n_faces )
{ {
vertices_.resize(_n_vertices); vertices_.resize(_n_vertices);

View File

@@ -303,8 +303,18 @@ public:
std_API_Container_FHandlePointer& fh_to_update, std_API_Container_FHandlePointer& fh_to_update,
bool _v=true, bool _e=true, bool _f=true); 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(); void clear();
/** \brief Reset the whole mesh
*
* This will remove all elements from the mesh but keeps the properties
*/
void clean();
// --- number of items --- // --- number of items ---
unsigned int n_vertices() const { return vertices_.size(); } unsigned int n_vertices() const { return vertices_.size(); }
unsigned int n_halfedges() const { return 2*edges_.size(); } unsigned int n_halfedges() const { return 2*edges_.size(); }