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

Public Types

typedef VecT PointT
 
typedef TopologyKernelT KernelT
 
typedef GeometryKernel< VecT, TopologyKernelT > ParentT
 
- Public Types inherited from OpenVolumeMesh::GeometryKernel< VecT, TetrahedralMeshTopologyKernel >
using PointT = VecT
 
using Point = VecT
 
using KernelT = TetrahedralMeshTopologyKernel
 
- Public Types inherited from OpenVolumeMesh::TetrahedralMeshTopologyKernel
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

 TetrahedralGeometryKernel ()
 Constructor. More...
 
 ~TetrahedralGeometryKernel ()
 Destructor. More...
 
VertexHandle split_edge (HalfEdgeHandle heh, double alpha=0.5)
 
VertexHandle split_edge (EdgeHandle eh)
 
VertexHandle split_face (FaceHandle fh, PointT pos)
 
VertexHandle split_face (FaceHandle fh)
 
- Public Member Functions inherited from OpenVolumeMesh::GeometryKernel< VecT, TetrahedralMeshTopologyKernel >
 GeometryKernel (GeometryKernel const &other)
 
 GeometryKernel (GeometryKernel &&other)=default
 
GeometryKernel operator= (GeometryKernel const &other)
 
GeometryKernel operator= (GeometryKernel< VecT, OtherTopoKernelT > const &other)
 
GeometryKerneloperator= (GeometryKernel &&other)=delete
 
VertexHandle add_vertex (const VecT &_p)
 Add a geometric point to the mesh. More...
 
void set_vertex (VertexHandle _vh, const VecT &_p)
 Set the coordinates of point _vh. More...
 
const VecT & vertex (VertexHandle _vh) const
 Get point _vh's coordinates. More...
 
void swap_vertices (std::vector< VecT > &_other)
 
PointT::value_type length (HalfEdgeHandle _heh) const
 
PointT::value_type length (EdgeHandle _eh) const
 
PointT vector (HalfEdgeHandle _heh) const
 
PointT vector (EdgeHandle _eh) const
 
PointT barycenter (EdgeHandle _eh) const
 
PointT barycenter (FaceHandle _fh) const
 
PointT barycenter (CellHandle _ch) const
 
PointT normal (HalfFaceHandle _hfh) const
 
GeometryKernelT< VecT > const & vertex_positions () const &
 
GeometryKernelT< VecT > & vertex_positions () &
 
- Public Member Functions inherited from OpenVolumeMesh::TetrahedralMeshTopologyKernel
FaceHandle add_face (std::vector< HalfEdgeHandle > _halfedges, bool _topologyCheck=false) override
 Add face via incident edges. More...
 
FaceHandle add_face (const std::vector< VertexHandle > &_vertices) override
 Add face via incident vertices. More...
 
CellHandle add_cell (std::vector< HalfFaceHandle > _halffaces, bool _topologyCheck=false) override
 Add cell via incident halffaces. More...
 
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< VertexHandleget_cell_vertices (CellHandle ch) const
 
std::vector< VertexHandleget_cell_vertices (CellHandle ch, VertexHandle vh) const
 
std::vector< VertexHandleget_cell_vertices (HalfFaceHandle hfh) const
 
std::vector< VertexHandleget_cell_vertices (HalfFaceHandle hfh, HalfEdgeHandle heh) const
 
VertexHandle halfface_opposite_vertex (HalfFaceHandle hfh) const
 
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
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from OpenVolumeMesh::TopologyKernel
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 inherited from OpenVolumeMesh::TopologyKernel
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 inherited from OpenVolumeMesh::TetrahedralMeshTopologyKernel
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. 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 inherited from OpenVolumeMesh::TopologyKernel
template<class Circulator >
static Circulator make_end_circulator (const Circulator &_circ)
 
- Protected Attributes inherited from OpenVolumeMesh::TopologyKernel
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_
 

Detailed Description

template<class VecT, class TopologyKernelT = TetrahedralMeshTopologyKernel>
class OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >

Definition at line 47 of file TetrahedralGeometryKernel.hh.

Member Typedef Documentation

◆ KernelT

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
typedef TopologyKernelT OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::KernelT

Definition at line 51 of file TetrahedralGeometryKernel.hh.

◆ ParentT

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
typedef GeometryKernel<VecT, TopologyKernelT> OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::ParentT

Definition at line 52 of file TetrahedralGeometryKernel.hh.

◆ PointT

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
typedef VecT OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::PointT

Definition at line 50 of file TetrahedralGeometryKernel.hh.

Constructor & Destructor Documentation

◆ TetrahedralGeometryKernel()

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::TetrahedralGeometryKernel ( )
inline

Constructor.

Definition at line 55 of file TetrahedralGeometryKernel.hh.

◆ ~TetrahedralGeometryKernel()

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::~TetrahedralGeometryKernel ( )
inline

Destructor.

Definition at line 58 of file TetrahedralGeometryKernel.hh.

Member Function Documentation

◆ split_edge() [1/2]

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
VertexHandle OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::split_edge ( EdgeHandle  eh)
inline

Definition at line 69 of file TetrahedralGeometryKernel.hh.

◆ split_edge() [2/2]

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
VertexHandle OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::split_edge ( HalfEdgeHandle  heh,
double  alpha = 0.5 
)
inline

Definition at line 60 of file TetrahedralGeometryKernel.hh.

◆ split_face() [1/2]

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
VertexHandle OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::split_face ( FaceHandle  fh)
inline

Definition at line 81 of file TetrahedralGeometryKernel.hh.

◆ split_face() [2/2]

template<class VecT , class TopologyKernelT = TetrahedralMeshTopologyKernel>
VertexHandle OpenVolumeMesh::TetrahedralGeometryKernel< VecT, TopologyKernelT >::split_face ( FaceHandle  fh,
PointT  pos 
)
inline

Definition at line 74 of file TetrahedralGeometryKernel.hh.


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