Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
< OpenVolumeMeshStatus
v_status_
 
EdgePropertyT
< OpenVolumeMeshStatus
e_status_
 
HalfEdgePropertyT
< OpenVolumeMeshStatus
he_status_
 
FacePropertyT
< OpenVolumeMeshStatus
f_status_
 
HalfFacePropertyT
< OpenVolumeMeshStatus
hf_status_
 
CellPropertyT
< OpenVolumeMeshStatus
c_status_
 
MeshPropertyT
< OpenVolumeMeshStatus
m_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: