RINGMesh  Version 5.0.0
A programming library for geological model meshes
RINGMesh::GeogramVolumeMesh< DIMENSION > Class Template Reference

#include <geogram_mesh.h>

Inheritance diagram for RINGMesh::GeogramVolumeMesh< DIMENSION >:
RINGMesh::VolumeMesh< DIMENSION > RINGMesh::MeshBase< DIMENSION >

Public Member Functions

index_t cell_vertex (const ElementLocalVertex &cell_local_vertex) const override
 Gets a vertex index by cell and local vertex index. More...
 
index_t cell_edge_vertex (index_t cell_id, index_t edge_id, index_t vertex_id) const override
 Gets a vertex index by cell and local edge and local vertex index. More...
 
index_t cell_facet_vertex (const CellLocalFacet &cell_local_facet, index_t vertex_id) const override
 Gets a vertex by cell facet and local vertex index. More...
 
index_t cell_facet (const CellLocalFacet &cell_local_facet) const override
 Gets a facet index by cell and local facet index. More...
 
index_t nb_cell_facets (index_t cell_id) const override
 Gets the number of facet in a cell. More...
 
index_t nb_cell_facets () const override
 Gets the total number of facet in a all cells. More...
 
index_t nb_cell_edges (index_t cell_id) const override
 Gets the number of edges in a cell. More...
 
index_t nb_cell_facet_vertices (const CellLocalFacet &cell_local_facet) const override
 Gets the number of vertices of a facet in a cell. More...
 
index_t nb_cell_vertices (index_t cell_id) const override
 Gets the number of vertices of a cell. More...
 
index_t nb_cells () const override
 Gets the number of cells in the Mesh. More...
 
index_t cell_begin (index_t cell_id) const override
 
index_t cell_end (index_t cell_id) const override
 
index_t cell_adjacent (const CellLocalFacet &cell_local_facet) const override
 
GEO::AttributesManager & cell_attribute_manager () const override
 
GEO::AttributesManager & cell_facet_attribute_manager () const override
 
CellType cell_type (index_t cell_id) const override
 Gets the type of a cell. More...
 
bool cells_are_simplicies () const override
 Tests whether all the cells are tetrahedra. When all the cells are tetrahedra, storage and access is optimized. More...
 
double cell_volume (index_t cell_id) const override
 compute the volume of the cell More...
 
- Public Member Functions inherited from RINGMesh::VolumeMesh< DIMENSION >
double cell_edge_length (index_t cell_id, index_t edge_id) const
 
vecn< DIMENSION > cell_edge_barycenter (index_t cell_id, index_t edge_id) const
 
vecn< DIMENSION > cell_facet_barycenter (const CellLocalFacet &cell_local_facet) const
 
vecn< DIMENSION > cell_barycenter (index_t cell_id) const
 
vecn< DIMENSION > cell_facet_normal (const CellLocalFacet &cell_local_facet) const
 
std::vector< index_t > cells_around_vertex (index_t vertex_id, index_t cell_hint) const
 
index_t find_cell_corner (index_t cell_id, index_t vertex_id) const
 
bool find_cell_from_colocated_vertex_within_distance_if_any (const vecn< DIMENSION > &vertex_vec, double distance, index_t &cell_id, index_t &cell_vertex_id) const
 
const NNSearch< DIMENSION > & cell_facet_nn_search () const
 return the NNSearch at cell facets More...
 
const NNSearch< DIMENSION > & cell_nn_search () const
 return the NNSearch at cells More...
 
const VolumeAABBTree< DIMENSION > & cell_aabb () const
 Creates an AABB tree for a Mesh cells. More...
 
bool is_mesh_valid () const override
 
std::tuple< index_t, std::vector< index_t > > connected_components () const final
 
- Public Member Functions inherited from RINGMesh::MeshBase< DIMENSION >
virtual ~MeshBase ()=default
 
virtual void save_mesh (const std::string &filename) const =0
 
virtual void print_mesh_bounded_attributes () const =0
 
virtual const vecn< DIMENSION > & vertex (index_t v_id) const =0
 Gets a point. More...
 
virtual index_t nb_vertices () const =0
 
virtual GEO::AttributesManager & vertex_attribute_manager () const =0
 
const NNSearch< DIMENSION > & vertex_nn_search () const
 return the NNSearch at vertices More...
 
virtual MeshType type_name () const =0
 
virtual std::string default_extension () const =0
 

Private Member Functions

 COMMON_GEOGRAM_MESH_IMPLEMENTATION (GeogramVolumeMesh)
 

Additional Inherited Members

- Static Public Member Functions inherited from RINGMesh::VolumeMesh< DIMENSION >
static std::unique_ptr< VolumeMesh< DIMENSION > > create_mesh (const MeshType type="")
 
- Protected Member Functions inherited from RINGMesh::VolumeMesh< DIMENSION >
 VolumeMesh ()=default
 
- Protected Member Functions inherited from RINGMesh::MeshBase< DIMENSION >
 MeshBase ()=default
 
- Protected Attributes inherited from RINGMesh::VolumeMesh< DIMENSION >
std::unique_ptr< NNSearch< DIMENSION > > cell_facet_nn_search_ {}
 
std::unique_ptr< NNSearch< DIMENSION > > cell_nn_search_ {}
 
std::unique_ptr< VolumeAABBTree< DIMENSION > > cell_aabb_ {}
 
- Protected Attributes inherited from RINGMesh::MeshBase< DIMENSION >
std::unique_ptr< NNSearch< DIMENSION > > vertex_nn_search_ {}
 

Detailed Description

template<index_t DIMENSION>
class RINGMesh::GeogramVolumeMesh< DIMENSION >

Definition at line 198 of file geogram_mesh.h.

Member Function Documentation

◆ cell_adjacent()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_adjacent ( const CellLocalFacet cell_local_facet) const
inlineoverridevirtual
Returns
the index of the adjacent cell of
Parameters
cell_local_facet

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 272 of file geogram_mesh.h.

◆ cell_attribute_manager()

template<index_t DIMENSION>
GEO::AttributesManager& RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_attribute_manager ( ) const
inlineoverridevirtual

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 279 of file geogram_mesh.h.

◆ cell_begin()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_begin ( index_t  cell_id) const
inlineoverridevirtual

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 262 of file geogram_mesh.h.

◆ cell_edge_vertex()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_edge_vertex ( index_t  cell_id,
index_t  edge_id,
index_t  vertex_id 
) const
inlineoverridevirtual

Gets a vertex index by cell and local edge and local vertex index.

Parameters
[in]cell_idthe cell index.
[in]edge_idthe local edge index in
cell_id.
[in]vertex_idthe local vertex index in
cell_id.
Returns
the global vertex index. vertex_id<number of vertices of the cell.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 210 of file geogram_mesh.h.

◆ cell_end()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_end ( index_t  cell_id) const
inlineoverridevirtual

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 267 of file geogram_mesh.h.

◆ cell_facet()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_facet ( const CellLocalFacet cell_local_facet) const
inlineoverridevirtual

Gets a facet index by cell and local facet index.

Parameters
[in]cell_local_facetindex of the cell and the local index of the facet in the cell
Returns
the global facet index.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 223 of file geogram_mesh.h.

◆ cell_facet_attribute_manager()

template<index_t DIMENSION>
GEO::AttributesManager& RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_facet_attribute_manager ( ) const
inlineoverridevirtual

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 284 of file geogram_mesh.h.

◆ cell_facet_vertex()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_facet_vertex ( const CellLocalFacet cell_local_facet,
index_t  vertex_id 
) const
inlineoverridevirtual

Gets a vertex by cell facet and local vertex index.

Parameters
[in]cell_local_facetindex of the cell and the local index of the facet in the cell
[in]vertex_idindex of the vertex in the facet
facet_id
Returns
the global vertex index. vertex_id < number of vertices in the facet
Parameters
facet_idand facet_id number of facet in th cell
cell_id

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 216 of file geogram_mesh.h.

◆ cell_type()

template<index_t DIMENSION>
CellType RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_type ( index_t  cell_id) const
inlineoverridevirtual

Gets the type of a cell.

Parameters
[in]cell_idthe cell index, in 0..nb()-1

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 289 of file geogram_mesh.h.

◆ cell_vertex()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_vertex ( const ElementLocalVertex cell_local_vertex) const
inlineoverridevirtual

Gets a vertex index by cell and local vertex index.

Parameters
[in]cell_idthe cell index.
[in]vertex_idthe local vertex index in
cell_id.
Returns
the global vertex index. vertex_id<number of vertices of the cell.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 203 of file geogram_mesh.h.

◆ cell_volume()

template<index_t DIMENSION>
double RINGMesh::GeogramVolumeMesh< DIMENSION >::cell_volume ( index_t  cell_id) const
inlineoverridevirtual

compute the volume of the cell

Parameters
cell_id.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 299 of file geogram_mesh.h.

◆ cells_are_simplicies()

template<index_t DIMENSION>
bool RINGMesh::GeogramVolumeMesh< DIMENSION >::cells_are_simplicies ( ) const
inlineoverridevirtual

Tests whether all the cells are tetrahedra. When all the cells are tetrahedra, storage and access is optimized.

Returns
True if all cells are tetrahedra and False otherwise.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 294 of file geogram_mesh.h.

◆ COMMON_GEOGRAM_MESH_IMPLEMENTATION()

template<index_t DIMENSION>
RINGMesh::GeogramVolumeMesh< DIMENSION >::COMMON_GEOGRAM_MESH_IMPLEMENTATION ( GeogramVolumeMesh< DIMENSION >  )
private

◆ nb_cell_edges()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cell_edges ( index_t  cell_id) const
inlineoverridevirtual

Gets the number of edges in a cell.

Parameters
[in]cell_idindex of the cell
Returns
the number of facet of the cell
Parameters
cell_id

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 240 of file geogram_mesh.h.

◆ nb_cell_facet_vertices()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cell_facet_vertices ( const CellLocalFacet cell_local_facet) const
inlineoverridevirtual

Gets the number of vertices of a facet in a cell.

Parameters
[in]cell_local_facetindex of the cell and the local index of the facet in the cell
Returns
the number of vertices in the facet
Parameters
facet_idin the cell
cell_id

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 245 of file geogram_mesh.h.

◆ nb_cell_facets() [1/2]

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cell_facets ( index_t  cell_id) const
inlineoverridevirtual

Gets the number of facet in a cell.

Parameters
[in]cell_idindex of the cell
Returns
the number of facet of the cell
Parameters
cell_id

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 230 of file geogram_mesh.h.

◆ nb_cell_facets() [2/2]

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cell_facets ( ) const
inlineoverridevirtual

Gets the total number of facet in a all cells.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 235 of file geogram_mesh.h.

◆ nb_cell_vertices()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cell_vertices ( index_t  cell_id) const
inlineoverridevirtual

Gets the number of vertices of a cell.

Parameters
[in]cell_idindex of the cell
Returns
the number of vertices in the cell
Parameters
cell_id

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 252 of file geogram_mesh.h.

◆ nb_cells()

template<index_t DIMENSION>
index_t RINGMesh::GeogramVolumeMesh< DIMENSION >::nb_cells ( ) const
inlineoverridevirtual

Gets the number of cells in the Mesh.

Implements RINGMesh::VolumeMesh< DIMENSION >.

Definition at line 257 of file geogram_mesh.h.


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