Developer Documentation
OpenVolumeMesh::TopologyKernel Class Reference
Inheritance diagram for OpenVolumeMesh::TopologyKernel:
OpenVolumeMesh::ResourceManager OpenVolumeMesh::GeometryKernel< VecT, TopologyKernelT > OpenVolumeMesh::HexahedralMeshTopologyKernel OpenVolumeMesh::TetrahedralMeshTopologyKernel OpenVolumeMesh::GeometryKernel< VecT, TetrahedralMeshTopologyKernel > OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >

Classes

class  CellCorrector
 
class  EdgeCorrector
 
class  FaceCorrector
 

Public Types

typedef OpenVolumeMeshEdge Edge
 
typedef OpenVolumeMeshFace Face
 
typedef OpenVolumeMeshCell Cell
 
- Public Types inherited from OpenVolumeMesh::ResourceManager
using Properties = std::set< PropertyStorageBase * >
 

Public Member Functions

 TopologyKernel (TopologyKernel const &other)=default
 
 TopologyKernel (TopologyKernel &&other)=delete
 
TopologyKerneloperator= (TopologyKernel const &other)=default
 
TopologyKerneloperator= (TopologyKernel &&other)=delete
 
VertexVertexIter vv_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexVertexIter, VertexVertexItervertex_vertices (VertexHandle _h, int _max_laps=1) const
 
VertexOHalfEdgeIter voh_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexOHalfEdgeIter, VertexOHalfEdgeIteroutgoing_halfedges (VertexHandle _h, int _max_laps=1) const
 
VertexIHalfEdgeIter vih_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexIHalfEdgeIter, VertexIHalfEdgeIterincoming_halfedges (VertexHandle _h, int _max_laps=1) const
 
VertexEdgeIter ve_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexEdgeIter, VertexEdgeItervertex_edges (VertexHandle _h, int _max_laps=1) const
 
VertexHalfFaceIter vhf_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexHalfFaceIter, VertexHalfFaceItervertex_halffaces (VertexHandle _h, int _max_laps=1) const
 
VertexFaceIter vf_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexFaceIter, VertexFaceItervertex_faces (VertexHandle _h, int _max_laps=1) const
 
VertexCellIter vc_iter (VertexHandle _h, int _max_laps=1) const
 
std::pair< VertexCellIter, VertexCellItervertex_cells (VertexHandle _h, int _max_laps=1) const
 
HalfEdgeHalfFaceIter hehf_iter (HalfEdgeHandle _h, int _max_laps=1) const
 
std::pair< HalfEdgeHalfFaceIter, HalfEdgeHalfFaceIterhalfedge_halffaces (HalfEdgeHandle _h, int _max_laps=1) const
 
HalfEdgeFaceIter hef_iter (HalfEdgeHandle _h, int _max_laps=1) const
 
std::pair< HalfEdgeFaceIter, HalfEdgeFaceIterhalfedge_faces (HalfEdgeHandle _h, int _max_laps=1) const
 
HalfEdgeCellIter hec_iter (HalfEdgeHandle _h, int _max_laps=1) const
 
std::pair< HalfEdgeCellIter, HalfEdgeCellIterhalfedge_cells (HalfEdgeHandle _h, int _max_laps=1) const
 
EdgeHalfFaceIter ehf_iter (EdgeHandle _h, int _max_laps=1) const
 
std::pair< EdgeHalfFaceIter, EdgeHalfFaceIteredge_halffaces (EdgeHandle _h, int _max_laps=1) const
 
EdgeFaceIter ef_iter (EdgeHandle _h, int _max_laps=1) const
 
std::pair< EdgeFaceIter, EdgeFaceIteredge_faces (EdgeHandle _h, int _max_laps=1) const
 
EdgeCellIter ec_iter (EdgeHandle _h, int _max_laps=1) const
 
std::pair< EdgeCellIter, EdgeCellIteredge_cells (EdgeHandle _h, int _max_laps=1) const
 
HalfFaceHalfEdgeIter hfhe_iter (HalfFaceHandle _h, int _max_laps=1) const
 
std::pair< HalfFaceHalfEdgeIter, HalfFaceHalfEdgeIterhalfface_halfedges (HalfFaceHandle _h, int _max_laps=1) const
 
HalfFaceEdgeIter hfe_iter (HalfFaceHandle _h, int _max_laps=1) const
 
std::pair< HalfFaceEdgeIter, HalfFaceEdgeIterhalfface_edges (HalfFaceHandle _h, int _max_laps=1) const
 
FaceVertexIter fv_iter (FaceHandle _h, int _max_laps=1) const
 
std::pair< FaceVertexIter, FaceVertexIterface_vertices (FaceHandle _h, int _max_laps=1) const
 
FaceHalfEdgeIter fhe_iter (FaceHandle _h, int _max_laps=1) const
 
std::pair< FaceHalfEdgeIter, FaceHalfEdgeIterface_halfedges (FaceHandle _h, int _max_laps=1) const
 
FaceEdgeIter fe_iter (FaceHandle _h, int _max_laps=1) const
 
std::pair< FaceEdgeIter, FaceEdgeIterface_edges (FaceHandle _h, int _max_laps=1) const
 
CellVertexIter cv_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellVertexIter, CellVertexItercell_vertices (CellHandle _h, int _max_laps=1) const
 
CellHalfEdgeIter che_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellHalfEdgeIter, CellHalfEdgeItercell_halfedges (CellHandle _h, int _max_laps=1) const
 
CellEdgeIter ce_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellEdgeIter, CellEdgeItercell_edges (CellHandle _h, int _max_laps=1) const
 
CellHalfFaceIter chf_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellHalfFaceIter, CellHalfFaceItercell_halffaces (CellHandle _h, int _max_laps=1) const
 
CellFaceIter cf_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellFaceIter, CellFaceItercell_faces (CellHandle _h, int _max_laps=1) const
 
CellCellIter cc_iter (CellHandle _h, int _max_laps=1) const
 
std::pair< CellCellIter, CellCellItercell_cells (CellHandle _h, int _max_laps=1) const
 
HalfFaceVertexIter hfv_iter (HalfFaceHandle _h, int _max_laps=1) const
 
std::pair< HalfFaceVertexIter, HalfFaceVertexIterhalfface_vertices (HalfFaceHandle _h, int _max_laps=1) const
 
BoundaryHalfFaceHalfFaceIter bhfhf_iter (HalfFaceHandle _ref_h, int _max_laps=1) const
 
std::pair< BoundaryHalfFaceHalfFaceIter, BoundaryHalfFaceHalfFaceIterboundary_halfface_halffaces (HalfFaceHandle _h, int _max_laps=1) const
 
BoundaryVertexIter bv_iter () const
 
BoundaryHalfEdgeIter bhe_iter () const
 
BoundaryEdgeIter be_iter () const
 
BoundaryHalfFaceIter bhf_iter () const
 
BoundaryFaceIter bf_iter () const
 
BoundaryCellIter bc_iter () const
 
VertexIter v_iter () const
 
VertexIter vertices_begin () const
 
VertexIter vertices_end () const
 
std::pair< VertexIter, VertexItervertices () const
 
EdgeIter e_iter () const
 
EdgeIter edges_begin () const
 
EdgeIter edges_end () const
 
std::pair< EdgeIter, EdgeIteredges () const
 
HalfEdgeIter he_iter () const
 
HalfEdgeIter halfedges_begin () const
 
HalfEdgeIter halfedges_end () const
 
std::pair< HalfEdgeIter, HalfEdgeIterhalfedges () const
 
FaceIter f_iter () const
 
FaceIter faces_begin () const
 
FaceIter faces_end () const
 
std::pair< FaceIter, FaceIterfaces () const
 
HalfFaceIter hf_iter () const
 
HalfFaceIter halffaces_begin () const
 
HalfFaceIter halffaces_end () const
 
std::pair< HalfFaceIter, HalfFaceIterhalffaces () const
 
CellIter c_iter () const
 
CellIter cells_begin () const
 
CellIter cells_end () const
 
std::pair< CellIter, CellItercells () const
 
std::array< VertexHandle, 2 > halfedge_vertices (HalfEdgeHandle _h) const
 
std::array< VertexHandle, 2 > edge_vertices (EdgeHandle _h) const
 
std::array< HalfEdgeHandle, 2 > edge_halfedges (EdgeHandle _h) const
 
std::array< HalfFaceHandle, 2 > face_halffaces (FaceHandle _h) const
 
std::array< CellHandle, 2 > face_cells (FaceHandle _h) const
 
size_t n_vertices () const override
 Get number of vertices in mesh. More...
 
size_t n_edges () const override
 Get number of edges in mesh. More...
 
size_t n_halfedges () const override
 Get number of halfedges in mesh. More...
 
size_t n_faces () const override
 Get number of faces in mesh. More...
 
size_t n_halffaces () const override
 Get number of halffaces in mesh. More...
 
size_t n_cells () const override
 Get number of cells in mesh. More...
 
size_t n_logical_vertices () const
 Get number of undeleted vertices in mesh. More...
 
size_t n_logical_edges () const
 Get number of undeleted edges in mesh. More...
 
size_t n_logical_halfedges () const
 Get number of undeleted halfedges in mesh. More...
 
size_t n_logical_faces () const
 Get number of undeleted faces in mesh. More...
 
size_t n_logical_halffaces () const
 Get number of undeleted halffaces in mesh. More...
 
size_t n_logical_cells () const
 Get number of undeleted cells in mesh. More...
 
int genus () const
 
void add_n_vertices (size_t n)
 
void reserve_vertices (size_t n)
 
void reserve_edges (size_t n)
 
void reserve_faces (size_t n)
 
void reserve_cells (size_t n)
 
virtual VertexHandle add_vertex ()
 Add abstract vertex. More...
 
virtual EdgeHandle add_edge (VertexHandle _fromVertex, VertexHandle _toHandle, bool _allowDuplicates=false)
 Add edge. More...
 
virtual FaceHandle add_face (std::vector< HalfEdgeHandle > _halfedges, bool _topologyCheck=false)
 Add face via incident edges. More...
 
virtual FaceHandle add_face (const std::vector< VertexHandle > &_vertices)
 Add face via incident vertices. More...
 
virtual CellHandle add_cell (std::vector< HalfFaceHandle > _halffaces, bool _topologyCheck=false)
 Add cell via incident halffaces. More...
 
void set_edge (EdgeHandle _eh, VertexHandle _fromVertex, VertexHandle _toVertex)
 Set the vertices of an edge. More...
 
void set_face (FaceHandle _fh, const std::vector< HalfEdgeHandle > &_hes)
 Set the half-edges of a face. More...
 
void set_cell (CellHandle _ch, const std::vector< HalfFaceHandle > &_hfs)
 Set the half-faces of a cell. More...
 
void reorder_incident_halffaces (EdgeHandle _eh)
 Recompute cyclic ordering of (half)faces incident to an edge (used by iterators) More...
 
const Edgeedge (EdgeHandle _edgeHandle) const
 Get edge with handle _edgeHandle. More...
 
const Faceface (FaceHandle _faceHandle) const
 Get face with handle _faceHandle. More...
 
const Cellcell (CellHandle _cellHandle) const
 Get cell with handle _cellHandle. More...
 
Edgeedge (EdgeHandle _edgeHandle)
 Get edge with handle _edgeHandle. More...
 
Faceface (FaceHandle _faceHandle)
 Get face with handle _faceHandle. More...
 
Cellcell (CellHandle _cellHandle)
 Get cell with handle _cellHandle. More...
 
Edge halfedge (HalfEdgeHandle _halfEdgeHandle) const
 Get edge that corresponds to halfedge with handle _halfEdgeHandle. More...
 
Face halfface (HalfFaceHandle _halfFaceHandle) const
 Get face that corresponds to halfface with handle _halfFaceHandle. More...
 
Edge opposite_halfedge (HalfEdgeHandle _halfEdgeHandle) const
 Get opposite halfedge that corresponds to halfedge with handle _halfEdgeHandle. More...
 
Face opposite_halfface (HalfFaceHandle _halfFaceHandle) const
 Get opposite halfface that corresponds to halfface with handle _halfFaceHandle. More...
 
HalfEdgeHandle find_halfedge (VertexHandle _vh1, VertexHandle _vh2) const
 Get halfedge from vertex _vh1 to _vh2. More...
 
HalfEdgeHandle halfedge (VertexHandle _vh1, VertexHandle _vh2) const
 
HalfEdgeHandle find_halfedge_in_cell (VertexHandle _vh1, VertexHandle _vh2, CellHandle _ch) const
 Get halfedge from vertex _vh1 to _vh2 but restricted to halfedges of cell _ch. More...
 
HalfFaceHandle find_halfface (const std::vector< VertexHandle > &_vs) const
 
HalfFaceHandle halfface (const std::vector< VertexHandle > &_vs) const
 
HalfFaceHandle find_halfface_in_cell (const std::vector< VertexHandle > &_vs, CellHandle _ch) const
 
HalfFaceHandle find_halfface_extensive (const std::vector< VertexHandle > &_vs) const
 
HalfFaceHandle halfface_extensive (const std::vector< VertexHandle > &_vs) const
 
HalfFaceHandle find_halfface (const std::vector< HalfEdgeHandle > &_hes) const
 
HalfFaceHandle halfface (const std::vector< HalfEdgeHandle > &_hes) const
 
HalfEdgeHandle next_halfedge_in_halfface (HalfEdgeHandle _heh, HalfFaceHandle _hfh) const
 Get next halfedge within a halfface. More...
 
HalfEdgeHandle prev_halfedge_in_halfface (HalfEdgeHandle _heh, HalfFaceHandle _hfh) const
 Get previous halfedge within a halfface. More...
 
VertexHandle from_vertex_handle (HalfEdgeHandle _h) const
 Get the vertex the halfedge starts from. More...
 
VertexHandle to_vertex_handle (HalfEdgeHandle _h) const
 Get the vertex the halfedge points to. More...
 
size_t valence (VertexHandle _vh) const
 Get valence of vertex (number of incident edges) More...
 
size_t valence (EdgeHandle _eh) const
 Get valence of edge (number of incident faces) More...
 
size_t valence (FaceHandle _fh) const
 Get valence of face (number of incident edges) More...
 
size_t valence (CellHandle _ch) const
 Get valence of cell (number of incident faces) More...
 
std::vector< VertexHandleget_halfface_vertices (HalfFaceHandle hfh) const
 Get vertices of a halfface. More...
 
std::vector< VertexHandleget_halfface_vertices (HalfFaceHandle hfh, VertexHandle vh) const
 Get vertices of a halfface orderd to start from vh. More...
 
std::vector< VertexHandleget_halfface_vertices (HalfFaceHandle hfh, HalfEdgeHandle heh) const
 Get vertices of a halfface orderd to start from from_vertex_handle(heh) More...
 
bool is_incident (FaceHandle _fh, EdgeHandle _eh) const
 check whether face _fh and edge _eh are incident More...
 
virtual VertexIter delete_vertex (VertexHandle _h)
 Delete vertex from mesh. More...
 
virtual EdgeIter delete_edge (EdgeHandle _h)
 Delete edge from mesh. More...
 
virtual FaceIter delete_face (FaceHandle _h)
 Delete face from mesh. More...
 
virtual CellIter delete_cell (CellHandle _h)
 Delete cell from mesh. More...
 
virtual void collect_garbage ()
 Delete all entities that are marked as deleted. More...
 
virtual bool is_deleted (VertexHandle _h) const
 
virtual bool is_deleted (EdgeHandle _h) const
 
virtual bool is_deleted (HalfEdgeHandle _h) const
 
virtual bool is_deleted (FaceHandle _h) const
 
virtual bool is_deleted (HalfFaceHandle _h) const
 
virtual bool is_deleted (CellHandle _h) const
 
virtual void swap_cell_indices (CellHandle _h1, CellHandle _h2)
 Exchanges the indices of two cells while keeping the mesh otherwise unaffected. More...
 
virtual void swap_face_indices (FaceHandle _h1, FaceHandle _h2)
 Exchanges the indices of two faces while keeping the mesh otherwise unaffected. More...
 
virtual void swap_edge_indices (EdgeHandle _h1, EdgeHandle _h2)
 Exchanges the indices of two edges while keeping the mesh otherwise unaffected. More...
 
virtual void swap_vertex_indices (VertexHandle _h1, VertexHandle _h2)
 Exchanges the indices of two vertices while keeping the mesh otherwise unaffected. More...
 
virtual void clear (bool _clearProps=true)
 Clear whole mesh. More...
 
void enable_bottom_up_incidences (bool _enable=true)
 
void enable_vertex_bottom_up_incidences (bool _enable=true)
 
void enable_edge_bottom_up_incidences (bool _enable=true)
 
void enable_face_bottom_up_incidences (bool _enable=true)
 
bool has_full_bottom_up_incidences () const
 
bool has_vertex_bottom_up_incidences () const
 
bool has_edge_bottom_up_incidences () const
 
bool has_face_bottom_up_incidences () const
 
void enable_deferred_deletion (bool _enable=true)
 
bool deferred_deletion_enabled () const
 
void enable_fast_deletion (bool _enable=true)
 
bool fast_deletion_enabled () const
 
HalfFaceHandle adjacent_halfface_in_cell (HalfFaceHandle _halfFaceHandle, HalfEdgeHandle _halfEdgeHandle) const
 Get halfface that is adjacent (w.r.t. a common halfedge) within the same cell. It correctly handles self-adjacent cells where the halfedge orientation matters. For legacy reasons the halfedge orientation can be arbitrary if there are no self-adjacencies in the cell. More...
 
CellHandle incident_cell (HalfFaceHandle _halfFaceHandle) const
 Get cell that is incident to the given halfface. More...
 
bool is_boundary (HalfFaceHandle _halfFaceHandle) const
 
bool is_boundary (FaceHandle _faceHandle) const
 
bool is_boundary (EdgeHandle _edgeHandle) const
 
bool is_boundary (HalfEdgeHandle _halfedgeHandle) const
 
bool is_boundary (VertexHandle _vertexHandle) const
 
bool is_boundary (CellHandle _cellHandle) const
 
size_t n_vertices_in_cell (CellHandle _ch) const
 
Edge opposite_halfedge (const Edge &_edge) const
 
Face opposite_halfface (const Face &_face) const
 
bool needs_garbage_collection () const
 
template<typename Handle >
bool is_valid (Handle _h) const
 test is_valid and perform index range check More...
 
- Public Member Functions inherited from OpenVolumeMesh::ResourceManager
 ResourceManager (const ResourceManager &other)
 
ResourceManageroperator= (const ResourceManager &other)
 
 ResourceManager (ResourceManager &&other)=delete
 
ResourceManageroperator= (ResourceManager &&other)=delete
 
void clear_all_props ()
 drop all persistent properties. More...
 
template<typename EntityTag >
void clear_props ()
 drop persistent properties. More...
 
template<typename EntityTag >
size_t n () const
 Get number of entities of given kind in mesh.
 
virtual size_t n_vertices () const =0
 Get number of vertices in mesh. More...
 
virtual size_t n_edges () const =0
 Get number of edges in mesh. More...
 
virtual size_t n_halfedges () const =0
 Get number of halfedges in mesh. More...
 
virtual size_t n_faces () const =0
 Get number of faces in mesh. More...
 
virtual size_t n_halffaces () const =0
 Get number of halffaces in mesh. More...
 
virtual size_t n_cells () const =0
 Get number of cells in mesh. More...
 
template<typename EntityTag >
size_t n_props () const
 number of tracked properties More...
 
template<typename EntityTag >
size_t n_persistent_props () const
 number of persistent properties More...
 
template<typename T , typename EntityTag >
PropertyPtr< T, EntityTag > request_property (const std::string &_name=std::string(), const T _def=T())
 
template<typename T , typename EntityTag >
std::optional< PropertyPtr< T, EntityTag > > create_property (std::string _name=std::string(), const T _def=T())
 
template<typename T , typename EntityTag >
std::optional< PropertyPtr< T, EntityTag > > create_shared_property (std::string _name, const T _def=T())
 
template<typename T , typename EntityTag >
std::optional< PropertyPtr< T, EntityTag > > create_persistent_property (std::string _name, const T _def=T())
 
template<typename T , typename EntityTag >
PropertyPtr< T, EntityTag > create_private_property (std::string _name={}, const T _def=T()) const
 
template<typename T , typename EntityTag >
std::optional< PropertyPtr< T, EntityTag > > get_property (const std::string &_name)
 
template<typename T , typename EntityTag >
std::optional< const PropertyPtr< T, EntityTag > > get_property (const std::string &_name) const
 
template<typename T , typename EntityTag >
bool property_exists (const std::string &_name) const
 
template<typename T , class EntityTag >
void set_persistent (PropertyPtr< T, EntityTag > &_prop, bool _enable=true)
 
template<typename T , class EntityTag >
void set_shared (PropertyPtr< T, EntityTag > &_prop, bool _enable=true)
 
template<typename EntityTag >
PropertyIterator< PersistentProperties::const_iterator > persistent_props_begin () const
 
template<typename EntityTag >
PropertyIterator< PersistentProperties::const_iterator > persistent_props_end () const
 
void clear_vertex_props ()
 convenience functions: More...
 
void clear_edge_props ()
 
void clear_halfedge_props ()
 
void clear_face_props ()
 
void clear_halfface_props ()
 
void clear_cell_props ()
 
void clear_mesh_props ()
 
template<class T >
VertexPropertyT< T > request_vertex_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
EdgePropertyT< T > request_edge_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
HalfEdgePropertyT< T > request_halfedge_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
FacePropertyT< T > request_face_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
HalfFacePropertyT< T > request_halfface_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
CellPropertyT< T > request_cell_property (const std::string &_name=std::string(), const T _def=T())
 
template<class T >
MeshPropertyT< T > request_mesh_property (const std::string &_name=std::string(), const T _def=T())
 
size_t n_vertex_props () const
 
auto vertex_props_begin () const
 
auto vertex_props_end () const
 
template<typename T >
std::optional< VertexPropertyPtr< T > > create_shared_vertex_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< VertexPropertyPtr< T > > create_persistent_vertex_property (std::string _name, const T _def=T())
 
template<typename T >
VertexPropertyPtr< T > create_private_vertex_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< VertexPropertyPtr< T > > get_vertex_property (const std::string &_name)
 
template<typename T >
std::optional< const VertexPropertyPtr< T > > get_vertex_property (const std::string &_name) const
 
template<class T >
bool vertex_property_exists (const std::string &_name) const
 
size_t n_edge_props () const
 
auto edge_props_begin () const
 
auto edge_props_end () const
 
template<typename T >
std::optional< EdgePropertyPtr< T > > create_shared_edge_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< EdgePropertyPtr< T > > create_persistent_edge_property (std::string _name, const T _def=T())
 
template<typename T >
EdgePropertyPtr< T > create_private_edge_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< EdgePropertyPtr< T > > get_edge_property (const std::string &_name)
 
template<typename T >
std::optional< const EdgePropertyPtr< T > > get_edge_property (const std::string &_name) const
 
template<class T >
bool edge_property_exists (const std::string &_name) const
 
size_t n_halfedge_props () const
 
auto halfedge_props_begin () const
 
auto halfedge_props_end () const
 
template<typename T >
std::optional< HalfEdgePropertyPtr< T > > create_shared_halfedge_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< HalfEdgePropertyPtr< T > > create_persistent_halfedge_property (std::string _name, const T _def=T())
 
template<typename T >
HalfEdgePropertyPtr< T > create_private_halfedge_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< HalfEdgePropertyPtr< T > > get_halfedge_property (const std::string &_name)
 
template<typename T >
std::optional< const HalfEdgePropertyPtr< T > > get_halfedge_property (const std::string &_name) const
 
template<class T >
bool halfedge_property_exists (const std::string &_name) const
 
size_t n_face_props () const
 
auto face_props_begin () const
 
auto face_props_end () const
 
template<typename T >
std::optional< FacePropertyPtr< T > > create_shared_face_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< FacePropertyPtr< T > > create_persistent_face_property (std::string _name, const T _def=T())
 
template<typename T >
FacePropertyPtr< T > create_private_face_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< FacePropertyPtr< T > > get_face_property (const std::string &_name)
 
template<typename T >
std::optional< const FacePropertyPtr< T > > get_face_property (const std::string &_name) const
 
template<class T >
bool face_property_exists (const std::string &_name) const
 
size_t n_halfface_props () const
 
auto halfface_props_begin () const
 
auto halfface_props_end () const
 
template<typename T >
std::optional< HalfFacePropertyPtr< T > > create_shared_halfface_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< HalfFacePropertyPtr< T > > create_persistent_halfface_property (std::string _name, const T _def=T())
 
template<typename T >
HalfFacePropertyPtr< T > create_private_halfface_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< HalfFacePropertyPtr< T > > get_halfface_property (const std::string &_name)
 
template<typename T >
std::optional< const HalfFacePropertyPtr< T > > get_halfface_property (const std::string &_name) const
 
template<class T >
bool halfface_property_exists (const std::string &_name) const
 
size_t n_cell_props () const
 
auto cell_props_begin () const
 
auto cell_props_end () const
 
template<typename T >
std::optional< CellPropertyPtr< T > > create_shared_cell_property (std::string _name, const T _def=T())
 
template<typename T >
std::optional< CellPropertyPtr< T > > create_persistent_cell_property (std::string _name, const T _def=T())
 
template<typename T >
CellPropertyPtr< T > create_private_cell_property (std::string _name={}, const T _def=T()) const
 
template<typename T >
std::optional< CellPropertyPtr< T > > get_cell_property (const std::string &_name)
 
template<typename T >
std::optional< const CellPropertyPtr< T > > get_cell_property (const std::string &_name) const
 
template<class T >
bool cell_property_exists (const std::string &_name) const
 

Static Public Member Functions

static HalfEdgeHandle halfedge_handle (EdgeHandle _h, const unsigned char _subIdx)
 Conversion function. More...
 
static HalfFaceHandle halfface_handle (FaceHandle _h, const unsigned char _subIdx)
 Conversion function. More...
 
static EdgeHandle edge_handle (HalfEdgeHandle _h)
 Handle conversion. More...
 
static FaceHandle face_handle (HalfFaceHandle _h)
 
static HalfEdgeHandle opposite_halfedge_handle (HalfEdgeHandle _h)
 
static HalfFaceHandle opposite_halfface_handle (HalfFaceHandle _h)
 

Static Public Attributes

static const VertexHandle InvalidVertexHandle = VertexHandle(-1)
 
static const EdgeHandle InvalidEdgeHandle = EdgeHandle(-1)
 
static const FaceHandle InvalidFaceHandle = FaceHandle(-1)
 
static const CellHandle InvalidCellHandle = CellHandle(-1)
 
static const HalfEdgeHandle InvalidHalfEdgeHandle = HalfEdgeHandle(-1)
 
static const HalfFaceHandle InvalidHalfFaceHandle = HalfFaceHandle(-1)
 

Protected Member Functions

void compute_vertex_bottom_up_incidences ()
 
void compute_edge_bottom_up_incidences ()
 
void compute_face_bottom_up_incidences ()
 
- Protected Member Functions inherited from OpenVolumeMesh::ResourceManager
template<typename EntityTag >
detail::Tracker< PropertyStorageBase > & storage_tracker () const
 
detail::Tracker< PropertyStorageBase > & storage_tracker (EntityType type) const
 
void resize_vprops (size_t _nv)
 Change size of stored vertex properties. More...
 
void resize_eprops (size_t _ne)
 Change size of stored edge properties. More...
 
void resize_fprops (size_t _nf)
 Change size of stored face properties. More...
 
void resize_cprops (size_t _nc)
 Change size of stored cell properties. More...
 
void reserve_vprops (size_t n)
 
void reserve_eprops (size_t n)
 
void reserve_fprops (size_t n)
 
void reserve_cprops (size_t n)
 
void vertex_deleted (const VertexHandle &_h)
 
void edge_deleted (const EdgeHandle &_h)
 
void face_deleted (const FaceHandle &_h)
 
void cell_deleted (const CellHandle &_h)
 
template<typename Handle >
void swap_property_elements (Handle _idx_a, Handle _idx_b)
 
template<typename Handle >
void copy_property_elements (Handle _idx_a, Handle _idx_b)
 

Static Protected Member Functions

template<class Circulator >
static Circulator make_end_circulator (const Circulator &_circ)
 

Protected Attributes

VertexVector< std::vector< HalfEdgeHandle > > outgoing_hes_per_vertex_
 
HalfEdgeVector< std::vector< HalfFaceHandle > > incident_hfs_per_he_
 
HalfFaceVector< CellHandleincident_cell_per_hf_
 
- Protected Attributes inherited from OpenVolumeMesh::ResourceManager
PerEntity< detail::Tracker< PropertyStorageBase > > storage_trackers_
 

Private Member Functions

template<class ContainerT >
void get_incident_edges (const ContainerT &_vs, std::set< EdgeHandle > &_es) const
 
template<class ContainerT >
void get_incident_faces (const ContainerT &_es, std::set< FaceHandle > &_fs) const
 
template<class ContainerT >
void get_incident_cells (const ContainerT &_fs, std::set< CellHandle > &_cs) const
 
VertexIter delete_vertex_core (VertexHandle _h)
 Delete vertex from mesh. More...
 
EdgeIter delete_edge_core (EdgeHandle _h)
 Delete edge from mesh. More...
 
FaceIter delete_face_core (FaceHandle _h)
 Delete face from mesh. More...
 
CellIter delete_cell_core (CellHandle _h)
 Delete cell from mesh. More...
 

Private Attributes

size_t n_vertices_ = 0u
 
bool v_bottom_up_ = true
 
bool e_bottom_up_ = true
 
bool f_bottom_up_ = true
 
bool deferred_deletion_ = true
 
bool fast_deletion_ = true
 
EdgeVector< Edgeedges_
 
FaceVector< Facefaces_
 
CellVector< Cellcells_
 
VertexVector< bool > vertex_deleted_
 
EdgeVector< bool > edge_deleted_
 
FaceVector< bool > face_deleted_
 
CellVector< bool > cell_deleted_
 
size_t n_deleted_vertices_ = 0
 
size_t n_deleted_edges_ = 0
 
size_t n_deleted_faces_ = 0
 
size_t n_deleted_cells_ = 0
 

Friends

class StatusAttrib
 
class VertexOHalfEdgeIter
 
class VertexVertexIter
 
class HalfEdgeHalfFaceIter
 
class VertexFaceIter
 
class VertexCellIter
 
class HalfEdgeCellIter
 
class CellVertexIter
 
class CellCellIter
 
class HalfFaceVertexIter
 
class BoundaryHalfFaceHalfFaceIter
 
class VertexIter
 
class EdgeIter
 
class HalfEdgeIter
 
class FaceIter
 
class HalfFaceIter
 
class CellIter
 

Detailed Description

Definition at line 69 of file TopologyKernel.hh.

Member Typedef Documentation

◆ Cell

◆ Edge

◆ Face

Member Function Documentation

◆ add_cell()

CellHandle OpenVolumeMesh::TopologyKernel::add_cell ( std::vector< HalfFaceHandle _halffaces,
bool  _topologyCheck = false 
)
virtual

Add cell via incident halffaces.

Add cell via incident halffaces

Returns
Handle of the new cell, InvalidCellHandle if _topologyCheck is true and _halffaces are not connected.
Warning
If _halffaces are not connected and _topologyCheck is false, the behavior is undefined.

Reimplemented in OpenVolumeMesh::HexahedralMeshTopologyKernel, and OpenVolumeMesh::TetrahedralMeshTopologyKernel.

Definition at line 380 of file TopologyKernel.cc.

◆ add_edge()

EdgeHandle OpenVolumeMesh::TopologyKernel::add_edge ( VertexHandle  _fromVertex,
VertexHandle  _toHandle,
bool  _allowDuplicates = false 
)
virtual

Add edge.

Definition at line 115 of file TopologyKernel.cc.

◆ add_face() [1/2]

FaceHandle OpenVolumeMesh::TopologyKernel::add_face ( const std::vector< VertexHandle > &  _vertices)
virtual

Add face via incident vertices.

Add face via incident vertices Define the _vertices in counter-clockwise order (from the "outside")

Reimplemented in OpenVolumeMesh::HexahedralMeshTopologyKernel, and OpenVolumeMesh::TetrahedralMeshTopologyKernel.

Definition at line 237 of file TopologyKernel.cc.

◆ add_face() [2/2]

FaceHandle OpenVolumeMesh::TopologyKernel::add_face ( std::vector< HalfEdgeHandle _halfedges,
bool  _topologyCheck = false 
)
virtual

Add face via incident edges.

Add face via incident edges

Returns
Handle of the new face, InvalidFaceHandle if _halfedges are not connected and _topologyCheck is true.
Warning
If _halfedges are not connected or not in the right order and _topologyCheck is false, the behavior is undefined.

Reimplemented in OpenVolumeMesh::HexahedralMeshTopologyKernel, and OpenVolumeMesh::TetrahedralMeshTopologyKernel.

Definition at line 176 of file TopologyKernel.cc.

◆ add_n_vertices()

void OpenVolumeMesh::TopologyKernel::add_n_vertices ( size_t  n)

Definition at line 85 of file TopologyKernel.cc.

◆ add_vertex()

VertexHandle OpenVolumeMesh::TopologyKernel::add_vertex ( )
virtual

Add abstract vertex.

Definition at line 95 of file TopologyKernel.cc.

◆ adjacent_halfface_in_cell()

HalfFaceHandle OpenVolumeMesh::TopologyKernel::adjacent_halfface_in_cell ( HalfFaceHandle  _halfFaceHandle,
HalfEdgeHandle  _halfEdgeHandle 
) const

Get halfface that is adjacent (w.r.t. a common halfedge) within the same cell. It correctly handles self-adjacent cells where the halfedge orientation matters. For legacy reasons the halfedge orientation can be arbitrary if there are no self-adjacencies in the cell.

Returns
Handle of the adjacent half-face if _halfFaceHandle is not at a boundary, InvalidHalfFaceHandle otherwise.
Warning
The mesh must have face bottom-up incidences.

Definition at line 2249 of file TopologyKernel.cc.

◆ bc_iter()

BoundaryCellIter OpenVolumeMesh::TopologyKernel::bc_iter ( ) const
inline

Definition at line 399 of file TopologyKernel.hh.

◆ be_iter()

BoundaryEdgeIter OpenVolumeMesh::TopologyKernel::be_iter ( ) const
inline

Definition at line 387 of file TopologyKernel.hh.

◆ bf_iter()

BoundaryFaceIter OpenVolumeMesh::TopologyKernel::bf_iter ( ) const
inline

Definition at line 395 of file TopologyKernel.hh.

◆ bhe_iter()

BoundaryHalfEdgeIter OpenVolumeMesh::TopologyKernel::bhe_iter ( ) const
inline

Definition at line 383 of file TopologyKernel.hh.

◆ bhf_iter()

BoundaryHalfFaceIter OpenVolumeMesh::TopologyKernel::bhf_iter ( ) const
inline

Definition at line 391 of file TopologyKernel.hh.

◆ bhfhf_iter()

BoundaryHalfFaceHalfFaceIter OpenVolumeMesh::TopologyKernel::bhfhf_iter ( HalfFaceHandle  _ref_h,
int  _max_laps = 1 
) const
inline

Definition at line 366 of file TopologyKernel.hh.

◆ boundary_halfface_halffaces()

std::pair< BoundaryHalfFaceHalfFaceIter, BoundaryHalfFaceHalfFaceIter > OpenVolumeMesh::TopologyKernel::boundary_halfface_halffaces ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 370 of file TopologyKernel.hh.

◆ bv_iter()

BoundaryVertexIter OpenVolumeMesh::TopologyKernel::bv_iter ( ) const
inline

Definition at line 379 of file TopologyKernel.hh.

◆ c_iter()

CellIter OpenVolumeMesh::TopologyKernel::c_iter ( ) const
inline

Definition at line 483 of file TopologyKernel.hh.

◆ cc_iter()

CellCellIter OpenVolumeMesh::TopologyKernel::cc_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 348 of file TopologyKernel.hh.

◆ ce_iter()

CellEdgeIter OpenVolumeMesh::TopologyKernel::ce_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 321 of file TopologyKernel.hh.

◆ cell() [1/2]

OpenVolumeMeshCell & OpenVolumeMesh::TopologyKernel::cell ( CellHandle  _cellHandle)

Get cell with handle _cellHandle.

Definition at line 1897 of file TopologyKernel.cc.

◆ cell() [2/2]

const OpenVolumeMeshCell & OpenVolumeMesh::TopologyKernel::cell ( CellHandle  _cellHandle) const

Get cell with handle _cellHandle.

Definition at line 1869 of file TopologyKernel.cc.

◆ cell_cells()

std::pair< CellCellIter, CellCellIter > OpenVolumeMesh::TopologyKernel::cell_cells ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 352 of file TopologyKernel.hh.

◆ cell_edges()

std::pair< CellEdgeIter, CellEdgeIter > OpenVolumeMesh::TopologyKernel::cell_edges ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 325 of file TopologyKernel.hh.

◆ cell_faces()

std::pair< CellFaceIter, CellFaceIter > OpenVolumeMesh::TopologyKernel::cell_faces ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 343 of file TopologyKernel.hh.

◆ cell_halfedges()

std::pair< CellHalfEdgeIter, CellHalfEdgeIter > OpenVolumeMesh::TopologyKernel::cell_halfedges ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 316 of file TopologyKernel.hh.

◆ cell_halffaces()

std::pair< CellHalfFaceIter, CellHalfFaceIter > OpenVolumeMesh::TopologyKernel::cell_halffaces ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 334 of file TopologyKernel.hh.

◆ cell_vertices()

std::pair< CellVertexIter, CellVertexIter > OpenVolumeMesh::TopologyKernel::cell_vertices ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 307 of file TopologyKernel.hh.

◆ cells()

std::pair< CellIter, CellIter > OpenVolumeMesh::TopologyKernel::cells ( ) const
inline

Definition at line 495 of file TopologyKernel.hh.

◆ cells_begin()

CellIter OpenVolumeMesh::TopologyKernel::cells_begin ( ) const
inline

Definition at line 487 of file TopologyKernel.hh.

◆ cells_end()

CellIter OpenVolumeMesh::TopologyKernel::cells_end ( ) const
inline

Definition at line 491 of file TopologyKernel.hh.

◆ cf_iter()

CellFaceIter OpenVolumeMesh::TopologyKernel::cf_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 339 of file TopologyKernel.hh.

◆ che_iter()

CellHalfEdgeIter OpenVolumeMesh::TopologyKernel::che_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 312 of file TopologyKernel.hh.

◆ chf_iter()

CellHalfFaceIter OpenVolumeMesh::TopologyKernel::chf_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 330 of file TopologyKernel.hh.

◆ clear()

virtual void OpenVolumeMesh::TopologyKernel::clear ( bool  _clearProps = true)
inlinevirtual

Clear whole mesh.

Definition at line 865 of file TopologyKernel.hh.

◆ collect_garbage()

void OpenVolumeMesh::TopologyKernel::collect_garbage ( )
virtual

Delete all entities that are marked as deleted.

Definition at line 745 of file TopologyKernel.cc.

◆ compute_edge_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::compute_edge_bottom_up_incidences ( )
protected

Definition at line 2366 of file TopologyKernel.cc.

◆ compute_face_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::compute_face_bottom_up_incidences ( )
protected

Definition at line 2394 of file TopologyKernel.cc.

◆ compute_vertex_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::compute_vertex_bottom_up_incidences ( )
protected

Definition at line 2330 of file TopologyKernel.cc.

◆ cv_iter()

CellVertexIter OpenVolumeMesh::TopologyKernel::cv_iter ( CellHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 303 of file TopologyKernel.hh.

◆ deferred_deletion_enabled()

bool OpenVolumeMesh::TopologyKernel::deferred_deletion_enabled ( ) const
inline

Definition at line 983 of file TopologyKernel.hh.

◆ delete_cell()

CellIter OpenVolumeMesh::TopologyKernel::delete_cell ( CellHandle  _h)
virtual

Delete cell from mesh.

Since there's no higher dimensional incident entity to a cell, we can safely delete it from the mesh.

Parameters
_hThe handle to the cell to be deleted

Definition at line 736 of file TopologyKernel.cc.

◆ delete_cell_core()

CellIter OpenVolumeMesh::TopologyKernel::delete_cell_core ( CellHandle  _h)
private

Delete cell from mesh.

After performing this operation, all cells following cell _h in the array will be accessible through their old handle decreased by one. These steps are performed:

1) Delete links in BU: HF -> C 2) Decrease all entries > c in BU: HF -> C 3) Delete cell from storage array 4) Delete property item

Parameters
_hA cell handle

Definition at line 1398 of file TopologyKernel.cc.

◆ delete_edge()

EdgeIter OpenVolumeMesh::TopologyKernel::delete_edge ( EdgeHandle  _h)
virtual

Delete edge from mesh.

Get all incident higher-dimensional entities and delete the complete subtree of the mesh incident to edge h. In this function all incident entities are gathered and deleted using the delete*_core functions that do the actual deletion including the update of the bottom-up incidences, etc.

Parameters
_hThe handle to the edge to be deleted

Definition at line 662 of file TopologyKernel.cc.

◆ delete_edge_core()

EdgeIter OpenVolumeMesh::TopologyKernel::delete_edge_core ( EdgeHandle  _h)
private

Delete edge from mesh.

After performing this operation, all edges following edge _h in the array will be accessible through their old handle decreased by one. This function directly fixes the edge links in all faces. These steps are performed:

1) Delete bottom-up links from incident vertices 2) Decrease all half-edge handles > _h in incident faces 3) Delete entry in bottom-up list: HE -> HF 4) Decrease all half-edge handles > 2*_h.idx() in vertex bottom-up list 5) Delete edge itself 6) Delete property entry

Parameters
_hAn edge's handle

Definition at line 1043 of file TopologyKernel.cc.

◆ delete_face()

FaceIter OpenVolumeMesh::TopologyKernel::delete_face ( FaceHandle  _h)
virtual

Delete face from mesh.

Get all incident higher-dimensional entities and delete the complete subtree of the mesh incident to face h. In this function all incident entities are gathered and deleted using the delete*_core functions that do the actual deletion including the update of the bottom-up incidences, etc.

Parameters
_hThe handle to the face to be deleted

Definition at line 705 of file TopologyKernel.cc.

◆ delete_face_core()

FaceIter OpenVolumeMesh::TopologyKernel::delete_face_core ( FaceHandle  _h)
private

Delete face from mesh.

After performing this operation, all faces following face _h in the array will be accessible through their old handle decreased by one. This function directly fixes the face links in all cells. These steps are performed:

1) Delete bottom-up links from incident edges 2) Decrease all half-face handles > _h in incident cells 3) Delete entry in bottom-up list: HF -> C 4) Decrease all half-face handles > 2*_h.idx() in half-edge bottom-up list 5) Delete face itself 6) Delete property entry

Parameters
_hAn face's handle

Definition at line 1227 of file TopologyKernel.cc.

◆ delete_vertex()

VertexIter OpenVolumeMesh::TopologyKernel::delete_vertex ( VertexHandle  _h)
virtual

Delete vertex from mesh.

Get all incident higher-dimensional entities and delete the complete subtree of the mesh incident to vertex h. In this function all incident entities are gathered and deleted using the delete*_core functions that do the actual deletion including the update of the bottom-up incidences, etc.

Parameters
_hThe handle to the vertex to be deleted

Definition at line 610 of file TopologyKernel.cc.

◆ delete_vertex_core()

VertexIter OpenVolumeMesh::TopologyKernel::delete_vertex_core ( VertexHandle  _h)
private

Delete vertex from mesh.

After performing this operation, all vertices following vertex _h in the array will be accessible through their old handle decreased by one. This function directly fixes the vertex links in all edges. These steps are performed:

1) Decrease all vertex handles > _h in incident edges 2) Delete entry in bottom-up list: V -> HE 3) Delete vertex itself (not necessary here since a vertex is only represented by a number) 4) Delete property entry

Parameters
_hA vertex's handle

Definition at line 938 of file TopologyKernel.cc.

◆ e_iter()

EdgeIter OpenVolumeMesh::TopologyKernel::e_iter ( ) const
inline

Definition at line 419 of file TopologyKernel.hh.

◆ ec_iter()

EdgeCellIter OpenVolumeMesh::TopologyKernel::ec_iter ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 249 of file TopologyKernel.hh.

◆ edge() [1/2]

OpenVolumeMeshEdge & OpenVolumeMesh::TopologyKernel::edge ( EdgeHandle  _edgeHandle)

Get edge with handle _edgeHandle.

Definition at line 1878 of file TopologyKernel.cc.

◆ edge() [2/2]

const OpenVolumeMeshEdge & OpenVolumeMesh::TopologyKernel::edge ( EdgeHandle  _edgeHandle) const

Get edge with handle _edgeHandle.

Definition at line 1851 of file TopologyKernel.cc.

◆ edge_cells()

std::pair< EdgeCellIter, EdgeCellIter > OpenVolumeMesh::TopologyKernel::edge_cells ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 253 of file TopologyKernel.hh.

◆ edge_faces()

std::pair< EdgeFaceIter, EdgeFaceIter > OpenVolumeMesh::TopologyKernel::edge_faces ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 244 of file TopologyKernel.hh.

◆ edge_halfedges()

std::array< HalfEdgeHandle, 2 > OpenVolumeMesh::TopologyKernel::edge_halfedges ( EdgeHandle  _h) const
inline

Definition at line 511 of file TopologyKernel.hh.

◆ edge_halffaces()

std::pair< EdgeHalfFaceIter, EdgeHalfFaceIter > OpenVolumeMesh::TopologyKernel::edge_halffaces ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 235 of file TopologyKernel.hh.

◆ edge_handle()

static EdgeHandle OpenVolumeMesh::TopologyKernel::edge_handle ( HalfEdgeHandle  _h)
inlinestatic

Handle conversion.

Definition at line 1153 of file TopologyKernel.hh.

◆ edge_vertices()

std::array< VertexHandle, 2 > OpenVolumeMesh::TopologyKernel::edge_vertices ( EdgeHandle  _h) const
inline

Definition at line 507 of file TopologyKernel.hh.

◆ edges()

std::pair< EdgeIter, EdgeIter > OpenVolumeMesh::TopologyKernel::edges ( ) const
inline

Definition at line 431 of file TopologyKernel.hh.

◆ edges_begin()

EdgeIter OpenVolumeMesh::TopologyKernel::edges_begin ( ) const
inline

Definition at line 423 of file TopologyKernel.hh.

◆ edges_end()

EdgeIter OpenVolumeMesh::TopologyKernel::edges_end ( ) const
inline

Definition at line 427 of file TopologyKernel.hh.

◆ ef_iter()

EdgeFaceIter OpenVolumeMesh::TopologyKernel::ef_iter ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 240 of file TopologyKernel.hh.

◆ ehf_iter()

EdgeHalfFaceIter OpenVolumeMesh::TopologyKernel::ehf_iter ( EdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 231 of file TopologyKernel.hh.

◆ enable_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::enable_bottom_up_incidences ( bool  _enable = true)
inline

Definition at line 900 of file TopologyKernel.hh.

◆ enable_deferred_deletion()

void OpenVolumeMesh::TopologyKernel::enable_deferred_deletion ( bool  _enable = true)

Definition at line 1840 of file TopologyKernel.cc.

◆ enable_edge_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::enable_edge_bottom_up_incidences ( bool  _enable = true)
inline

Definition at line 922 of file TopologyKernel.hh.

◆ enable_face_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::enable_face_bottom_up_incidences ( bool  _enable = true)
inline

Definition at line 943 of file TopologyKernel.hh.

◆ enable_fast_deletion()

void OpenVolumeMesh::TopologyKernel::enable_fast_deletion ( bool  _enable = true)
inline

Definition at line 986 of file TopologyKernel.hh.

◆ enable_vertex_bottom_up_incidences()

void OpenVolumeMesh::TopologyKernel::enable_vertex_bottom_up_incidences ( bool  _enable = true)
inline

Definition at line 907 of file TopologyKernel.hh.

◆ f_iter()

FaceIter OpenVolumeMesh::TopologyKernel::f_iter ( ) const
inline

Definition at line 451 of file TopologyKernel.hh.

◆ face() [1/2]

OpenVolumeMeshFace & OpenVolumeMesh::TopologyKernel::face ( FaceHandle  _faceHandle)

Get face with handle _faceHandle.

Definition at line 1887 of file TopologyKernel.cc.

◆ face() [2/2]

const OpenVolumeMeshFace & OpenVolumeMesh::TopologyKernel::face ( FaceHandle  _faceHandle) const

Get face with handle _faceHandle.

Definition at line 1860 of file TopologyKernel.cc.

◆ face_cells()

std::array< CellHandle, 2 > OpenVolumeMesh::TopologyKernel::face_cells ( FaceHandle  _h) const
inline

Definition at line 523 of file TopologyKernel.hh.

◆ face_edges()

std::pair< FaceEdgeIter, FaceEdgeIter > OpenVolumeMesh::TopologyKernel::face_edges ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 298 of file TopologyKernel.hh.

◆ face_halfedges()

std::pair< FaceHalfEdgeIter, FaceHalfEdgeIter > OpenVolumeMesh::TopologyKernel::face_halfedges ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 289 of file TopologyKernel.hh.

◆ face_halffaces()

std::array< HalfFaceHandle, 2 > OpenVolumeMesh::TopologyKernel::face_halffaces ( FaceHandle  _h) const
inline

Definition at line 517 of file TopologyKernel.hh.

◆ face_handle()

static FaceHandle OpenVolumeMesh::TopologyKernel::face_handle ( HalfFaceHandle  _h)
inlinestatic

Definition at line 1158 of file TopologyKernel.hh.

◆ face_vertices()

std::pair< FaceVertexIter, FaceVertexIter > OpenVolumeMesh::TopologyKernel::face_vertices ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 280 of file TopologyKernel.hh.

◆ faces()

std::pair< FaceIter, FaceIter > OpenVolumeMesh::TopologyKernel::faces ( ) const
inline

Definition at line 463 of file TopologyKernel.hh.

◆ faces_begin()

FaceIter OpenVolumeMesh::TopologyKernel::faces_begin ( ) const
inline

Definition at line 455 of file TopologyKernel.hh.

◆ faces_end()

FaceIter OpenVolumeMesh::TopologyKernel::faces_end ( ) const
inline

Definition at line 459 of file TopologyKernel.hh.

◆ fast_deletion_enabled()

bool OpenVolumeMesh::TopologyKernel::fast_deletion_enabled ( ) const
inline

Definition at line 987 of file TopologyKernel.hh.

◆ fe_iter()

FaceEdgeIter OpenVolumeMesh::TopologyKernel::fe_iter ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 294 of file TopologyKernel.hh.

◆ fhe_iter()

FaceHalfEdgeIter OpenVolumeMesh::TopologyKernel::fhe_iter ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 285 of file TopologyKernel.hh.

◆ find_halfedge()

HalfEdgeHandle OpenVolumeMesh::TopologyKernel::find_halfedge ( VertexHandle  _vh1,
VertexHandle  _vh2 
) const

Get halfedge from vertex _vh1 to _vh2.

Definition at line 1962 of file TopologyKernel.cc.

◆ find_halfedge_in_cell()

HalfEdgeHandle OpenVolumeMesh::TopologyKernel::find_halfedge_in_cell ( VertexHandle  _vh1,
VertexHandle  _vh2,
CellHandle  _ch 
) const

Get halfedge from vertex _vh1 to _vh2 but restricted to halfedges of cell _ch.

Definition at line 1978 of file TopologyKernel.cc.

◆ find_halfface() [1/2]

HalfFaceHandle OpenVolumeMesh::TopologyKernel::find_halfface ( const std::vector< HalfEdgeHandle > &  _hes) const

Get half-face from list of incident half-edges

Note
Only the first two half-edges are checked

Definition at line 2125 of file TopologyKernel.cc.

◆ find_halfface() [2/2]

HalfFaceHandle OpenVolumeMesh::TopologyKernel::find_halfface ( const std::vector< VertexHandle > &  _vs) const

Get half-face from list of incident vertices (in connected order)

Note
Only the first three vertices are checked

Definition at line 2006 of file TopologyKernel.cc.

◆ find_halfface_extensive()

HalfFaceHandle OpenVolumeMesh::TopologyKernel::find_halfface_extensive ( const std::vector< VertexHandle > &  _vs) const

Get half-face from list of incident vertices (in connected order)

Note
All vertices are checked

Definition at line 2071 of file TopologyKernel.cc.

◆ find_halfface_in_cell()

HalfFaceHandle OpenVolumeMesh::TopologyKernel::find_halfface_in_cell ( const std::vector< VertexHandle > &  _vs,
CellHandle  _ch 
) const

Get half-face from list of incident vertices (in connected order)

Note
Only the first three vertices are checked

Definition at line 2028 of file TopologyKernel.cc.

◆ from_vertex_handle()

VertexHandle OpenVolumeMesh::TopologyKernel::from_vertex_handle ( HalfEdgeHandle  _h) const
inline

Get the vertex the halfedge starts from.

Definition at line 701 of file TopologyKernel.hh.

◆ fv_iter()

FaceVertexIter OpenVolumeMesh::TopologyKernel::fv_iter ( FaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 276 of file TopologyKernel.hh.

◆ genus()

int OpenVolumeMesh::TopologyKernel::genus ( ) const
inline

Definition at line 559 of file TopologyKernel.hh.

◆ get_halfface_vertices() [1/3]

std::vector< VertexHandle > OpenVolumeMesh::TopologyKernel::get_halfface_vertices ( HalfFaceHandle  hfh) const

Get vertices of a halfface.

Definition at line 2189 of file TopologyKernel.cc.

◆ get_halfface_vertices() [2/3]

std::vector< VertexHandle > OpenVolumeMesh::TopologyKernel::get_halfface_vertices ( HalfFaceHandle  hfh,
HalfEdgeHandle  heh 
) const

Get vertices of a halfface orderd to start from from_vertex_handle(heh)

Definition at line 2212 of file TopologyKernel.cc.

◆ get_halfface_vertices() [3/3]

std::vector< VertexHandle > OpenVolumeMesh::TopologyKernel::get_halfface_vertices ( HalfFaceHandle  hfh,
VertexHandle  vh 
) const

Get vertices of a halfface orderd to start from vh.

Definition at line 2198 of file TopologyKernel.cc.

◆ get_incident_cells()

template<class ContainerT >
void OpenVolumeMesh::TopologyKernel::get_incident_cells ( const ContainerT &  _fs,
std::set< CellHandle > &  _cs 
) const
private

Definition at line 877 of file TopologyKernel.cc.

◆ get_incident_edges()

template<class ContainerT >
void OpenVolumeMesh::TopologyKernel::get_incident_edges ( const ContainerT &  _vs,
std::set< EdgeHandle > &  _es 
) const
private

Definition at line 795 of file TopologyKernel.cc.

◆ get_incident_faces()

template<class ContainerT >
void OpenVolumeMesh::TopologyKernel::get_incident_faces ( const ContainerT &  _es,
std::set< FaceHandle > &  _fs 
) const
private

Definition at line 833 of file TopologyKernel.cc.

◆ halfedge() [1/2]

OpenVolumeMeshEdge OpenVolumeMesh::TopologyKernel::halfedge ( HalfEdgeHandle  _halfEdgeHandle) const

Get edge that corresponds to halfedge with handle _halfEdgeHandle.

Definition at line 1906 of file TopologyKernel.cc.

◆ halfedge() [2/2]

HalfEdgeHandle OpenVolumeMesh::TopologyKernel::halfedge ( VertexHandle  _vh1,
VertexHandle  _vh2 
) const

Definition at line 1953 of file TopologyKernel.cc.

◆ halfedge_cells()

std::pair< HalfEdgeCellIter, HalfEdgeCellIter > OpenVolumeMesh::TopologyKernel::halfedge_cells ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 226 of file TopologyKernel.hh.

◆ halfedge_faces()

std::pair< HalfEdgeFaceIter, HalfEdgeFaceIter > OpenVolumeMesh::TopologyKernel::halfedge_faces ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 217 of file TopologyKernel.hh.

◆ halfedge_halffaces()

std::pair< HalfEdgeHalfFaceIter, HalfEdgeHalfFaceIter > OpenVolumeMesh::TopologyKernel::halfedge_halffaces ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 208 of file TopologyKernel.hh.

◆ halfedge_handle()

static HalfEdgeHandle OpenVolumeMesh::TopologyKernel::halfedge_handle ( EdgeHandle  _h,
const unsigned char  _subIdx 
)
inlinestatic

Conversion function.

Definition at line 1135 of file TopologyKernel.hh.

◆ halfedge_vertices()

std::array< VertexHandle, 2 > OpenVolumeMesh::TopologyKernel::halfedge_vertices ( HalfEdgeHandle  _h) const
inline

Definition at line 503 of file TopologyKernel.hh.

◆ halfedges()

std::pair< HalfEdgeIter, HalfEdgeIter > OpenVolumeMesh::TopologyKernel::halfedges ( ) const
inline

Definition at line 447 of file TopologyKernel.hh.

◆ halfedges_begin()

HalfEdgeIter OpenVolumeMesh::TopologyKernel::halfedges_begin ( ) const
inline

Definition at line 439 of file TopologyKernel.hh.

◆ halfedges_end()

HalfEdgeIter OpenVolumeMesh::TopologyKernel::halfedges_end ( ) const
inline

Definition at line 443 of file TopologyKernel.hh.

◆ halfface() [1/3]

HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface ( const std::vector< HalfEdgeHandle > &  _hes) const

Definition at line 2118 of file TopologyKernel.cc.

◆ halfface() [2/3]

HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface ( const std::vector< VertexHandle > &  _vs) const

Definition at line 1999 of file TopologyKernel.cc.

◆ halfface() [3/3]

OpenVolumeMeshFace OpenVolumeMesh::TopologyKernel::halfface ( HalfFaceHandle  _halfFaceHandle) const

Get face that corresponds to halfface with handle _halfFaceHandle.

Definition at line 1921 of file TopologyKernel.cc.

◆ halfface_edges()

std::pair< HalfFaceEdgeIter, HalfFaceEdgeIter > OpenVolumeMesh::TopologyKernel::halfface_edges ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 271 of file TopologyKernel.hh.

◆ halfface_extensive()

HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface_extensive ( const std::vector< VertexHandle > &  _vs) const

Definition at line 2063 of file TopologyKernel.cc.

◆ halfface_halfedges()

std::pair< HalfFaceHalfEdgeIter, HalfFaceHalfEdgeIter > OpenVolumeMesh::TopologyKernel::halfface_halfedges ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 262 of file TopologyKernel.hh.

◆ halfface_handle()

static HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface_handle ( FaceHandle  _h,
const unsigned char  _subIdx 
)
inlinestatic

Conversion function.

Definition at line 1144 of file TopologyKernel.hh.

◆ halfface_vertices()

std::pair< HalfFaceVertexIter, HalfFaceVertexIter > OpenVolumeMesh::TopologyKernel::halfface_vertices ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 361 of file TopologyKernel.hh.

◆ halffaces()

std::pair< HalfFaceIter, HalfFaceIter > OpenVolumeMesh::TopologyKernel::halffaces ( ) const
inline

Definition at line 479 of file TopologyKernel.hh.

◆ halffaces_begin()

HalfFaceIter OpenVolumeMesh::TopologyKernel::halffaces_begin ( ) const
inline

Definition at line 471 of file TopologyKernel.hh.

◆ halffaces_end()

HalfFaceIter OpenVolumeMesh::TopologyKernel::halffaces_end ( ) const
inline

Definition at line 475 of file TopologyKernel.hh.

◆ has_edge_bottom_up_incidences()

bool OpenVolumeMesh::TopologyKernel::has_edge_bottom_up_incidences ( ) const
inline

Definition at line 977 of file TopologyKernel.hh.

◆ has_face_bottom_up_incidences()

bool OpenVolumeMesh::TopologyKernel::has_face_bottom_up_incidences ( ) const
inline

Definition at line 979 of file TopologyKernel.hh.

◆ has_full_bottom_up_incidences()

bool OpenVolumeMesh::TopologyKernel::has_full_bottom_up_incidences ( ) const
inline

Definition at line 969 of file TopologyKernel.hh.

◆ has_vertex_bottom_up_incidences()

bool OpenVolumeMesh::TopologyKernel::has_vertex_bottom_up_incidences ( ) const
inline

Definition at line 975 of file TopologyKernel.hh.

◆ he_iter()

HalfEdgeIter OpenVolumeMesh::TopologyKernel::he_iter ( ) const
inline

Definition at line 435 of file TopologyKernel.hh.

◆ hec_iter()

HalfEdgeCellIter OpenVolumeMesh::TopologyKernel::hec_iter ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 222 of file TopologyKernel.hh.

◆ hef_iter()

HalfEdgeFaceIter OpenVolumeMesh::TopologyKernel::hef_iter ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 213 of file TopologyKernel.hh.

◆ hehf_iter()

HalfEdgeHalfFaceIter OpenVolumeMesh::TopologyKernel::hehf_iter ( HalfEdgeHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 204 of file TopologyKernel.hh.

◆ hf_iter()

HalfFaceIter OpenVolumeMesh::TopologyKernel::hf_iter ( ) const
inline

Definition at line 467 of file TopologyKernel.hh.

◆ hfe_iter()

HalfFaceEdgeIter OpenVolumeMesh::TopologyKernel::hfe_iter ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 267 of file TopologyKernel.hh.

◆ hfhe_iter()

HalfFaceHalfEdgeIter OpenVolumeMesh::TopologyKernel::hfhe_iter ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 258 of file TopologyKernel.hh.

◆ hfv_iter()

HalfFaceVertexIter OpenVolumeMesh::TopologyKernel::hfv_iter ( HalfFaceHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 357 of file TopologyKernel.hh.

◆ incident_cell()

CellHandle OpenVolumeMesh::TopologyKernel::incident_cell ( HalfFaceHandle  _halfFaceHandle) const

Get cell that is incident to the given halfface.

Definition at line 2320 of file TopologyKernel.cc.

◆ incoming_halfedges()

std::pair< VertexIHalfEdgeIter, VertexIHalfEdgeIter > OpenVolumeMesh::TopologyKernel::incoming_halfedges ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 163 of file TopologyKernel.hh.

◆ is_boundary() [1/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( CellHandle  _cellHandle) const
inline

Definition at line 1089 of file TopologyKernel.hh.

◆ is_boundary() [2/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( EdgeHandle  _edgeHandle) const
inline

Definition at line 1053 of file TopologyKernel.hh.

◆ is_boundary() [3/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( FaceHandle  _faceHandle) const
inline

Definition at line 1046 of file TopologyKernel.hh.

◆ is_boundary() [4/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( HalfEdgeHandle  _halfedgeHandle) const
inline

Definition at line 1066 of file TopologyKernel.hh.

◆ is_boundary() [5/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( HalfFaceHandle  _halfFaceHandle) const
inline

Definition at line 1039 of file TopologyKernel.hh.

◆ is_boundary() [6/6]

bool OpenVolumeMesh::TopologyKernel::is_boundary ( VertexHandle  _vertexHandle) const
inline

Definition at line 1079 of file TopologyKernel.hh.

◆ is_deleted() [1/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( CellHandle  _h) const
inlinevirtual

Definition at line 772 of file TopologyKernel.hh.

◆ is_deleted() [2/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( EdgeHandle  _h) const
inlinevirtual

Definition at line 768 of file TopologyKernel.hh.

◆ is_deleted() [3/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( FaceHandle  _h) const
inlinevirtual

Definition at line 770 of file TopologyKernel.hh.

◆ is_deleted() [4/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( HalfEdgeHandle  _h) const
inlinevirtual

Definition at line 769 of file TopologyKernel.hh.

◆ is_deleted() [5/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( HalfFaceHandle  _h) const
inlinevirtual

Definition at line 771 of file TopologyKernel.hh.

◆ is_deleted() [6/6]

virtual bool OpenVolumeMesh::TopologyKernel::is_deleted ( VertexHandle  _h) const
inlinevirtual

Definition at line 767 of file TopologyKernel.hh.

◆ is_incident()

bool OpenVolumeMesh::TopologyKernel::is_incident ( FaceHandle  _fh,
EdgeHandle  _eh 
) const

check whether face _fh and edge _eh are incident

Definition at line 2233 of file TopologyKernel.cc.

◆ is_valid()

template<typename Handle >
bool OpenVolumeMesh::TopologyKernel::is_valid ( Handle  _h) const
inline

test is_valid and perform index range check

Definition at line 1179 of file TopologyKernel.hh.

◆ make_end_circulator()

template<class Circulator >
static Circulator OpenVolumeMesh::TopologyKernel::make_end_circulator ( const Circulator &  _circ)
inlinestaticprotected

Definition at line 129 of file TopologyKernel.hh.

◆ n_cells()

size_t OpenVolumeMesh::TopologyKernel::n_cells ( ) const
inlineoverridevirtual

Get number of cells in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 544 of file TopologyKernel.hh.

◆ n_edges()

size_t OpenVolumeMesh::TopologyKernel::n_edges ( ) const
inlineoverridevirtual

Get number of edges in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 536 of file TopologyKernel.hh.

◆ n_faces()

size_t OpenVolumeMesh::TopologyKernel::n_faces ( ) const
inlineoverridevirtual

Get number of faces in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 540 of file TopologyKernel.hh.

◆ n_halfedges()

size_t OpenVolumeMesh::TopologyKernel::n_halfedges ( ) const
inlineoverridevirtual

Get number of halfedges in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 538 of file TopologyKernel.hh.

◆ n_halffaces()

size_t OpenVolumeMesh::TopologyKernel::n_halffaces ( ) const
inlineoverridevirtual

Get number of halffaces in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 542 of file TopologyKernel.hh.

◆ n_logical_cells()

size_t OpenVolumeMesh::TopologyKernel::n_logical_cells ( ) const
inline

Get number of undeleted cells in mesh.

Definition at line 557 of file TopologyKernel.hh.

◆ n_logical_edges()

size_t OpenVolumeMesh::TopologyKernel::n_logical_edges ( ) const
inline

Get number of undeleted edges in mesh.

Definition at line 549 of file TopologyKernel.hh.

◆ n_logical_faces()

size_t OpenVolumeMesh::TopologyKernel::n_logical_faces ( ) const
inline

Get number of undeleted faces in mesh.

Definition at line 553 of file TopologyKernel.hh.

◆ n_logical_halfedges()

size_t OpenVolumeMesh::TopologyKernel::n_logical_halfedges ( ) const
inline

Get number of undeleted halfedges in mesh.

Definition at line 551 of file TopologyKernel.hh.

◆ n_logical_halffaces()

size_t OpenVolumeMesh::TopologyKernel::n_logical_halffaces ( ) const
inline

Get number of undeleted halffaces in mesh.

Definition at line 555 of file TopologyKernel.hh.

◆ n_logical_vertices()

size_t OpenVolumeMesh::TopologyKernel::n_logical_vertices ( ) const
inline

Get number of undeleted vertices in mesh.

Definition at line 547 of file TopologyKernel.hh.

◆ n_vertices()

size_t OpenVolumeMesh::TopologyKernel::n_vertices ( ) const
inlineoverridevirtual

Get number of vertices in mesh.

Implements OpenVolumeMesh::ResourceManager.

Definition at line 534 of file TopologyKernel.hh.

◆ n_vertices_in_cell()

size_t OpenVolumeMesh::TopologyKernel::n_vertices_in_cell ( CellHandle  _ch) const
inline

Definition at line 1098 of file TopologyKernel.hh.

◆ needs_garbage_collection()

bool OpenVolumeMesh::TopologyKernel::needs_garbage_collection ( ) const
inline

Definition at line 1173 of file TopologyKernel.hh.

◆ next_halfedge_in_halfface()

HalfEdgeHandle OpenVolumeMesh::TopologyKernel::next_halfedge_in_halfface ( HalfEdgeHandle  _heh,
HalfFaceHandle  _hfh 
) const

Get next halfedge within a halfface.

Definition at line 2147 of file TopologyKernel.cc.

◆ opposite_halfedge() [1/2]

Edge OpenVolumeMesh::TopologyKernel::opposite_halfedge ( const Edge _edge) const
inline

Definition at line 1116 of file TopologyKernel.hh.

◆ opposite_halfedge() [2/2]

OpenVolumeMeshEdge OpenVolumeMesh::TopologyKernel::opposite_halfedge ( HalfEdgeHandle  _halfEdgeHandle) const

Get opposite halfedge that corresponds to halfedge with handle _halfEdgeHandle.

Definition at line 1936 of file TopologyKernel.cc.

◆ opposite_halfedge_handle()

static HalfEdgeHandle OpenVolumeMesh::TopologyKernel::opposite_halfedge_handle ( HalfEdgeHandle  _h)
inlinestatic

Definition at line 1163 of file TopologyKernel.hh.

◆ opposite_halfface() [1/2]

Face OpenVolumeMesh::TopologyKernel::opposite_halfface ( const Face _face) const
inline

Definition at line 1120 of file TopologyKernel.hh.

◆ opposite_halfface() [2/2]

OpenVolumeMeshFace OpenVolumeMesh::TopologyKernel::opposite_halfface ( HalfFaceHandle  _halfFaceHandle) const

Get opposite halfface that corresponds to halfface with handle _halfFaceHandle.

Definition at line 1944 of file TopologyKernel.cc.

◆ opposite_halfface_handle()

static HalfFaceHandle OpenVolumeMesh::TopologyKernel::opposite_halfface_handle ( HalfFaceHandle  _h)
inlinestatic

Definition at line 1168 of file TopologyKernel.hh.

◆ outgoing_halfedges()

std::pair< VertexOHalfEdgeIter, VertexOHalfEdgeIter > OpenVolumeMesh::TopologyKernel::outgoing_halfedges ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 154 of file TopologyKernel.hh.

◆ prev_halfedge_in_halfface()

HalfEdgeHandle OpenVolumeMesh::TopologyKernel::prev_halfedge_in_halfface ( HalfEdgeHandle  _heh,
HalfFaceHandle  _hfh 
) const

Get previous halfedge within a halfface.

Definition at line 2167 of file TopologyKernel.cc.

◆ reorder_incident_halffaces()

void OpenVolumeMesh::TopologyKernel::reorder_incident_halffaces ( EdgeHandle  _eh)

Recompute cyclic ordering of (half)faces incident to an edge (used by iterators)

Definition at line 273 of file TopologyKernel.cc.

◆ reserve_cells()

void OpenVolumeMesh::TopologyKernel::reserve_cells ( size_t  n)

Definition at line 78 of file TopologyKernel.cc.

◆ reserve_edges()

void OpenVolumeMesh::TopologyKernel::reserve_edges ( size_t  n)

Definition at line 64 of file TopologyKernel.cc.

◆ reserve_faces()

void OpenVolumeMesh::TopologyKernel::reserve_faces ( size_t  n)

Definition at line 71 of file TopologyKernel.cc.

◆ reserve_vertices()

void OpenVolumeMesh::TopologyKernel::reserve_vertices ( size_t  n)

Definition at line 58 of file TopologyKernel.cc.

◆ set_cell()

void OpenVolumeMesh::TopologyKernel::set_cell ( CellHandle  _ch,
const std::vector< HalfFaceHandle > &  _hfs 
)

Set the half-faces of a cell.

Definition at line 573 of file TopologyKernel.cc.

◆ set_edge()

void OpenVolumeMesh::TopologyKernel::set_edge ( EdgeHandle  _eh,
VertexHandle  _fromVertex,
VertexHandle  _toVertex 
)

Set the vertices of an edge.

Definition at line 497 of file TopologyKernel.cc.

◆ set_face()

void OpenVolumeMesh::TopologyKernel::set_face ( FaceHandle  _fh,
const std::vector< HalfEdgeHandle > &  _hes 
)

Set the half-edges of a face.

Definition at line 532 of file TopologyKernel.cc.

◆ swap_cell_indices()

void OpenVolumeMesh::TopologyKernel::swap_cell_indices ( CellHandle  _h1,
CellHandle  _h2 
)
virtual

Exchanges the indices of two cells while keeping the mesh otherwise unaffected.

Definition at line 1477 of file TopologyKernel.cc.

◆ swap_edge_indices()

void OpenVolumeMesh::TopologyKernel::swap_edge_indices ( EdgeHandle  _h1,
EdgeHandle  _h2 
)
virtual

Exchanges the indices of two edges while keeping the mesh otherwise unaffected.

Definition at line 1640 of file TopologyKernel.cc.

◆ swap_face_indices()

void OpenVolumeMesh::TopologyKernel::swap_face_indices ( FaceHandle  _h1,
FaceHandle  _h2 
)
virtual

Exchanges the indices of two faces while keeping the mesh otherwise unaffected.

Definition at line 1501 of file TopologyKernel.cc.

◆ swap_vertex_indices()

void OpenVolumeMesh::TopologyKernel::swap_vertex_indices ( VertexHandle  _h1,
VertexHandle  _h2 
)
virtual

Exchanges the indices of two vertices while keeping the mesh otherwise unaffected.

Definition at line 1776 of file TopologyKernel.cc.

◆ to_vertex_handle()

VertexHandle OpenVolumeMesh::TopologyKernel::to_vertex_handle ( HalfEdgeHandle  _h) const
inline

Get the vertex the halfedge points to.

Definition at line 706 of file TopologyKernel.hh.

◆ v_iter()

VertexIter OpenVolumeMesh::TopologyKernel::v_iter ( ) const
inline

Definition at line 403 of file TopologyKernel.hh.

◆ valence() [1/4]

size_t OpenVolumeMesh::TopologyKernel::valence ( CellHandle  _ch) const
inline

Get valence of cell (number of incident faces)

Definition at line 734 of file TopologyKernel.hh.

◆ valence() [2/4]

size_t OpenVolumeMesh::TopologyKernel::valence ( EdgeHandle  _eh) const
inline

Get valence of edge (number of incident faces)

Definition at line 719 of file TopologyKernel.hh.

◆ valence() [3/4]

size_t OpenVolumeMesh::TopologyKernel::valence ( FaceHandle  _fh) const
inline

Get valence of face (number of incident edges)

Definition at line 727 of file TopologyKernel.hh.

◆ valence() [4/4]

size_t OpenVolumeMesh::TopologyKernel::valence ( VertexHandle  _vh) const
inline

Get valence of vertex (number of incident edges)

Definition at line 711 of file TopologyKernel.hh.

◆ vc_iter()

VertexCellIter OpenVolumeMesh::TopologyKernel::vc_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 195 of file TopologyKernel.hh.

◆ ve_iter()

VertexEdgeIter OpenVolumeMesh::TopologyKernel::ve_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 168 of file TopologyKernel.hh.

◆ vertex_cells()

std::pair< VertexCellIter, VertexCellIter > OpenVolumeMesh::TopologyKernel::vertex_cells ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 199 of file TopologyKernel.hh.

◆ vertex_edges()

std::pair< VertexEdgeIter, VertexEdgeIter > OpenVolumeMesh::TopologyKernel::vertex_edges ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 172 of file TopologyKernel.hh.

◆ vertex_faces()

std::pair< VertexFaceIter, VertexFaceIter > OpenVolumeMesh::TopologyKernel::vertex_faces ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 190 of file TopologyKernel.hh.

◆ vertex_halffaces()

std::pair< VertexHalfFaceIter, VertexHalfFaceIter > OpenVolumeMesh::TopologyKernel::vertex_halffaces ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 181 of file TopologyKernel.hh.

◆ vertex_vertices()

std::pair< VertexVertexIter, VertexVertexIter > OpenVolumeMesh::TopologyKernel::vertex_vertices ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 145 of file TopologyKernel.hh.

◆ vertices()

std::pair< VertexIter, VertexIter > OpenVolumeMesh::TopologyKernel::vertices ( ) const
inline

Definition at line 415 of file TopologyKernel.hh.

◆ vertices_begin()

VertexIter OpenVolumeMesh::TopologyKernel::vertices_begin ( ) const
inline

Definition at line 407 of file TopologyKernel.hh.

◆ vertices_end()

VertexIter OpenVolumeMesh::TopologyKernel::vertices_end ( ) const
inline

Definition at line 411 of file TopologyKernel.hh.

◆ vf_iter()

VertexFaceIter OpenVolumeMesh::TopologyKernel::vf_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 186 of file TopologyKernel.hh.

◆ vhf_iter()

VertexHalfFaceIter OpenVolumeMesh::TopologyKernel::vhf_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 177 of file TopologyKernel.hh.

◆ vih_iter()

VertexIHalfEdgeIter OpenVolumeMesh::TopologyKernel::vih_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 159 of file TopologyKernel.hh.

◆ voh_iter()

VertexOHalfEdgeIter OpenVolumeMesh::TopologyKernel::voh_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 150 of file TopologyKernel.hh.

◆ vv_iter()

VertexVertexIter OpenVolumeMesh::TopologyKernel::vv_iter ( VertexHandle  _h,
int  _max_laps = 1 
) const
inline

Definition at line 141 of file TopologyKernel.hh.

Friends And Related Function Documentation

◆ BoundaryHalfFaceHalfFaceIter

friend class BoundaryHalfFaceHalfFaceIter
friend

Definition at line 114 of file TopologyKernel.hh.

◆ CellCellIter

friend class CellCellIter
friend

Definition at line 112 of file TopologyKernel.hh.

◆ CellIter

friend class CellIter
friend

Definition at line 120 of file TopologyKernel.hh.

◆ CellVertexIter

friend class CellVertexIter
friend

Definition at line 111 of file TopologyKernel.hh.

◆ EdgeIter

friend class EdgeIter
friend

Definition at line 116 of file TopologyKernel.hh.

◆ FaceIter

friend class FaceIter
friend

Definition at line 118 of file TopologyKernel.hh.

◆ HalfEdgeCellIter

friend class HalfEdgeCellIter
friend

Definition at line 110 of file TopologyKernel.hh.

◆ HalfEdgeHalfFaceIter

friend class HalfEdgeHalfFaceIter
friend

Definition at line 107 of file TopologyKernel.hh.

◆ HalfEdgeIter

friend class HalfEdgeIter
friend

Definition at line 117 of file TopologyKernel.hh.

◆ HalfFaceIter

friend class HalfFaceIter
friend

Definition at line 119 of file TopologyKernel.hh.

◆ HalfFaceVertexIter

friend class HalfFaceVertexIter
friend

Definition at line 113 of file TopologyKernel.hh.

◆ StatusAttrib

friend class StatusAttrib
friend

Definition at line 99 of file TopologyKernel.hh.

◆ VertexCellIter

friend class VertexCellIter
friend

Definition at line 109 of file TopologyKernel.hh.

◆ VertexFaceIter

friend class VertexFaceIter
friend

Definition at line 108 of file TopologyKernel.hh.

◆ VertexIter

friend class VertexIter
friend

Definition at line 115 of file TopologyKernel.hh.

◆ VertexOHalfEdgeIter

friend class VertexOHalfEdgeIter
friend

Definition at line 105 of file TopologyKernel.hh.

◆ VertexVertexIter

friend class VertexVertexIter
friend

Definition at line 106 of file TopologyKernel.hh.

Member Data Documentation

◆ cell_deleted_

CellVector<bool> OpenVolumeMesh::TopologyKernel::cell_deleted_
private

Definition at line 1195 of file TopologyKernel.hh.

◆ cells_

CellVector<Cell> OpenVolumeMesh::TopologyKernel::cells_
private

Definition at line 1189 of file TopologyKernel.hh.

◆ deferred_deletion_

bool OpenVolumeMesh::TopologyKernel::deferred_deletion_ = true
private

Definition at line 1014 of file TopologyKernel.hh.

◆ e_bottom_up_

bool OpenVolumeMesh::TopologyKernel::e_bottom_up_ = true
private

Definition at line 1010 of file TopologyKernel.hh.

◆ edge_deleted_

EdgeVector<bool> OpenVolumeMesh::TopologyKernel::edge_deleted_
private

Definition at line 1193 of file TopologyKernel.hh.

◆ edges_

EdgeVector<Edge> OpenVolumeMesh::TopologyKernel::edges_
private

Definition at line 1187 of file TopologyKernel.hh.

◆ f_bottom_up_

bool OpenVolumeMesh::TopologyKernel::f_bottom_up_ = true
private

Definition at line 1012 of file TopologyKernel.hh.

◆ face_deleted_

FaceVector<bool> OpenVolumeMesh::TopologyKernel::face_deleted_
private

Definition at line 1194 of file TopologyKernel.hh.

◆ faces_

FaceVector<Face> OpenVolumeMesh::TopologyKernel::faces_
private

Definition at line 1188 of file TopologyKernel.hh.

◆ fast_deletion_

bool OpenVolumeMesh::TopologyKernel::fast_deletion_ = true
private

Definition at line 1016 of file TopologyKernel.hh.

◆ incident_cell_per_hf_

HalfFaceVector<CellHandle> OpenVolumeMesh::TopologyKernel::incident_cell_per_hf_
protected

Definition at line 1005 of file TopologyKernel.hh.

◆ incident_hfs_per_he_

HalfEdgeVector<std::vector<HalfFaceHandle> > OpenVolumeMesh::TopologyKernel::incident_hfs_per_he_
protected

Definition at line 1002 of file TopologyKernel.hh.

◆ InvalidCellHandle

const CellHandle OpenVolumeMesh::TopologyKernel::InvalidCellHandle = CellHandle(-1)
static

Definition at line 88 of file TopologyKernel.hh.

◆ InvalidEdgeHandle

const EdgeHandle OpenVolumeMesh::TopologyKernel::InvalidEdgeHandle = EdgeHandle(-1)
static

Definition at line 86 of file TopologyKernel.hh.

◆ InvalidFaceHandle

const FaceHandle OpenVolumeMesh::TopologyKernel::InvalidFaceHandle = FaceHandle(-1)
static

Definition at line 87 of file TopologyKernel.hh.

◆ InvalidHalfEdgeHandle

const HalfEdgeHandle OpenVolumeMesh::TopologyKernel::InvalidHalfEdgeHandle = HalfEdgeHandle(-1)
static

Definition at line 89 of file TopologyKernel.hh.

◆ InvalidHalfFaceHandle

const HalfFaceHandle OpenVolumeMesh::TopologyKernel::InvalidHalfFaceHandle = HalfFaceHandle(-1)
static

Definition at line 90 of file TopologyKernel.hh.

◆ InvalidVertexHandle

const VertexHandle OpenVolumeMesh::TopologyKernel::InvalidVertexHandle = VertexHandle(-1)
static

Definition at line 85 of file TopologyKernel.hh.

◆ n_deleted_cells_

size_t OpenVolumeMesh::TopologyKernel::n_deleted_cells_ = 0
private

Definition at line 1201 of file TopologyKernel.hh.

◆ n_deleted_edges_

size_t OpenVolumeMesh::TopologyKernel::n_deleted_edges_ = 0
private

Definition at line 1199 of file TopologyKernel.hh.

◆ n_deleted_faces_

size_t OpenVolumeMesh::TopologyKernel::n_deleted_faces_ = 0
private

Definition at line 1200 of file TopologyKernel.hh.

◆ n_deleted_vertices_

size_t OpenVolumeMesh::TopologyKernel::n_deleted_vertices_ = 0
private

Definition at line 1198 of file TopologyKernel.hh.

◆ n_vertices_

size_t OpenVolumeMesh::TopologyKernel::n_vertices_ = 0u
private

Definition at line 576 of file TopologyKernel.hh.

◆ outgoing_hes_per_vertex_

VertexVector<std::vector<HalfEdgeHandle> > OpenVolumeMesh::TopologyKernel::outgoing_hes_per_vertex_
protected

Definition at line 999 of file TopologyKernel.hh.

◆ v_bottom_up_

bool OpenVolumeMesh::TopologyKernel::v_bottom_up_ = true
private

Definition at line 1008 of file TopologyKernel.hh.

◆ vertex_deleted_

VertexVector<bool> OpenVolumeMesh::TopologyKernel::vertex_deleted_
private

Definition at line 1192 of file TopologyKernel.hh.


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