Developer Documentation
OpenVolumeMesh::StatusAttrib Class Reference

Public Types

typedef VertexPropertyT< OpenVolumeMeshStatus >::const_iterator const_vstatus_iterator
 
typedef VertexPropertyT< OpenVolumeMeshStatus >::iterator vstatus_iterator
 
typedef EdgePropertyT< OpenVolumeMeshStatus >::const_iterator const_estatus_iterator
 
typedef EdgePropertyT< OpenVolumeMeshStatus >::iterator estatus_iterator
 
typedef HalfEdgePropertyT< OpenVolumeMeshStatus >::const_iterator const_hestatus_iterator
 
typedef HalfEdgePropertyT< OpenVolumeMeshStatus >::iterator hestatus_iterator
 
typedef FacePropertyT< OpenVolumeMeshStatus >::const_iterator const_fstatus_iterator
 
typedef FacePropertyT< OpenVolumeMeshStatus >::iterator fstatus_iterator
 
typedef HalfFacePropertyT< OpenVolumeMeshStatus >::const_iterator const_hfstatus_iterator
 
typedef HalfFacePropertyT< OpenVolumeMeshStatus >::iterator hfstatus_iterator
 
typedef CellPropertyT< OpenVolumeMeshStatus >::const_iterator const_cstatus_iterator
 
typedef CellPropertyT< OpenVolumeMeshStatus >::iterator cstatus_iterator
 

Public Member Functions

 StatusAttrib (TopologyKernel &_kernel)
 
const OpenVolumeMeshStatusoperator[] (const VertexHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const VertexHandle &_h)
 
const OpenVolumeMeshStatusoperator[] (const EdgeHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const EdgeHandle &_h)
 
const OpenVolumeMeshStatusoperator[] (const HalfEdgeHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const HalfEdgeHandle &_h)
 
const OpenVolumeMeshStatusoperator[] (const FaceHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const FaceHandle &_h)
 
const OpenVolumeMeshStatusoperator[] (const HalfFaceHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const HalfFaceHandle &_h)
 
const OpenVolumeMeshStatusoperator[] (const CellHandle &_h) const
 
OpenVolumeMeshStatusoperator[] (const CellHandle &_h)
 
const OpenVolumeMeshStatusmesh_status () const
 
OpenVolumeMeshStatusmesh_status ()
 
VertexPropertyT< OpenVolumeMeshStatus >::const_iterator vstatus_begin () const
 
VertexPropertyT< OpenVolumeMeshStatus >::iterator vstatus_begin ()
 
VertexPropertyT< OpenVolumeMeshStatus >::const_iterator vstatus_end () const
 
VertexPropertyT< OpenVolumeMeshStatus >::iterator vstatus_end ()
 
EdgePropertyT< OpenVolumeMeshStatus >::const_iterator estatus_begin () const
 
EdgePropertyT< OpenVolumeMeshStatus >::iterator estatus_begin ()
 
EdgePropertyT< OpenVolumeMeshStatus >::const_iterator estatus_end () const
 
EdgePropertyT< OpenVolumeMeshStatus >::iterator estatus_end ()
 
HalfEdgePropertyT< OpenVolumeMeshStatus >::const_iterator hestatus_begin () const
 
HalfEdgePropertyT< OpenVolumeMeshStatus >::iterator hestatus_begin ()
 
HalfEdgePropertyT< OpenVolumeMeshStatus >::const_iterator hestatus_end () const
 
HalfEdgePropertyT< OpenVolumeMeshStatus >::iterator hestatus_end ()
 
FacePropertyT< OpenVolumeMeshStatus >::const_iterator fstatus_begin () const
 
FacePropertyT< OpenVolumeMeshStatus >::iterator fstatus_begin ()
 
FacePropertyT< OpenVolumeMeshStatus >::const_iterator fstatus_end () const
 
FacePropertyT< OpenVolumeMeshStatus >::iterator fstatus_end ()
 
HalfFacePropertyT< OpenVolumeMeshStatus >::const_iterator hfstatus_begin () const
 
HalfFacePropertyT< OpenVolumeMeshStatus >::iterator hfstatus_begin ()
 
HalfFacePropertyT< OpenVolumeMeshStatus >::const_iterator hfstatus_end () const
 
HalfFacePropertyT< OpenVolumeMeshStatus >::iterator hfstatus_end ()
 
CellPropertyT< OpenVolumeMeshStatus >::const_iterator cstatus_begin () const
 
CellPropertyT< OpenVolumeMeshStatus >::iterator cstatus_begin ()
 
CellPropertyT< OpenVolumeMeshStatus >::const_iterator cstatus_end () const
 
CellPropertyT< OpenVolumeMeshStatus >::iterator cstatus_end ()
 
void garbage_collection (bool _preserveManifoldness=false)
 Delete all entities that have been marked as deleted. More...
 
template<typename std_API_Container_VHandlePointer , typename std_API_Container_HHandlePointer , typename std_API_Container_HFHandlePointer , typename std_API_Container_CHandlePointer >
void garbage_collection (std_API_Container_VHandlePointer &vh_to_update, std_API_Container_HHandlePointer &hh_to_update, std_API_Container_HFHandlePointer &hfh_to_update, std_API_Container_CHandlePointer &ch_to_update, bool _preserveManifoldness=false)
 garbage collection with handle tracking More...
 

Private Member Functions

void mark_higher_dim_entities ()
 

Private Attributes

TopologyKernelkernel_
 
VertexPropertyT< OpenVolumeMeshStatusv_status_
 
EdgePropertyT< OpenVolumeMeshStatuse_status_
 
HalfEdgePropertyT< OpenVolumeMeshStatushe_status_
 
FacePropertyT< OpenVolumeMeshStatusf_status_
 
HalfFacePropertyT< OpenVolumeMeshStatushf_status_
 
CellPropertyT< OpenVolumeMeshStatusc_status_
 
MeshPropertyT< OpenVolumeMeshStatusm_status_
 

Detailed Description

Definition at line 57 of file StatusAttrib.hh.

Member Function Documentation

void OpenVolumeMesh::StatusAttrib::garbage_collection ( bool  _preserveManifoldness = false)

Delete all entities that have been marked as deleted.

This function deletes all entities that have been marked as deleted. It proceeds bottom-up, starting with the vertices. All higher dimensional entities that are incident to a deleted entity are automatically marked deleted, too. Once this first pass is through, one can additionally delete all resulting non-manifold configurations in a second pass (triggered by the parameter of this function). This step proceeds as follows: Delete all n-dimensional entities (starting with n = 2), that are not incident to at least one entity of dimension n + 1. Note that the second pass requires bottom-up incidences to be available. Compute them by calling update_incidences().

Parameters
_preserveManifoldnessPass true if the mesh is required to stay three-manifold

Definition at line 153 of file StatusAttrib.cc.

template<typename std_API_Container_VHandlePointer , typename std_API_Container_HHandlePointer , typename std_API_Container_HFHandlePointer , typename std_API_Container_CHandlePointer >
void OpenVolumeMesh::StatusAttrib::garbage_collection ( std_API_Container_VHandlePointer &  vh_to_update,
std_API_Container_HHandlePointer &  hh_to_update,
std_API_Container_HFHandlePointer &  hfh_to_update,
std_API_Container_CHandlePointer &  ch_to_update,
bool  _preserveManifoldness = false 
)

garbage collection with handle tracking

This function deletes all entities that have been marked as deleted. It proceeds bottom-up, starting with the vertices. All higher dimensional entities that are incident to a deleted entity are automatically marked deleted, too. Once this first pass is through, one can additionally delete all resulting non-manifold configurations in a second pass (triggered by the parameter of this function). This step proceeds as follows: Delete all n-dimensional entities (starting with n = 2), that are not incident to at least one entity of dimension n + 1. Note that the second pass requires bottom-up incidences to be available. Compute them by calling update_incidences().

Note
Garbage collection invalidates all handles. If you need to keep track of a set of handles, you can pass them to this function. The handles that the given pointers point to are updated in place.
Parameters
vh_to_updatePointers to vertex handles that should get updated
hh_to_updatePointers to halfedge handles that should get updated
hfh_to_updatePointers to halfface handles that should get updated
ch_to_updatePointers to cell handles that should get updated
_preserveManifoldnessPass true if the mesh is required to stay three-manifold

Definition at line 59 of file StatusAttribT.cc.


The documentation for this class was generated from the following files: