Developer Documentation

Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
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 OpenVolumeMeshStatus & | operator[] (const VertexHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const VertexHandle &_h)
const OpenVolumeMeshStatus & | operator[] (const EdgeHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const EdgeHandle &_h)
const OpenVolumeMeshStatus & | operator[] (const HalfEdgeHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const HalfEdgeHandle &_h)
const OpenVolumeMeshStatus & | operator[] (const FaceHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const FaceHandle &_h)
const OpenVolumeMeshStatus & | operator[] (const HalfFaceHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const HalfFaceHandle &_h)
const OpenVolumeMeshStatus & | operator[] (const CellHandle &_h) const
OpenVolumeMeshStatus & | operator[] (const CellHandle &_h)
const OpenVolumeMeshStatus & | mesh_status () const
OpenVolumeMeshStatus & | mesh_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
TopologyKernel & | kernel_
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

## ◆ garbage_collection() [1/2]

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

  _preserveManifoldness | Pass true if the mesh is required to stay three-manifold

Definition at line 153 of file StatusAttrib.cc.

## ◆ garbage_collection() [2/2]

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_update | Pointers to vertex handles that should get updated
  hh_to_update | Pointers to halfedge handles that should get updated
  hfh_to_update | Pointers to halfface handles that should get updated
  ch_to_update | Pointers to cell handles that should get updated
  _preserveManifoldness | Pass true if the mesh is required to stay three-manifold

Definition at line 59 of file StatusAttribT_impl.hh.

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

- Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Attribs/StatusAttrib.hh
- Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Attribs/StatusAttrib.cc
- Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Attribs/StatusAttribT_impl.hh