Developer Documentation
|
Classes | |
class | CellCorrector |
class | EdgeCorrector |
class | FaceCorrector |
Public Types | |
typedef OpenVolumeMeshEdge | Edge |
typedef OpenVolumeMeshFace | Face |
typedef OpenVolumeMeshCell | Cell |
Public Types inherited from OpenVolumeMesh::ResourceManager | |
typedef std::vector< BaseProperty * > | Properties |
Public Member Functions | |
TopologyKernel & | operator= (const TopologyKernel &)=default |
void | assign (const TopologyKernel *other) |
VertexVertexIter | vv_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexVertexIter, VertexVertexIter > | vertex_vertices (const VertexHandle &_h, int _max_laps=1) const |
VertexOHalfEdgeIter | voh_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexOHalfEdgeIter, VertexOHalfEdgeIter > | outgoing_halfedges (const VertexHandle &_h, int _max_laps=1) const |
VertexIHalfEdgeIter | vih_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexIHalfEdgeIter, VertexIHalfEdgeIter > | incoming_halfedges (const VertexHandle &_h, int _max_laps=1) const |
VertexEdgeIter | ve_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexEdgeIter, VertexEdgeIter > | vertex_edges (const VertexHandle &_h, int _max_laps=1) const |
VertexHalfFaceIter | vhf_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexHalfFaceIter, VertexHalfFaceIter > | vertex_halffaces (const VertexHandle &_h, int _max_laps=1) const |
VertexFaceIter | vf_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexFaceIter, VertexFaceIter > | vertex_faces (const VertexHandle &_h, int _max_laps=1) const |
VertexCellIter | vc_iter (const VertexHandle &_h, int _max_laps=1) const |
std::pair< VertexCellIter, VertexCellIter > | vertex_cells (const VertexHandle &_h, int _max_laps=1) const |
HalfEdgeHalfFaceIter | hehf_iter (const HalfEdgeHandle &_h, int _max_laps=1) const |
std::pair< HalfEdgeHalfFaceIter, HalfEdgeHalfFaceIter > | halfedge_halffaces (const HalfEdgeHandle &_h, int _max_laps=1) const |
HalfEdgeFaceIter | hef_iter (const HalfEdgeHandle &_h, int _max_laps=1) const |
std::pair< HalfEdgeFaceIter, HalfEdgeFaceIter > | halfedge_faces (const HalfEdgeHandle &_h, int _max_laps=1) const |
HalfEdgeCellIter | hec_iter (const HalfEdgeHandle &_h, int _max_laps=1) const |
std::pair< HalfEdgeCellIter, HalfEdgeCellIter > | halfedge_cells (const HalfEdgeHandle &_h, int _max_laps=1) const |
EdgeHalfFaceIter | ehf_iter (const EdgeHandle &_h, int _max_laps=1) const |
std::pair< EdgeHalfFaceIter, EdgeHalfFaceIter > | edge_halffaces (const EdgeHandle &_h, int _max_laps=1) const |
EdgeFaceIter | ef_iter (const EdgeHandle &_h, int _max_laps=1) const |
std::pair< EdgeFaceIter, EdgeFaceIter > | edge_faces (const EdgeHandle &_h, int _max_laps=1) const |
EdgeCellIter | ec_iter (const EdgeHandle &_h, int _max_laps=1) const |
std::pair< EdgeCellIter, EdgeCellIter > | edge_cells (const EdgeHandle &_h, int _max_laps=1) const |
HalfFaceHalfEdgeIter | hfhe_iter (const HalfFaceHandle &_h, int _max_laps=1) const |
std::pair< HalfFaceHalfEdgeIter, HalfFaceHalfEdgeIter > | halfface_halfedges (const HalfFaceHandle &_h, int _max_laps=1) const |
HalfFaceEdgeIter | hfe_iter (const HalfFaceHandle &_h, int _max_laps=1) const |
std::pair< HalfFaceEdgeIter, HalfFaceEdgeIter > | halfface_edges (const HalfFaceHandle &_h, int _max_laps=1) const |
FaceVertexIter | fv_iter (const FaceHandle &_h, int _max_laps=1) const |
std::pair< FaceVertexIter, FaceVertexIter > | face_vertices (const FaceHandle &_h, int _max_laps=1) const |
FaceHalfEdgeIter | fhe_iter (const FaceHandle &_h, int _max_laps=1) const |
std::pair< FaceHalfEdgeIter, FaceHalfEdgeIter > | face_halfedges (const FaceHandle &_h, int _max_laps=1) const |
FaceEdgeIter | fe_iter (const FaceHandle &_h, int _max_laps=1) const |
std::pair< FaceEdgeIter, FaceEdgeIter > | face_edges (const FaceHandle &_h, int _max_laps=1) const |
CellVertexIter | cv_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellVertexIter, CellVertexIter > | cell_vertices (const CellHandle &_h, int _max_laps=1) const |
CellHalfEdgeIter | che_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellHalfEdgeIter, CellHalfEdgeIter > | cell_halfedges (const CellHandle &_h, int _max_laps=1) const |
CellEdgeIter | ce_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellEdgeIter, CellEdgeIter > | cell_edges (const CellHandle &_h, int _max_laps=1) const |
CellHalfFaceIter | chf_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellHalfFaceIter, CellHalfFaceIter > | cell_halffaces (const CellHandle &_h, int _max_laps=1) const |
CellFaceIter | cf_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellFaceIter, CellFaceIter > | cell_faces (const CellHandle &_h, int _max_laps=1) const |
CellCellIter | cc_iter (const CellHandle &_h, int _max_laps=1) const |
std::pair< CellCellIter, CellCellIter > | cell_cells (const CellHandle &_h, int _max_laps=1) const |
HalfFaceVertexIter | hfv_iter (const HalfFaceHandle &_h, int _max_laps=1) const |
std::pair< HalfFaceVertexIter, HalfFaceVertexIter > | halfface_vertices (const HalfFaceHandle &_h, int _max_laps=1) const |
BoundaryHalfFaceHalfFaceIter | bhfhf_iter (const HalfFaceHandle &_ref_h, int _max_laps=1) const |
std::pair< BoundaryHalfFaceHalfFaceIter, BoundaryHalfFaceHalfFaceIter > | boundary_halfface_halffaces (const 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::vector< VertexHandle > | halfedge_vertices (const HalfEdgeHandle &_h) const |
std::vector< VertexHandle > | edge_vertices (const EdgeHandle &_h) const |
std::vector< HalfEdgeHandle > | edge_halfedges (const EdgeHandle &_h) const |
std::vector< HalfFaceHandle > | face_halffaces (const FaceHandle &_h) const |
std::vector< CellHandle > | face_cells (const 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 |
virtual VertexHandle | add_vertex () |
Add abstract vertex. | |
virtual EdgeHandle | add_edge (const VertexHandle &_fromVertex, const VertexHandle &_toHandle, bool _allowDuplicates=false) |
Add edge. | |
virtual FaceHandle | add_face (const 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 (const std::vector< HalfFaceHandle > &_halffaces, bool _topologyCheck=false) |
Add cell via incident halffaces. More... | |
void | set_edge (const EdgeHandle &_eh, const VertexHandle &_fromVertex, const VertexHandle &_toVertex) |
Set the vertices of an edge. | |
void | set_face (const FaceHandle &_fh, const std::vector< HalfEdgeHandle > &_hes) |
Set the half-edges of a face. | |
void | set_cell (const CellHandle &_ch, const std::vector< HalfFaceHandle > &_hfs) |
Set the half-faces of a cell. | |
const Edge & | edge (const EdgeHandle &_edgeHandle) const |
Get edge with handle _edgeHandle. | |
const Face & | face (const FaceHandle &_faceHandle) const |
Get face with handle _faceHandle. | |
const Cell & | cell (const CellHandle &_cellHandle) const |
Get cell with handle _cellHandle. | |
Edge & | edge (const EdgeHandle &_edgeHandle) |
Get edge with handle _edgeHandle. | |
Face & | face (const FaceHandle &_faceHandle) |
Get face with handle _faceHandle. | |
Cell & | cell (const CellHandle &_cellHandle) |
Get cell with handle _cellHandle. | |
Edge | halfedge (const HalfEdgeHandle &_halfEdgeHandle) const |
Get edge that corresponds to halfedge with handle _halfEdgeHandle. More... | |
Face | halfface (const HalfFaceHandle &_halfFaceHandle) const |
Get face that corresponds to halfface with handle _halfFaceHandle. | |
Edge | opposite_halfedge (const HalfEdgeHandle &_halfEdgeHandle) const |
Get opposite halfedge that corresponds to halfedge with handle _halfEdgeHandle. | |
Face | opposite_halfface (const HalfFaceHandle &_halfFaceHandle) const |
Get opposite halfface that corresponds to halfface with handle _halfFaceHandle. | |
HalfEdgeHandle | halfedge (const VertexHandle &_vh1, const VertexHandle &_vh2) const |
Get halfedge from vertex _vh1 to _vh2. | |
HalfFaceHandle | halfface (const std::vector< VertexHandle > &_vs) const |
HalfFaceHandle | halfface_extensive (const std::vector< VertexHandle > &_vs) const |
HalfFaceHandle | halfface (const std::vector< HalfEdgeHandle > &_hes) const |
HalfEdgeHandle | next_halfedge_in_halfface (const HalfEdgeHandle &_heh, const HalfFaceHandle &_hfh) const |
Get next halfedge within a halfface. | |
HalfEdgeHandle | prev_halfedge_in_halfface (const HalfEdgeHandle &_heh, const HalfFaceHandle &_hfh) const |
Get previous halfedge within a halfface. | |
VertexHandle | from_vertex_handle (const HalfEdgeHandle &_h) const |
Get the vertex the halfedge starts from. | |
VertexHandle | to_vertex_handle (const HalfEdgeHandle &_h) const |
Get the vertex the halfedge points to. | |
size_t | valence (const VertexHandle &_vh) const |
Get valence of vertex (number of incident edges) | |
size_t | valence (const EdgeHandle &_eh) const |
Get valence of edge (number of incident faces) | |
size_t | valence (const FaceHandle &_fh) const |
Get valence of face (number of incident edges) | |
size_t | valence (const CellHandle &_ch) const |
Get valence of cell (number of incident faces) | |
virtual VertexIter | delete_vertex (const VertexHandle &_h) |
Delete vertex from mesh. More... | |
virtual EdgeIter | delete_edge (const EdgeHandle &_h) |
Delete edge from mesh. More... | |
virtual FaceIter | delete_face (const FaceHandle &_h) |
Delete face from mesh. More... | |
virtual CellIter | delete_cell (const CellHandle &_h) |
Delete cell from mesh. More... | |
virtual void | collect_garbage () |
Delete all entities that are marked as deleted. | |
virtual bool | is_deleted (const VertexHandle &_h) const |
virtual bool | is_deleted (const EdgeHandle &_h) const |
virtual bool | is_deleted (const HalfEdgeHandle &_h) const |
virtual bool | is_deleted (const FaceHandle &_h) const |
virtual bool | is_deleted (const HalfFaceHandle &_h) const |
virtual bool | is_deleted (const 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. | |
CellIter | delete_cell_range (const CellIter &_first, const CellIter &_last) |
Delete range of cells. More... | |
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 (const HalfFaceHandle &_halfFaceHandle, const HalfEdgeHandle &_halfEdgeHandle) const |
Get halfface that is adjacent (w.r.t. a common halfedge) within the same cell. More... | |
CellHandle | incident_cell (const HalfFaceHandle &_halfFaceHandle) const |
Get cell that is incident to the given halfface. | |
bool | is_boundary (const HalfFaceHandle &_halfFaceHandle) const |
bool | is_boundary (const FaceHandle &_faceHandle) const |
bool | is_boundary (const EdgeHandle &_edgeHandle) const |
bool | is_boundary (const HalfEdgeHandle &_halfedgeHandle) const |
bool | is_boundary (const VertexHandle &_vertexHandle) const |
bool | is_boundary (const CellHandle &_cellHandle) const |
size_t | n_vertices_in_cell (const CellHandle &_ch) const |
Edge | opposite_halfedge (const Edge &_edge) const |
Face | opposite_halfface (const Face &_face) const |
bool | needs_garbage_collection () const |
Public Member Functions inherited from OpenVolumeMesh::ResourceManager | |
ResourceManager (const ResourceManager &other) | |
ResourceManager (ResourceManager &&other) | |
ResourceManager & | operator= (const ResourceManager &other) |
ResourceManager & | operator= (ResourceManager &&other) |
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 | clear_vertex_props () |
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<typename T , typename EntityTag > | |
PropertyTT< T, EntityTag > | request_property (const std::string &_name=std::string(), const T _def=T()) |
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 |
size_t | n_edge_props () const |
size_t | n_halfedge_props () const |
size_t | n_face_props () const |
size_t | n_halfface_props () const |
size_t | n_cell_props () const |
size_t | n_mesh_props () const |
template<typename T , class EntityTag > | |
void | set_persistent (PropertyTT< T, EntityTag > &_prop, bool _flag=true) |
Properties::const_iterator | vertex_props_begin () const |
Properties::const_iterator | vertex_props_end () const |
Properties::const_iterator | edge_props_begin () const |
Properties::const_iterator | edge_props_end () const |
Properties::const_iterator | halfedge_props_begin () const |
Properties::const_iterator | halfedge_props_end () const |
Properties::const_iterator | face_props_begin () const |
Properties::const_iterator | face_props_end () const |
Properties::const_iterator | halfface_props_begin () const |
Properties::const_iterator | halfface_props_end () const |
Properties::const_iterator | cell_props_begin () const |
Properties::const_iterator | cell_props_end () const |
Properties::const_iterator | mesh_props_begin () const |
Properties::const_iterator | mesh_props_end () const |
template<class PropT > | |
bool | vertex_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | edge_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | halfedge_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | face_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | halfface_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | cell_property_exists (const std::string &_name) const |
template<class PropT > | |
bool | mesh_property_exists (const std::string &_name) const |
Static Public Member Functions | |
static HalfEdgeHandle | halfedge_handle (const EdgeHandle &_h, const unsigned char _subIdx) |
Conversion function. | |
static HalfFaceHandle | halfface_handle (const FaceHandle &_h, const unsigned char _subIdx) |
Conversion function. | |
static EdgeHandle | edge_handle (const HalfEdgeHandle &_h) |
Handle conversion. | |
static FaceHandle | face_handle (const HalfFaceHandle &_h) |
static HalfEdgeHandle | opposite_halfedge_handle (const HalfEdgeHandle &_h) |
static HalfFaceHandle | opposite_halfface_handle (const 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 | |
virtual void | delete_multiple_vertices (const std::vector< bool > &_tag) |
virtual void | delete_multiple_edges (const std::vector< bool > &_tag) |
virtual void | delete_multiple_faces (const std::vector< bool > &_tag) |
virtual void | delete_multiple_cells (const std::vector< bool > &_tag) |
void | compute_vertex_bottom_up_incidences () |
void | compute_edge_bottom_up_incidences () |
void | compute_face_bottom_up_incidences () |
void | reorder_incident_halffaces (const EdgeHandle &_eh) |
Protected Member Functions inherited from OpenVolumeMesh::ResourceManager | |
void | vertex_deleted (const VertexHandle &_h) |
void | edge_deleted (const EdgeHandle &_h) |
void | face_deleted (const FaceHandle &_h) |
void | cell_deleted (const CellHandle &_h) |
void | swap_cell_properties (CellHandle _h1, CellHandle _h2) |
void | swap_face_properties (FaceHandle _h1, FaceHandle _h2) |
void | swap_halfface_properties (HalfFaceHandle _h1, HalfFaceHandle _h2) |
void | swap_edge_properties (EdgeHandle _h1, EdgeHandle _h2) |
void | swap_halfedge_properties (HalfEdgeHandle _h1, HalfEdgeHandle _h2) |
void | swap_vertex_properties (VertexHandle _h1, VertexHandle _h2) |
template<typename PropIterator , typename Handle > | |
void | swap_property_elements (PropIterator _begin, PropIterator _end, Handle _h1, Handle _h2) |
void | delete_multiple_vertex_props (const std::vector< bool > &_tags) |
void | delete_multiple_edge_props (const std::vector< bool > &_tags) |
void | delete_multiple_face_props (const std::vector< bool > &_tags) |
void | delete_multiple_cell_props (const std::vector< bool > &_tags) |
Static Protected Member Functions | |
template<class Circulator > | |
static Circulator | make_end_circulator (const Circulator &_circ) |
Protected Attributes | |
std::vector< std::vector< HalfEdgeHandle > > | outgoing_hes_per_vertex_ |
std::vector< std::vector< HalfFaceHandle > > | incident_hfs_per_he_ |
std::vector< CellHandle > | incident_cell_per_hf_ |
std::vector< Edge > | edges_ |
std::vector< Face > | faces_ |
std::vector< Cell > | cells_ |
std::vector< bool > | vertex_deleted_ |
std::vector< bool > | edge_deleted_ |
std::vector< bool > | face_deleted_ |
std::vector< 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 |
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 (const VertexHandle &_h) |
Delete vertex from mesh. More... | |
EdgeIter | delete_edge_core (const EdgeHandle &_h) |
Delete edge from mesh. More... | |
FaceIter | delete_face_core (const FaceHandle &_h) |
Delete face from mesh. More... | |
CellIter | delete_cell_core (const 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 |
Definition at line 50 of file TopologyKernel.hh.
|
virtual |
Add cell via incident halffaces.
Add cell via incident halffaces
Reimplemented in OpenVolumeMesh::HexahedralMeshTopologyKernel, and OpenVolumeMesh::TetrahedralMeshTopologyKernel.
Definition at line 369 of file TopologyKernel.cc.
|
virtual |
Add face via incident edges.
Add face via incident edges
Reimplemented in OpenVolumeMesh::HexahedralMeshTopologyKernel, and OpenVolumeMesh::TetrahedralMeshTopologyKernel.
Definition at line 148 of file TopologyKernel.cc.
|
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 239 of file TopologyKernel.cc.
HalfFaceHandle OpenVolumeMesh::TopologyKernel::adjacent_halfface_in_cell | ( | const HalfFaceHandle & | _halfFaceHandle, |
const HalfEdgeHandle & | _halfEdgeHandle | ||
) | const |
Get halfface that is adjacent (w.r.t. a common halfedge) within the same cell.
Definition at line 2283 of file TopologyKernel.cc.
|
virtual |
Delete cell from mesh.
Since there's no higher dimensional incident entity to a cell, we can safely delete it from the mesh.
_h | The handle to the cell to be deleted |
Definition at line 715 of file TopologyKernel.cc.
|
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
_h | A cell handle |
Definition at line 1375 of file TopologyKernel.cc.
CellIter OpenVolumeMesh::TopologyKernel::delete_cell_range | ( | const CellIter & | _first, |
const CellIter & | _last | ||
) |
Delete range of cells.
Deletes all cells in range [_first, _last].
_first | Iterator to first cell that is to be deleted |
_last | Iterator to last cell that is to be deleted |
Definition at line 1976 of file TopologyKernel.cc.
|
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.
_h | The handle to the edge to be deleted |
Definition at line 641 of file TopologyKernel.cc.
|
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
_h | An edge's handle |
Definition at line 1020 of file TopologyKernel.cc.
|
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.
_h | The handle to the face to be deleted |
Definition at line 684 of file TopologyKernel.cc.
|
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
_h | An face's handle |
Definition at line 1204 of file TopologyKernel.cc.
|
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.
_h | The handle to the vertex to be deleted |
Definition at line 589 of file TopologyKernel.cc.
|
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
_h | A vertex's handle |
Definition at line 915 of file TopologyKernel.cc.
OpenVolumeMeshEdge OpenVolumeMesh::TopologyKernel::halfedge | ( | const HalfEdgeHandle & | _halfEdgeHandle | ) | const |
Get edge that corresponds to halfedge with handle _halfEdgeHandle.
Otherwise return the opposite halfedge via opposite()
Definition at line 2071 of file TopologyKernel.cc.
HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface | ( | const std::vector< VertexHandle > & | _vs | ) | const |
Get half-face from list of incident vertices (in connected order)
Definition at line 2154 of file TopologyKernel.cc.
HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface | ( | const std::vector< HalfEdgeHandle > & | _hes | ) | const |
Get half-face from list of incident half-edges
Definition at line 2221 of file TopologyKernel.cc.
HalfFaceHandle OpenVolumeMesh::TopologyKernel::halfface_extensive | ( | const std::vector< VertexHandle > & | _vs | ) | const |
Get half-face from list of incident vertices (in connected order)
Definition at line 2174 of file TopologyKernel.cc.