|
Developer Documentation
|
A data structure based on PolyhedralMesh with specializations for tetrahedra. More...
#include <Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Mesh/TetrahedralMeshTopologyKernel.hh>
Public Types | |
| typedef class TetVertexIter | TetVertexIter |
Public Types inherited from OpenVolumeMesh::TopologyKernel | |
| typedef OpenVolumeMeshEdge | Edge |
| typedef OpenVolumeMeshFace | Face |
| typedef OpenVolumeMeshCell | Cell |
Public Types inherited from OpenVolumeMesh::ResourceManager | |
| using | Properties = std::set< PropertyStorageBase * > |
Public Member Functions | |
| FaceHandle | add_face (std::vector< HalfEdgeHandle > _halfedges, bool _topologyCheck=false) override |
| Add face via incident edges. | |
| FaceHandle | add_face (const std::vector< VertexHandle > &_vertices) override |
| Add face via incident vertices. | |
| CellHandle | add_cell (std::vector< HalfFaceHandle > _halffaces, bool _topologyCheck=false) override |
| Add cell via incident halffaces. | |
| CellHandle | add_cell (const std::vector< VertexHandle > &_vertices, bool _topologyCheck=false) |
| CellHandle | add_cell (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2, VertexHandle _vh3, bool _topologyCheck=false) |
| HalfFaceHandle | add_halfface (const std::vector< HalfEdgeHandle > &_halfedges, bool _topologyCheck=false) |
| HalfFaceHandle | add_halfface (VertexHandle _vh0, VertexHandle _vh1, VertexHandle _vh2, bool _topologyCheck=false) |
| HalfEdgeHandle | add_halfedge (VertexHandle _fromVertex, VertexHandle _toVertex) |
| std::vector< VertexHandle > | get_cell_vertices (CellHandle ch) const |
| std::vector< VertexHandle > | get_cell_vertices (CellHandle ch, VertexHandle vh) const |
| Get the 4 vertices of the tet ch in a specific order, starting with vh. | |
| std::vector< VertexHandle > | get_cell_vertices (HalfFaceHandle hfh) const |
| std::vector< VertexHandle > | get_cell_vertices (HalfFaceHandle hfh, HalfEdgeHandle heh) const |
| VertexHandle | halfface_opposite_vertex (HalfFaceHandle hfh) const |
| HalfFaceHandle | vertex_opposite_halfface (CellHandle ch, VertexHandle vh) const |
| Get the first halfface of the tet ch that does not contain the vertex vh. | |
| VertexHandle | collapse_edge (HalfEdgeHandle _heh) |
| TetVertexIter | tv_iter (CellHandle _ref_h, int _max_laps=1) const |
| std::pair< TetVertexIter, TetVertexIter > | tet_vertices (CellHandle _ref_h, int _max_laps=1) const |
Public Member Functions inherited from OpenVolumeMesh::TopologyKernel | |
| TopologyKernel (TopologyKernel const &other)=default | |
| TopologyKernel (TopologyKernel &&other)=delete | |
| TopologyKernel & | operator= (TopologyKernel const &other)=default |
| TopologyKernel & | operator= (TopologyKernel &&other)=delete |
| VertexVertexIter | vv_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexVertexIter, VertexVertexIter > | vertex_vertices (VertexHandle _h, int _max_laps=1) const |
| VertexOHalfEdgeIter | voh_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexOHalfEdgeIter, VertexOHalfEdgeIter > | outgoing_halfedges (VertexHandle _h, int _max_laps=1) const |
| VertexIHalfEdgeIter | vih_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexIHalfEdgeIter, VertexIHalfEdgeIter > | incoming_halfedges (VertexHandle _h, int _max_laps=1) const |
| VertexEdgeIter | ve_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexEdgeIter, VertexEdgeIter > | vertex_edges (VertexHandle _h, int _max_laps=1) const |
| VertexHalfFaceIter | vhf_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexHalfFaceIter, VertexHalfFaceIter > | vertex_halffaces (VertexHandle _h, int _max_laps=1) const |
| VertexFaceIter | vf_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexFaceIter, VertexFaceIter > | vertex_faces (VertexHandle _h, int _max_laps=1) const |
| VertexCellIter | vc_iter (VertexHandle _h, int _max_laps=1) const |
| std::pair< VertexCellIter, VertexCellIter > | vertex_cells (VertexHandle _h, int _max_laps=1) const |
| HalfEdgeHalfFaceIter | hehf_iter (HalfEdgeHandle _h, int _max_laps=1) const |
| std::pair< HalfEdgeHalfFaceIter, HalfEdgeHalfFaceIter > | halfedge_halffaces (HalfEdgeHandle _h, int _max_laps=1) const |
| HalfEdgeFaceIter | hef_iter (HalfEdgeHandle _h, int _max_laps=1) const |
| std::pair< HalfEdgeFaceIter, HalfEdgeFaceIter > | halfedge_faces (HalfEdgeHandle _h, int _max_laps=1) const |
| HalfEdgeCellIter | hec_iter (HalfEdgeHandle _h, int _max_laps=1) const |
| std::pair< HalfEdgeCellIter, HalfEdgeCellIter > | halfedge_cells (HalfEdgeHandle _h, int _max_laps=1) const |
| EdgeHalfFaceIter | ehf_iter (EdgeHandle _h, int _max_laps=1) const |
| std::pair< EdgeHalfFaceIter, EdgeHalfFaceIter > | edge_halffaces (EdgeHandle _h, int _max_laps=1) const |
| EdgeFaceIter | ef_iter (EdgeHandle _h, int _max_laps=1) const |
| std::pair< EdgeFaceIter, EdgeFaceIter > | edge_faces (EdgeHandle _h, int _max_laps=1) const |
| EdgeCellIter | ec_iter (EdgeHandle _h, int _max_laps=1) const |
| std::pair< EdgeCellIter, EdgeCellIter > | edge_cells (EdgeHandle _h, int _max_laps=1) const |
| HalfFaceHalfEdgeIter | hfhe_iter (HalfFaceHandle _h, int _max_laps=1) const |
| std::pair< HalfFaceHalfEdgeIter, HalfFaceHalfEdgeIter > | halfface_halfedges (HalfFaceHandle _h, int _max_laps=1) const |
| HalfFaceEdgeIter | hfe_iter (HalfFaceHandle _h, int _max_laps=1) const |
| std::pair< HalfFaceEdgeIter, HalfFaceEdgeIter > | halfface_edges (HalfFaceHandle _h, int _max_laps=1) const |
| FaceVertexIter | fv_iter (FaceHandle _h, int _max_laps=1) const |
| std::pair< FaceVertexIter, FaceVertexIter > | face_vertices (FaceHandle _h, int _max_laps=1) const |
| FaceHalfEdgeIter | fhe_iter (FaceHandle _h, int _max_laps=1) const |
| std::pair< FaceHalfEdgeIter, FaceHalfEdgeIter > | face_halfedges (FaceHandle _h, int _max_laps=1) const |
| FaceEdgeIter | fe_iter (FaceHandle _h, int _max_laps=1) const |
| std::pair< FaceEdgeIter, FaceEdgeIter > | face_edges (FaceHandle _h, int _max_laps=1) const |
| CellVertexIter | cv_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellVertexIter, CellVertexIter > | cell_vertices (CellHandle _h, int _max_laps=1) const |
| CellHalfEdgeIter | che_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellHalfEdgeIter, CellHalfEdgeIter > | cell_halfedges (CellHandle _h, int _max_laps=1) const |
| CellEdgeIter | ce_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellEdgeIter, CellEdgeIter > | cell_edges (CellHandle _h, int _max_laps=1) const |
| CellHalfFaceIter | chf_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellHalfFaceIter, CellHalfFaceIter > | cell_halffaces (CellHandle _h, int _max_laps=1) const |
| CellFaceIter | cf_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellFaceIter, CellFaceIter > | cell_faces (CellHandle _h, int _max_laps=1) const |
| CellCellIter | cc_iter (CellHandle _h, int _max_laps=1) const |
| std::pair< CellCellIter, CellCellIter > | cell_cells (CellHandle _h, int _max_laps=1) const |
| HalfFaceVertexIter | hfv_iter (HalfFaceHandle _h, int _max_laps=1) const |
| std::pair< HalfFaceVertexIter, HalfFaceVertexIter > | halfface_vertices (HalfFaceHandle _h, int _max_laps=1) const |
| BoundaryHalfFaceHalfFaceIter | bhfhf_iter (HalfFaceHandle _ref_h, int _max_laps=1) const |
| std::pair< BoundaryHalfFaceHalfFaceIter, BoundaryHalfFaceHalfFaceIter > | boundary_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, VertexIter > | vertices () const |
| EdgeIter | e_iter () const |
| EdgeIter | edges_begin () const |
| EdgeIter | edges_end () const |
| std::pair< EdgeIter, EdgeIter > | edges () const |
| HalfEdgeIter | he_iter () const |
| HalfEdgeIter | halfedges_begin () const |
| HalfEdgeIter | halfedges_end () const |
| std::pair< HalfEdgeIter, HalfEdgeIter > | halfedges () const |
| FaceIter | f_iter () const |
| FaceIter | faces_begin () const |
| FaceIter | faces_end () const |
| std::pair< FaceIter, FaceIter > | faces () const |
| HalfFaceIter | hf_iter () const |
| HalfFaceIter | halffaces_begin () const |
| HalfFaceIter | halffaces_end () const |
| std::pair< HalfFaceIter, HalfFaceIter > | halffaces () const |
| CellIter | c_iter () const |
| CellIter | cells_begin () const |
| CellIter | cells_end () const |
| std::pair< CellIter, CellIter > | cells () 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. | |
| size_t | n_edges () const override |
| Get number of edges in mesh. | |
| size_t | n_halfedges () const override |
| Get number of halfedges in mesh. | |
| size_t | n_faces () const override |
| Get number of faces in mesh. | |
| size_t | n_halffaces () const override |
| Get number of halffaces in mesh. | |
| size_t | n_cells () const override |
| Get number of cells in mesh. | |
| size_t | n_logical_vertices () const |
| Get number of undeleted vertices in mesh. | |
| size_t | n_logical_edges () const |
| Get number of undeleted edges in mesh. | |
| size_t | n_logical_halfedges () const |
| Get number of undeleted halfedges in mesh. | |
| size_t | n_logical_faces () const |
| Get number of undeleted faces in mesh. | |
| size_t | n_logical_halffaces () const |
| Get number of undeleted halffaces in mesh. | |
| size_t | n_logical_cells () const |
| Get number of undeleted cells in mesh. | |
| 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. | |
| virtual EdgeHandle | add_edge (VertexHandle _fromVertex, VertexHandle _toHandle, bool _allowDuplicates=false) |
| Add edge. | |
| void | set_edge (EdgeHandle _eh, VertexHandle _fromVertex, VertexHandle _toVertex) |
| Set the vertices of an edge. | |
| void | set_face (FaceHandle _fh, const std::vector< HalfEdgeHandle > &_hes) |
| Set the half-edges of a face. | |
| void | set_cell (CellHandle _ch, const std::vector< HalfFaceHandle > &_hfs) |
| Set the half-faces of a cell. | |
| void | reorder_incident_halffaces (EdgeHandle _eh) |
| Recompute cyclic ordering of (half)faces incident to an edge (used by iterators) | |
| const Edge & | edge (EdgeHandle _edgeHandle) const |
| Get edge with handle _edgeHandle. | |
| const Face & | face (FaceHandle _faceHandle) const |
| Get face with handle _faceHandle. | |
| const Cell & | cell (CellHandle _cellHandle) const |
| Get cell with handle _cellHandle. | |
| Edge & | edge (EdgeHandle _edgeHandle) |
| Get edge with handle _edgeHandle. | |
| Face & | face (FaceHandle _faceHandle) |
| Get face with handle _faceHandle. | |
| Cell & | cell (CellHandle _cellHandle) |
| Get cell with handle _cellHandle. | |
| Edge | halfedge (HalfEdgeHandle _halfEdgeHandle) const |
| Get edge that corresponds to halfedge with handle _halfEdgeHandle. | |
| Face | halfface (HalfFaceHandle _halfFaceHandle) const |
| Get face that corresponds to halfface with handle _halfFaceHandle. | |
| Edge | opposite_halfedge (HalfEdgeHandle _halfEdgeHandle) const |
| Get opposite halfedge that corresponds to halfedge with handle _halfEdgeHandle. | |
| Face | opposite_halfface (HalfFaceHandle _halfFaceHandle) const |
| Get opposite halfface that corresponds to halfface with handle _halfFaceHandle. | |
| HalfEdgeHandle | find_halfedge (VertexHandle _vh1, VertexHandle _vh2) const |
| Get halfedge from vertex _vh1 to _vh2. | |
| 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. | |
| 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. | |
| HalfEdgeHandle | prev_halfedge_in_halfface (HalfEdgeHandle _heh, HalfFaceHandle _hfh) const |
| Get previous halfedge within a halfface. | |
| VertexHandle | from_vertex_handle (HalfEdgeHandle _h) const |
| Get the vertex the halfedge starts from. | |
| VertexHandle | to_vertex_handle (HalfEdgeHandle _h) const |
| Get the vertex the halfedge points to. | |
| size_t | valence (VertexHandle _vh) const |
| Get valence of vertex (number of incident edges) | |
| size_t | valence (EdgeHandle _eh) const |
| Get valence of edge (number of incident faces) | |
| size_t | valence (FaceHandle _fh) const |
| Get valence of face (number of incident edges) | |
| size_t | valence (CellHandle _ch) const |
| Get valence of cell (number of incident faces) | |
| std::vector< VertexHandle > | get_halfface_vertices (HalfFaceHandle hfh) const |
| Get vertices of a halfface. | |
| std::vector< VertexHandle > | get_halfface_vertices (HalfFaceHandle hfh, VertexHandle vh) const |
| Get vertices of a halfface orderd to start from vh. | |
| std::vector< VertexHandle > | get_halfface_vertices (HalfFaceHandle hfh, HalfEdgeHandle heh) const |
| Get vertices of a halfface orderd to start from from_vertex_handle(heh) | |
| bool | is_incident (FaceHandle _fh, EdgeHandle _eh) const |
| check whether face _fh and edge _eh are incident | |
| virtual VertexIter | delete_vertex (VertexHandle _h) |
| Delete vertex from mesh. | |
| virtual EdgeIter | delete_edge (EdgeHandle _h) |
| Delete edge from mesh. | |
| virtual FaceIter | delete_face (FaceHandle _h) |
| Delete face from mesh. | |
| virtual CellIter | delete_cell (CellHandle _h) |
| Delete cell from mesh. | |
| virtual void | collect_garbage () |
| Delete all entities that are marked as deleted. | |
| 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. | |
| virtual void | swap_face_indices (FaceHandle _h1, FaceHandle _h2) |
| Exchanges the indices of two faces while keeping the mesh otherwise unaffected. | |
| virtual void | swap_edge_indices (EdgeHandle _h1, EdgeHandle _h2) |
| Exchanges the indices of two edges while keeping the mesh otherwise unaffected. | |
| virtual void | swap_vertex_indices (VertexHandle _h1, VertexHandle _h2) |
| Exchanges the indices of two vertices while keeping the mesh otherwise unaffected. | |
| virtual void | clear (bool _clearProps=true) |
| Clear whole mesh. | |
| 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. | |
| CellHandle | incident_cell (HalfFaceHandle _halfFaceHandle) const |
| Get cell that is incident to the given halfface. | |
| 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 | |
Public Member Functions inherited from OpenVolumeMesh::ResourceManager | |
| ResourceManager (const ResourceManager &other) | |
| ResourceManager & | operator= (const ResourceManager &other) |
| ResourceManager (ResourceManager &&other)=delete | |
| ResourceManager & | operator= (ResourceManager &&other)=delete |
| void | clear_all_props () |
| drop all persistent properties. | |
| template<typename EntityTag > | |
| void | clear_props () |
| drop persistent properties. | |
| template<typename EntityTag > | |
| size_t | n () const |
| Get number of entities of given kind in mesh. | |
| template<typename EntityTag > | |
| size_t | n_props () const |
| number of tracked properties | |
| template<typename EntityTag > | |
| size_t | n_persistent_props () const |
| number of persistent properties | |
| 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: | |
| 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 |
Protected Member Functions | |
| void | split_edge (HalfEdgeHandle _heh, VertexHandle _vh) |
| void | split_face (FaceHandle _fh, VertexHandle _vh) |
Protected Member Functions inherited from OpenVolumeMesh::TopologyKernel | |
| 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. | |
| void | resize_eprops (size_t _ne) |
| Change size of stored edge properties. | |
| void | resize_fprops (size_t _nf) |
| Change size of stored face properties. | |
| void | resize_cprops (size_t _nc) |
| Change size of stored cell properties. | |
| 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) |
Private Member Functions | |
| template<typename PropIterator , typename Handle > | |
| void | swapPropertyElements (PropIterator begin, PropIterator end, Handle source, Handle destination) |
Friends | |
| class | TetVertexIter |
A data structure based on PolyhedralMesh with specializations for tetrahedra.
Definition at line 55 of file TetrahedralMeshTopologyKernel.hh.
| typedef class TetVertexIter OpenVolumeMesh::TetrahedralMeshTopologyKernel::TetVertexIter |
Definition at line 115 of file TetrahedralMeshTopologyKernel.hh.
| CellHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::add_cell | ( | const std::vector< VertexHandle > & | _vertices, |
| bool | _topologyCheck = false |
||
| ) |
Definition at line 573 of file TetrahedralMeshTopologyKernel.cc.
|
overridevirtual |
Add cell via incident halffaces.
Add cell via incident halffaces
Reimplemented from OpenVolumeMesh::TopologyKernel.
Definition at line 75 of file TetrahedralMeshTopologyKernel.cc.
| CellHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::add_cell | ( | VertexHandle | _vh0, |
| VertexHandle | _vh1, | ||
| VertexHandle | _vh2, | ||
| VertexHandle | _vh3, | ||
| bool | _topologyCheck = false |
||
| ) |
Definition at line 694 of file TetrahedralMeshTopologyKernel.cc.
|
overridevirtual |
Add face via incident vertices.
Add face via incident vertices Define the _vertices in counter-clockwise order (from the "outside")
Reimplemented from OpenVolumeMesh::TopologyKernel.
Definition at line 58 of file TetrahedralMeshTopologyKernel.cc.
|
overridevirtual |
Add face via incident edges.
Add face via incident edges
Reimplemented from OpenVolumeMesh::TopologyKernel.
Definition at line 41 of file TetrahedralMeshTopologyKernel.cc.
| HalfEdgeHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::add_halfedge | ( | VertexHandle | _fromVertex, |
| VertexHandle | _toVertex | ||
| ) |
Definition at line 98 of file TetrahedralMeshTopologyKernel.cc.
| HalfFaceHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::add_halfface | ( | const std::vector< HalfEdgeHandle > & | _halfedges, |
| bool | _topologyCheck = false |
||
| ) |
Definition at line 107 of file TetrahedralMeshTopologyKernel.cc.
| HalfFaceHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::add_halfface | ( | VertexHandle | _vh0, |
| VertexHandle | _vh1, | ||
| VertexHandle | _vh2, | ||
| bool | _topologyCheck = false |
||
| ) |
Definition at line 116 of file TetrahedralMeshTopologyKernel.cc.
| VertexHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::collapse_edge | ( | HalfEdgeHandle | _heh | ) |
Definition at line 311 of file TetrahedralMeshTopologyKernel.cc.
| std::vector< VertexHandle > OpenVolumeMesh::TetrahedralMeshTopologyKernel::get_cell_vertices | ( | CellHandle | ch | ) | const |
Get the 4 vertices of the tet ch in a specific order: 1.-3. vertices of ch's first halfface, ccw, starting with the first from_vertex of the halfface's first halfedge. 4. Then comes the 4th vertex of the tet.
Definition at line 486 of file TetrahedralMeshTopologyKernel.cc.
| std::vector< VertexHandle > OpenVolumeMesh::TetrahedralMeshTopologyKernel::get_cell_vertices | ( | CellHandle | ch, |
| VertexHandle | vh | ||
| ) | const |
Get the 4 vertices of the tet ch in a specific order, starting with vh.
Definition at line 491 of file TetrahedralMeshTopologyKernel.cc.
| std::vector< VertexHandle > OpenVolumeMesh::TetrahedralMeshTopologyKernel::get_cell_vertices | ( | HalfFaceHandle | hfh | ) | const |
Get the 4 vertices of hfh's incident cell in a specific order: 1.-3. vertices of hfh, ccw, starting with the first from_vertex of the halfface's first halfedge. 4. Then comes the 4th vertex of the tet. Returns an empty vector, if the incident cell is invalid (hfh is boundary).
Definition at line 501 of file TetrahedralMeshTopologyKernel.cc.
| std::vector< VertexHandle > OpenVolumeMesh::TetrahedralMeshTopologyKernel::get_cell_vertices | ( | HalfFaceHandle | hfh, |
| HalfEdgeHandle | heh | ||
| ) | const |
Get the 4 vertices of hfh's incident cell in a specific order:
Definition at line 532 of file TetrahedralMeshTopologyKernel.cc.
| VertexHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::halfface_opposite_vertex | ( | HalfFaceHandle | hfh | ) | const |
Get the vertex of the halfface's incident cell that is not contained in the halfface hfh. If the incident cell is invalid (hfh is boundary), returns the invalid vertex handle
Definition at line 551 of file TetrahedralMeshTopologyKernel.cc.
|
protected |
Definition at line 406 of file TetrahedralMeshTopologyKernel.cc.
|
protected |
Definition at line 449 of file TetrahedralMeshTopologyKernel.cc.
|
inlineprivate |
Definition at line 136 of file TetrahedralMeshTopologyKernel.hh.
|
inline |
Definition at line 125 of file TetrahedralMeshTopologyKernel.hh.
|
inline |
Returns an iterator to iterate over the four vertices of a tetrahedron in a specific order: 1.-3. vertices of the tet's first halfface, starting with the halfface's first halfedge's from_vertex, then 4. the remaining fourth vertex of the tet. Uses get_cell_vertices(ch).
Definition at line 121 of file TetrahedralMeshTopologyKernel.hh.
| HalfFaceHandle OpenVolumeMesh::TetrahedralMeshTopologyKernel::vertex_opposite_halfface | ( | CellHandle | ch, |
| VertexHandle | vh | ||
| ) | const |
Get the first halfface of the tet ch that does not contain the vertex vh.
Definition at line 556 of file TetrahedralMeshTopologyKernel.cc.
|
friend |
Definition at line 113 of file TetrahedralMeshTopologyKernel.hh.