RINGMesh  Version 5.0.0
A programming library for geological model meshes
RINGMesh::GeoModelBuilderGeometry< 3 > Class Template Referencefinal

#include <geomodel_builder_geometry.h>

Inheritance diagram for RINGMesh::GeoModelBuilderGeometry< 3 >:
RINGMesh::GeoModelBuilderGeometryBase< 3 >

Public Member Functions

std::unique_ptr< VolumeMeshBuilder3Dcreate_region_builder (index_t region_id)
 Create a Mesh3DBuilder for a given region. More...
 
void copy_meshes (const GeoModel3D &geomodel) override
 
void set_region_element_geometry (index_t region_id, index_t cell_id, const std::vector< index_t > &corners)
 
void set_region_geometry (index_t region_id, const std::vector< vec3 > &points, const std::vector< index_t > &tetras)
 Set the points and tetras for a region. More...
 
index_t create_region_cell (index_t region_id, CellType type, const std::vector< index_t > &vertex_indices)
 
index_t create_region_cells (index_t region_id, CellType type, index_t nb_cells)
 Creates new cells in the mesh. More...
 
void delete_region_cells (index_t region_id, const std::vector< bool > &to_delete, bool remove_isolated_vertices)
 
void compute_region_adjacencies (index_t region_id, bool recompute_adjacency=true)
 Computes and sets the adjacencies between the cells. More...
 
void cut_regions_by_internal_surfaces ()
 
void cut_region_by_surface (index_t region_id, index_t surface_id)
 
void delete_mesh_entity_isolated_vertices (const gmme_id &E_id) override
 
- Public Member Functions inherited from RINGMesh::GeoModelBuilderGeometryBase< 3 >
virtual ~GeoModelBuilderGeometryBase ()=default
 
void clear_geomodel_mesh ()
 
void change_mesh_data_structure (const gmme_id &id, const MeshType type)
 Transfer general mesh information from one mesh data structure to another one. More...
 
std::unique_ptr< PointSetMeshBuilder< DIMENSION > > create_corner_builder (index_t corner_id)
 Create a PointMeshBuilder for a given corner. More...
 
std::unique_ptr< LineMeshBuilder< DIMENSION > > create_line_builder (index_t line_id)
 Create a LineMeshBuilder for a given line. More...
 
std::unique_ptr< SurfaceMeshBuilder< DIMENSION > > create_surface_builder (index_t surface_id)
 Create a Mesh2DBuilder for a given surface. More...
 
virtual void copy_meshes (const GeoModel< DIMENSION > &from)
 Copy all entity meshes from the input geomodel. More...
 
void copy_meshes (const GeoModel< DIMENSION > &from, const MeshEntityType &entity_type)
 
void copy_mesh (const GeoModel< DIMENSION > &from, const gmme_id &mesh_entity)
 
void assign_mesh_to_entity (const MeshBase< DIMENSION > &mesh, const gmme_id &to)
 
void set_mesh_entity_vertex (const gmme_id &entity_id, index_t v, const vecn< DIMENSION > &point, bool update)
 Sets a vertex coordinates of a GeoModelMeshEntity. More...
 
void set_mesh_entity_vertices (const gmme_id &entity_id, const std::vector< vecn< DIMENSION > > &points, bool clear)
 Adds vertices to the mesh. More...
 
void set_corner (index_t corner_id, const vecn< DIMENSION > &point)
 Sets the coordinates of a given existing Corner. More...
 
void set_line (index_t line_id, const std::vector< vecn< DIMENSION > > &vertices)
 Sets the mesh of a given existing Line. More...
 
void set_surface_geometry (index_t surface_id, const std::vector< vecn< DIMENSION > > &surface_vertices, const std::vector< index_t > &surface_polygons, const std::vector< index_t > &surface_polygon_ptr)
 Sets the points and polygons for a surface. More...
 
void set_mesh_entity_vertex (const gmme_id &entity_id, index_t v, index_t geomodel_vertex)
 Sets the geometrical position of a vertex from a geomodel vertex. More...
 
void set_mesh_entity_vertices (const gmme_id &entity_id, const std::vector< index_t > &geomodel_vertices, bool clear)
 Adds vertices to the mesh. More...
 
void set_corner (index_t corner_id, index_t geomodel_vertex_id)
 Sets the vertex for a Corner. Store the info in the geomodel vertices. More...
 
void set_line (index_t line_id, const std::vector< index_t > &unique_vertices)
 Sets one Line vertices. Store the info in the geomodel vertices. More...
 
void set_surface_geometry (index_t surface_id, const std::vector< index_t > &polygons, const std::vector< index_t > &polygon_ptr)
 Sets the polygons of a surface. More...
 
void set_surface_element_geometry (index_t surface_id, index_t polygon_id, const std::vector< index_t > &corners)
 
index_t create_mesh_entity_vertices (const gmme_id &entity_id, index_t nb_vertices)
 Creates new vertices to the mesh. More...
 
index_t create_surface_polygon (index_t surface_id, const std::vector< index_t > &vertex_indices)
 
void delete_mesh_entity_mesh (const gmme_id &E_id)
 
void delete_mesh_entity_vertices (const gmme_id &E_id, const std::vector< bool > &to_delete)
 
void delete_corner_vertex (index_t corner_id)
 
void delete_line_edges (index_t line_id, const std::vector< bool > &to_delete, bool remove_isolated_vertices)
 
void delete_surface_polygons (index_t surface_id, const std::vector< bool > &to_delete, bool remove_isolated_vertices)
 
void set_surface_element_adjacency (index_t surface_id, index_t polygon_id, const std::vector< index_t > &adjacents)
 
void compute_surface_adjacencies (index_t surface_id, bool recompute_adjacency=true)
 Computes and sets the adjacencies between the polygons. More...
 
void cut_surfaces_by_internal_lines ()
 
void cut_surface_by_line (index_t surface_id, index_t line_id)
 Cuts a Surface along a Line assuming that the edges of the Line are edges of the Surface. More...
 

Protected Member Functions

 GeoModelBuilderGeometry (GeoModelBuilder3D &builder, GeoModel3D &geomodel)
 
void assign_region_tet_mesh (index_t region_id, const std::vector< index_t > &tet_vertices)
 
void update_cell_vertex (index_t region_id, const std::vector< index_t > &cells, index_t old_vertex, index_t new_vertex)
 
void duplicate_region_vertices_along_surface (index_t region_id, index_t surface_id)
 
index_t disconnect_region_cells_along_surface_polygons (index_t region_id, index_t surface_id)
 
- Protected Member Functions inherited from RINGMesh::GeoModelBuilderGeometryBase< 3 >
 GeoModelBuilderGeometryBase (GeoModelBuilder< DIMENSION > &builder, GeoModel< DIMENSION > &geomodel)
 
void duplicate_surface_vertices_along_line (index_t surface_id, index_t line_id)
 Duplicates the surface vertices along the fake boundary (NO_ID adjacencies but shared vertices) and duplicate the vertices. More...
 
index_t disconnect_surface_polygons_along_line_edges (index_t surface_id, index_t line_id)
 
void update_polygon_vertex (index_t surface_id, const std::vector< index_t > &polygons, index_t old_vertex, index_t new_vertex)
 

Friends

class GeoModelBuilderBase< 3 >
 
class GeoModelBuilder< 3 >
 

Additional Inherited Members

- Protected Attributes inherited from RINGMesh::GeoModelBuilderGeometryBase< 3 >
GeoModelBuilder< DIMENSION > & builder_
 
GeoModel< DIMENSION > & geomodel_
 
GeoModelAccess< DIMENSION > geomodel_access_
 

Detailed Description

template<>
class RINGMesh::GeoModelBuilderGeometry< 3 >

Definition at line 409 of file geomodel_builder_geometry.h.

Constructor & Destructor Documentation

◆ GeoModelBuilderGeometry()

RINGMesh::GeoModelBuilderGeometry< 3 >::GeoModelBuilderGeometry ( GeoModelBuilder3D &  builder,
GeoModel3D &  geomodel 
)
inlineprotected

Definition at line 491 of file geomodel_builder_geometry.h.

Member Function Documentation

◆ assign_region_tet_mesh()

void RINGMesh::GeoModelBuilderGeometry< 3 >::assign_region_tet_mesh ( index_t  region_id,
const std::vector< index_t > &  tet_vertices 
)
protected

Definition at line 843 of file geomodel_builder_geometry.cpp.

◆ compute_region_adjacencies()

void RINGMesh::GeoModelBuilderGeometry< 3 >::compute_region_adjacencies ( index_t  region_id,
bool  recompute_adjacency = true 
)

Computes and sets the adjacencies between the cells.

The adjacent cell is given for each facet of each cell If there is no neighbor inside the same Region adjacent is set to NO_ID

Parameters
[in]region_idIndex of the region
[in]recompute_adjacencyIf true, recompute the existing adjacencies

Definition at line 1005 of file geomodel_builder_geometry.cpp.

◆ copy_meshes()

void RINGMesh::GeoModelBuilderGeometry< 3 >::copy_meshes ( const GeoModel3D &  geomodel)
override

Definition at line 1081 of file geomodel_builder_geometry.cpp.

◆ create_region_builder()

std::unique_ptr< VolumeMeshBuilder3D > RINGMesh::GeoModelBuilderGeometry< 3 >::create_region_builder ( index_t  region_id)
inline

Create a Mesh3DBuilder for a given region.

Parameters
[in]region_idthe region index
Returns
The created Mesh3DBuilder The client code is responsible for the memory unallocation. You can use the smartpointer Mesh3DBuilder_var.

Definition at line 423 of file geomodel_builder_geometry.h.

◆ create_region_cell()

index_t RINGMesh::GeoModelBuilderGeometry< 3 >::create_region_cell ( index_t  region_id,
CellType  type,
const std::vector< index_t > &  vertex_indices 
)

Definition at line 1072 of file geomodel_builder_geometry.cpp.

◆ create_region_cells()

index_t RINGMesh::GeoModelBuilderGeometry< 3 >::create_region_cells ( index_t  region_id,
CellType  type,
index_t  nb_cells 
)

Creates new cells in the mesh.

Parameters
[in]region_idEntity index
[in]typeType of cell
[in]nb_cellsNumber of cells to creates
Returns
the index of the first created cell

Definition at line 1033 of file geomodel_builder_geometry.cpp.

◆ cut_region_by_surface()

void RINGMesh::GeoModelBuilderGeometry< 3 >::cut_region_by_surface ( index_t  region_id,
index_t  surface_id 
)

Definition at line 961 of file geomodel_builder_geometry.cpp.

◆ cut_regions_by_internal_surfaces()

void RINGMesh::GeoModelBuilderGeometry< 3 >::cut_regions_by_internal_surfaces ( )

Definition at line 973 of file geomodel_builder_geometry.cpp.

◆ delete_mesh_entity_isolated_vertices()

void RINGMesh::GeoModelBuilderGeometry< 3 >::delete_mesh_entity_isolated_vertices ( const gmme_id E_id)
overridevirtual

Reimplemented from RINGMesh::GeoModelBuilderGeometryBase< 3 >.

Definition at line 1055 of file geomodel_builder_geometry.cpp.

◆ delete_region_cells()

void RINGMesh::GeoModelBuilderGeometry< 3 >::delete_region_cells ( index_t  region_id,
const std::vector< bool > &  to_delete,
bool  remove_isolated_vertices 
)

Definition at line 1024 of file geomodel_builder_geometry.cpp.

◆ disconnect_region_cells_along_surface_polygons()

index_t RINGMesh::GeoModelBuilderGeometry< 3 >::disconnect_region_cells_along_surface_polygons ( index_t  region_id,
index_t  surface_id 
)
protected

Definition at line 853 of file geomodel_builder_geometry.cpp.

◆ duplicate_region_vertices_along_surface()

void RINGMesh::GeoModelBuilderGeometry< 3 >::duplicate_region_vertices_along_surface ( index_t  region_id,
index_t  surface_id 
)
protected

Definition at line 890 of file geomodel_builder_geometry.cpp.

◆ set_region_element_geometry()

void RINGMesh::GeoModelBuilderGeometry< 3 >::set_region_element_geometry ( index_t  region_id,
index_t  cell_id,
const std::vector< index_t > &  corners 
)

Definition at line 1041 of file geomodel_builder_geometry.cpp.

◆ set_region_geometry()

void RINGMesh::GeoModelBuilderGeometry< 3 >::set_region_geometry ( index_t  region_id,
const std::vector< vec3 > &  points,
const std::vector< index_t > &  tetras 
)

Set the points and tetras for a region.

Parameters
[in]region_idIndex of the regions
[in]pointsCoordinates of the vertices
[in]tetrasIndices in the vertices vector to build tetras

Definition at line 996 of file geomodel_builder_geometry.cpp.

◆ update_cell_vertex()

void RINGMesh::GeoModelBuilderGeometry< 3 >::update_cell_vertex ( index_t  region_id,
const std::vector< index_t > &  cells,
index_t  old_vertex,
index_t  new_vertex 
)
protected

Definition at line 819 of file geomodel_builder_geometry.cpp.

Friends And Related Function Documentation

◆ GeoModelBuilder< 3 >

friend class GeoModelBuilder< 3 >
friend

Definition at line 413 of file geomodel_builder_geometry.h.

◆ GeoModelBuilderBase< 3 >

friend class GeoModelBuilderBase< 3 >
friend

Definition at line 412 of file geomodel_builder_geometry.h.


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