Developer Documentation

Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Friends | List of all members
OpenVolumeMesh::HexahedralMeshTopologyKernel Class Reference

A data structure basing on PolyhedralMesh with specializations for hexahedra. More...

`#include <Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Mesh/HexahedralMeshTopologyKernel.hh>`

Inheritance diagram for OpenVolumeMesh::HexahedralMeshTopologyKernel:

## Public Types
typedef class CellSheetCellIter | CellSheetCellIter
typedef class HalfFaceSheetHalfFaceIter | HalfFaceSheetHalfFaceIter
typedef class HexVertexIter | HexVertexIter
Public Types inherited from OpenVolumeMesh::TopologyKernel
typedef OpenVolumeMeshEdge | Edge
typedef OpenVolumeMeshFace | Face
typedef OpenVolumeMeshCell | Cell
Public Types inherited from OpenVolumeMesh::ResourceManager
typedef std::vector< BaseProperty * > | Properties

## Public Member Functions
FaceHandle | add_face (const 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 (const std::vector< HalfFaceHandle > &_halffaces, bool _topologyCheck=false) override
| Overridden function.
CellHandle | add_cell (const std::vector< VertexHandle > &_vertices, bool _topologyCheck=false)
| Add cell via incident vertices. More...
CellSheetCellIter | csc_iter (const CellHandle &_ref_h, const unsigned char _orthDir, int _max_laps=1) const
std::pair< CellSheetCellIter, CellSheetCellIter > | cell_sheet_cells (const CellHandle &_ref_h, const unsigned char _orthDir, int _max_laps=1) const
HalfFaceSheetHalfFaceIter | hfshf_iter (const HalfFaceHandle &_ref_h, int _max_laps=1) const
std::pair< HalfFaceSheetHalfFaceIter, HalfFaceSheetHalfFaceIter > | halfface_sheet_halffaces (const HalfFaceHandle &_ref_h, int _max_laps=1) const
HexVertexIter | hv_iter (const CellHandle &_ref_h, int _max_laps=1) const
std::pair< HexVertexIter, HexVertexIter > | hex_vertices (const CellHandle &_ref_h, int _max_laps=1) const
HalfFaceHandle | opposite_halfface_handle_in_cell (const HalfFaceHandle &_hfh, const CellHandle &_ch) const
HalfFaceHandle | xfront_halfface (const CellHandle &_ch) const
HalfFaceHandle | xback_halfface (const CellHandle &_ch) const
HalfFaceHandle | yfront_halfface (const CellHandle &_ch) const
HalfFaceHandle | yback_halfface (const CellHandle &_ch) const
HalfFaceHandle | zfront_halfface (const CellHandle &_ch) const
HalfFaceHandle | zback_halfface (const CellHandle &_ch) const
unsigned char | orientation (const HalfFaceHandle &_hfh, const CellHandle &_ch) const
HalfFaceHandle | get_oriented_halfface (const unsigned char _o, const CellHandle &_ch) const
HalfFaceHandle | adjacent_halfface_on_sheet (const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh) const
HalfFaceHandle | adjacent_halfface_on_surface (const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh) const
HalfFaceHandle | neighboring_outside_halfface (const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh) const
Public Member Functions inherited from OpenVolumeMesh::TopologyKernel
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.
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 unsigned char | opposite_orientation (const unsigned char _d)
static unsigned char | orthogonal_orientation (const unsigned char _o1, const unsigned char _o2)
Static Public Member Functions inherited from OpenVolumeMesh::TopologyKernel
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 unsigned char | XF = 0
static const unsigned char | XB = 1
static const unsigned char | YF = 2
static const unsigned char | YB = 3
static const unsigned char | ZF = 4
static const unsigned char | ZB = 5
static const unsigned char | INVALID = 6
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)

## Private Member Functions
bool | check_halfface_ordering (const std::vector< HalfFaceHandle > &_hfs) const
const HalfFaceHandle & | get_adjacent_halfface (const HalfFaceHandle &_hfh, const HalfEdgeHandle &_heh, const std::vector< HalfFaceHandle > &_halffaces) const

## Friends
class | CellSheetCellIter
class | HalfFaceSheetHalfFaceIter
class | HexVertexIter

## Additional Inherited Members
Protected Member Functions inherited from OpenVolumeMesh::TopologyKernel
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 inherited from OpenVolumeMesh::TopologyKernel
template<class Circulator >
static Circulator | make_end_circulator (const Circulator &_circ)
Protected Attributes inherited from OpenVolumeMesh::TopologyKernel
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

## Detailed Description

A data structure basing on PolyhedralMesh with specializations for hexahedra.

The hexahedron has an induced "virtual" coordinate system. This supposes the incident half-faces to be given in a specific order. See the following figure for an illustration of the induced coordinate system.

The abbreviations XF, XB, etc. are short for

- `XF:` X-axis front face
- `XB:` X-axis back face
- `YF:` Y-axis front face
- ``...

The axes refer to the intrinsic "virtual" axes of the hexahedron. The incident half-faces have to be defined in the following order:

- `1`. XF
- `2`. XB
- `3`. YF
- `4`. YB
- `5`. ZF
- `6`. ZB

Definition at line 78 of file HexahedralMeshTopologyKernel.hh.

## Member Function Documentation

## ◆ add_cell()

CellHandle OpenVolumeMesh::HexahedralMeshTopologyKernel::add_cell | ( | const std::vector< VertexHandle > & | _vertices,
|  | bool | _topologyCheck = `false`
| ) |  |

Add cell via incident vertices.

Test whether all required faces are already defined and, if not, create them. Give vertices in the following order:

     5-------6
    /|      /|

/ | / | 3----—2 | | 4-—|–7 | / | / |/ |/ 0----—1

Parameters

  _vertices | A list of vertices in the correct order
  _topologyCheck | Flag if a topology check should be performed before adding the cell

Returns
  The new hexahedron's cell handle

Definition at line 276 of file HexahedralMeshTopologyKernel.cc.

## ◆ add_face() [1/2]

FaceHandle OpenVolumeMesh::HexahedralMeshTopologyKernel::add_face | ( | const std::vector< HalfEdgeHandle > & | _halfedges,
|  | bool | _topologyCheck = `false`
| ) |  |
| override virtual

Add face via incident edges.

Add face via incident edges

Returns
  Handle of the new face, InvalidFaceHandle if _halfedges are not connected and _topologyCheck is true.

Warning
  If _halfedges are not connected and _topologyCheck is false, the behavior is undefined.

Reimplemented from OpenVolumeMesh::TopologyKernel.

Definition at line 48 of file HexahedralMeshTopologyKernel.cc.

## ◆ add_face() [2/2]

FaceHandle OpenVolumeMesh::HexahedralMeshTopologyKernel::add_face | ( | const std::vector< VertexHandle > & | _vertices | ) |
| override virtual

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 65 of file HexahedralMeshTopologyKernel.cc.

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

- Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Mesh/HexahedralMeshTopologyKernel.hh
- Type-OpenVolumeMesh/libs/OpenVolumeMesh/src/OpenVolumeMesh/Mesh/HexahedralMeshTopologyKernel.cc