RINGMesh  Version 5.0.0
A programming library for geological model meshes
RINGMesh Namespace Reference

Classes to build GeoModel from various inputs. More...

Namespaces

 CmdLine
 
 Distance
 
 Geometry
 
 Intersection
 
 Position
 

Classes

class  AABBTree
 AABB tree structure. More...
 
class  AttributeVector
 Vector of pointers to Geogram attributes. More...
 
class  Box
 
class  BoxAABBTree
 
struct  CellLocalFacet
 
class  Contact
 
class  Corner
 A GeoModelEntity of type CORNER. More...
 
class  corner_range
 
class  Edge
 
struct  EdgeLocalVertex
 
struct  ElementImpl
 Basic container for the sparse matrix, i.e. the "elements". More...
 
struct  ElementLocalVertex
 
struct  ElementVertex
 
struct  EnableBitMaskOperators
 
class  entity_range
 
class  EntityType
 
struct  EntityTypeManager
 Global entity manager which could be associated to a geomodel to give access to different manager to handle the entity types. More...
 
class  Factory
 
class  ForbiddenGeologicalEntityType
 this is the GeologicalEntityType defined by default. It is mainly used to test the validity of a created GeologicalEntityType More...
 
class  ForbiddenMeshEntityType
 this is the MeshEntityType defined by default. It is mainly used to test the validity of a created MeshEntityType More...
 
class  GeogramLineMesh
 
class  GeogramLineMeshBuilder
 
class  GeogramPointSetMesh
 
class  GeogramPointSetMeshBuilder
 
class  GeogramSurfaceMesh
 
class  GeogramSurfaceMeshBuilder
 
class  GeogramVolumeMesh
 
class  GeogramVolumeMeshBuilder
 
class  geol_entity_range
 
class  GeologicalEntityType
 The GeologicalEntityType described the type of the Geological entities User can defined there own GeologicalEntityType even if there are some already defined (see geomodel_geological_entities.h Contact, Interface, Layer. More...
 
class  GeologicalTypeManager
 this class contains methods to manage the type of the GeoModelGeologicalEntity. It gives access to the number of geological entities of each type and also give the opportunity to create and manage new one. More...
 
class  GeoModel
 
class  GeoModel< 2 >
 
class  GeoModel< 3 >
 
class  GeoModelAccess
 
class  GeoModelBase
 
class  GeoModelBuilder
 
class  GeoModelBuilder2DFrom3D
 Base class for GeoModel2D building from GeoModel3D. More...
 
class  GeoModelBuilder2DProjection
 Builder of GeoModel2D which project a GeoModel3D onto a plane. More...
 
class  GeoModelBuilder< 2 >
 
class  GeoModelBuilder< 3 >
 
class  GeoModelBuilderBase
 Base class to build or edit a GeoModel. More...
 
class  GeoModelBuilderCopy
 
class  GeoModelBuilderFile
 Abstract interface class to load and build GeoModels from files. More...
 
class  GeoModelBuilderGeology
 
class  GeoModelBuilderGeometry
 
class  GeoModelBuilderGeometry< 3 >
 
class  GeoModelBuilderGeometryBase
 
class  GeoModelBuilderGocad
 
class  GeoModelBuilderInfo
 
class  GeoModelBuilderML
 Build a GeoModel from a Gocad Model3D (file_model.ml) More...
 
class  GeoModelBuilderRemoval
 
class  GeoModelBuilderRemoval< 3 >
 
class  GeoModelBuilderRemovalBase
 Builder tools to remove entities from a GeoModel. More...
 
class  GeoModelBuilderRepair
 Try repairing a supposedly invalid GeoModel. More...
 
class  GeoModelBuilderSurfaceMesh
 To build a GeoModel from a set of disconnected polygonal surfaces. More...
 
class  GeoModelBuilderTopology
 
class  GeoModelBuilderTopology< 2 >
 
class  GeoModelBuilderTopology< 3 >
 
class  GeoModelBuilderTopologyBase
 
class  GeoModelBuilderTSolid
 Builds a meshed GeoModel from a Gocad TSolid (file.so) More...
 
class  GeoModelBuilderTSolidImpl
 
class  GeoModelBuilderTSolidImpl_LightTSolid
 
class  GeoModelBuilderTSolidImpl_TSolid
 
class  GeoModelEntity
 Abstract base class describing one entity of a GeoModel. More...
 
class  GeoModelGeologicalEntity
 
class  GeoModelGeologicalEntityAccess
 
class  GeoModelIOHandler
 
class  GeoModelMesh
 
class  GeoModelMesh< 3 >
 
class  GeoModelMeshBase
 
class  GeoModelMeshCells
 
class  GeoModelMeshCommon
 
class  GeoModelMeshEdges
 
class  GeoModelMeshEntity
 Abstract base class for GeoModelMeshEntity. More...
 
class  GeoModelMeshEntityAccess
 
class  GeoModelMeshEntityConstAccess
 
class  GeoModelMeshPolygons
 
class  GeoModelMeshPolygons< 3 >
 
class  GeoModelMeshPolygonsBase
 
class  GeoModelMeshVertices
 
class  GeoModelMeshVertices< 3 >
 
class  GeoModelMeshVerticesBase
 
class  GeoModelMeshWells
 
struct  gme_id
 Unique identification of a GeoModelEntity in a GeoModel It contains the EntityType and the index of the entity. It is widely used in the code to easily access/modify/set a GeoModelEntity. More...
 
struct  GMEVertex
 Vertex in a GeoModelEntity. More...
 
struct  gmge_id
 This template is a specialization of a gme_id to the GeoModelGeologicalEntity. More...
 
struct  gmme_id
 This template is a specialization of a gme_id to the GeoModelMeshEntity. More...
 
class  GocadBaseParser
 
class  GocadLineParser
 
struct  GocadLoadingStorage
 
class  Interface
 
class  Layer
 
class  Line
 A GeoModelEntity of type LINE. More...
 
class  line_range
 
class  LineAABBTree
 
class  LineMesh
 
class  LineMeshBuilder
 
struct  LineSide
 
class  Logger
 
class  MeshBase
 encapsulate adimensional mesh functionalities in order to provide an API on which we base the RINGMesh algorithms More...
 
class  MeshBaseBuilder
 
class  MeshEntityType
 The MeshEntityType described the type of the meshed entities There are 4 MeshEntityTypes corresponding to the 4 GeoModelMeshEntities: Corner, Line, Surface, Region. More...
 
struct  MeshEntityTypeBoundaryMap
 struct used to map the type of a Mesh Entity to the type of its boundary "Corner" is boundary of "Line" "Line" is boundary of "Surface" "Surface" is boundary of "Region" More...
 
struct  MeshEntityTypeIncidentEntityMap
 struct used to map the type of a Mesh Entity to the type of its incident mesh entity "Line" is incident of "Corner" "Surface" is incident of "Line" "Region" is incident of "Surface" More...
 
class  MeshEntityTypeManager
 
class  MeshEntityTypeManager< 3 >
 
class  MeshEntityTypeManagerBase
 this class contains only static methods to manage the type of the GeoModelMeshEntity. It gives access to the number of meshed entities of each type and also their (in) boundary More...
 
class  MeshEntityTypes
 
class  MeshSet
 
class  MeshSet< 3 >
 
class  MeshSetBase
 
class  MLLineParser
 
struct  MLLoadingStorage
 
class  NNSearch
 
class  PImpl
 
class  PointSetMesh
 
class  PointSetMeshBuilder
 
struct  PolygonLocalEdge
 
class  range
 
class  Region
 A GeoModelEntity of type REGION. More...
 
class  region_range
 
class  RelationshipManager
 this class contains methods to manage relations between Geological and Mesh entities. For instance: A "Contact" can be the parent of one or more "Line" An "Interface" can the parent of one or more "Surface" A "Layer" can be the parent of one or more "Region" More...
 
class  RINGMeshException
 
class  RockFeature
 Manages the RockFeature, which contains a RockType and more informations. More...
 
class  RowImpl
 Basic "Row" of the matrix, this stores the elements of the matrix in a line-oriented way. More...
 
class  SparseMatrix
 
class  SparseMatrix< T, heavy >
 
class  SparseMatrix< T, light >
 
class  SparseMatrixImpl
 This is the parent class for sparse matrices, the main difference between light and heavy type matrices depend on the contents of rows elements: Light will contain type T objects, while heavy an index to access a std::deque. More...
 
class  StratigraphicColumn
 A stratigraphic column is composed of several stratigraphic units. More...
 
class  StratigraphicColumnBuilder
 
class  StratigraphicColumnBuilderFile
 
class  StratigraphicColumnBuilderXML
 
class  StratigraphicColumnIOHandler
 
class  StratigraphicUnit
 Representing Stratigraphic Units Each Unit has a name, two delimiting interfaces with two corresponding relations, a layer, a RockFeature, a minimum thickness and a maximum thickness. A StratigraphicColumn can be a StratigraphicUnit. More...
 
class  SubdividedStratigraphicUnit
 
class  Surface
 
class  Surface< 2 >
 
class  Surface< 3 >
 
class  surface_range
 
class  SurfaceAABBTree
 
class  SurfaceBase
 A GeoModelEntity of type SURFACE. More...
 
class  SurfaceMesh
 
class  SurfaceMesh< 2 >
 
class  SurfaceMesh< 3 >
 
class  SurfaceMeshBase
 
class  SurfaceMeshBuilder
 
struct  SurfaceSide
 
class  TetraGen
 
class  ThreadSafeConsoleLogger
 
class  TSolidLineParser
 
struct  TSolidLoadingStorage
 Structure used to load a GeoModel by GeoModelBuilderTSolid. More...
 
class  UnsubdividedStratigraphicUnit
 
class  UnZipFile
 
struct  VertexMap
 Structure which maps the vertex indices in Gocad::TSolid to the pair (region, index in region) in the RINGMesh::GeoModel. More...
 
class  VolumeAABBTree
 
class  VolumeMesh
 
class  VolumeMeshBuilder
 
class  Well
 
class  WellCorner
 
class  WellEntity
 
class  WellGroup
 
class  WellGroupIOHandler
 
class  WellPart
 
class  ZipFile
 

Typedefs

template<index_t DIMENSION>
using vecn = GEO::vecng< DIMENSION, double >
 
using vec3 = vecn< 3 >
 
using vec2 = vecn< 2 >
 
using MeshEntityTypeMap = std::map< MeshEntityType, MeshEntityType >
 
using GocadLineFactory = Factory< std::string, GocadLineParser, GeoModelBuilderGocad &, GeoModel3D &>
 
using TSolidLineFactory = Factory< std::string, TSolidLineParser, GeoModelBuilderTSolid &, GeoModel3D &>
 
using MLLineFactory = Factory< std::string, MLLineParser, GeoModelBuilderML &, GeoModel3D &>
 
template<index_t DIMENSION>
using GeoModelGeologicalEntityFactory = Factory< GeologicalEntityType, GeoModelGeologicalEntity< DIMENSION >, const GeoModel< DIMENSION > &>
 
template<index_t DIMENSION>
using GeoModelIOHandlerFactory = Factory< std::string, GeoModelIOHandler< DIMENSION > >
 
using WellGroupIOHandlerFactory = Factory< std::string, WellGroupIOHandler >
 
using StratigraphicColumnIOHandlerFactory = Factory< std::string, StratigraphicColumnIOHandler >
 
using VolumeAABBTree3D = VolumeAABBTree< 3 >
 
using GeogramVolumeMesh3D = GeogramVolumeMesh< 3 >
 
using GeogramVolumeMeshBuilder3D = GeogramVolumeMeshBuilder< 3 >
 
using MeshType = std::string
 
template<index_t DIMENSION>
using PointSetMeshFactory = Factory< MeshType, PointSetMesh< DIMENSION > >
 
template<index_t DIMENSION>
using LineMeshFactory = Factory< MeshType, LineMesh< DIMENSION > >
 
template<index_t DIMENSION>
using SurfaceMeshFactory = Factory< MeshType, SurfaceMesh< DIMENSION > >
 
using VolumeMesh3D = VolumeMesh< 3 >
 
template<index_t DIMENSION>
using VolumeMeshFactory = Factory< MeshType, VolumeMesh< DIMENSION > >
 
using VolumeMeshFactory3D = VolumeMeshFactory< 3 >
 
template<index_t DIMENSION>
using PointSetMeshBuilderFactory = Factory< MeshType, PointSetMeshBuilder< DIMENSION >, PointSetMesh< DIMENSION > &>
 
template<index_t DIMENSION>
using LineMeshBuilderFactory = Factory< MeshType, LineMeshBuilder< DIMENSION >, LineMesh< DIMENSION > &>
 
template<index_t DIMENSION>
using SurfaceMeshBuilderFactory = Factory< MeshType, SurfaceMeshBuilder< DIMENSION >, SurfaceMesh< DIMENSION > &>
 
using VolumeMeshBuilder3D = VolumeMeshBuilder< 3 >
 
template<index_t DIMENSION>
using VolumeMeshBuilderFactory = Factory< MeshType, VolumeMeshBuilder< DIMENSION >, VolumeMesh< DIMENSION > &>
 
using VolumeMeshBuilderFactory3D = VolumeMeshBuilderFactory< 3 >
 
using TetraGenFactory = Factory< std::string, TetraGen, GeoModel3D &, index_t >
 

Enumerations

enum  Sign { NEGATIVE = -1, ZERO = 0, POSITIVE = 1 }
 
enum  MatrixType { heavy = 0, light = 1, other = 2 }
 enum of MatrixType, This is useful to further specialize the template in the future More...
 
enum  CellType : index_t {
  CellType::TETRAHEDRON = 0, CellType::HEXAHEDRON = 1, CellType::PRISM = 2, CellType::PYRAMID = 3,
  CellType::UNCLASSIFIED = 4, CellType::UNDEFINED = 5
}
 
enum  PolygonType : index_t { PolygonType::TRIANGLE = 0, PolygonType::QUAD = 1, PolygonType::UNCLASSIFIED = 2, PolygonType::UNDEFINED = 3 }
 
enum  ValidityCheckMode {
  ValidityCheckMode::EMPTY = 0, ValidityCheckMode::FINITE_EXTENSION = 1, ValidityCheckMode::GEOMODEL_CONNECTIVITY = 1 << 1, ValidityCheckMode::GEOLOGICAL_ENTITIES = 1 << 2,
  ValidityCheckMode::SURFACE_LINE_MESH_CONFORMITY = 1 << 3, ValidityCheckMode::REGION_SURFACE_MESH_CONFORMITY = 1 << 4, ValidityCheckMode::MESH_ENTITIES = 1 << 5, ValidityCheckMode::NON_MANIFOLD_EDGES = 1 << 6,
  ValidityCheckMode::POLYGON_INTERSECTIONS = 1 << 7, ValidityCheckMode::GEOLOGY = GEOLOGICAL_ENTITIES, ValidityCheckMode::TOPOLOGY = FINITE_EXTENSION | GEOMODEL_CONNECTIVITY, ValidityCheckMode::GEOMETRY,
  ValidityCheckMode::ALL = TOPOLOGY | GEOMETRY | GEOLOGY
}
 Option to select what are checked. More...
 
enum  MeshQualityMode { INSPHERE_RADIUS_BY_CIRCUMSPHERE_RADIUS, INSPHERE_RADIUS_BY_MAX_EDGE_LENGTH, VOLUME_BY_SUM_SQUARE_EDGE, MIN_SOLID_ANGLE }
 
enum  ROCKTYPE { ROCKTYPE::NONE, ROCKTYPE::MULTIPLE }
 
enum  RELATION {
  RELATION::CONFORMABLE = 0, RELATION::ERODED = 10, RELATION::TRUNCATION = 11, RELATION::TOPLAP = 12,
  RELATION::BASELAP = 20, RELATION::ONLAP = 21, RELATION::DOWNLAP = 22
}
 
enum  STRATIGRAPHIC_PARADIGM { STRATIGRAPHIC_PARADIGM::CHRONOSTRATIGRAPHIC, STRATIGRAPHIC_PARADIGM::BIOSTRATIGRAPHIC, STRATIGRAPHIC_PARADIGM::LITHOSTRATIGRAPHIC, STRATIGRAPHIC_PARADIGM::UNSPECIFIED }
 

Functions

template<typename T , typename container >
index_t find (const container &in, const T &value)
 Returns the position of the first entity matching. More...
 
template<typename T , typename container >
index_t find_sorted (const container &in, const T &value)
 Returns the position of the first entity matching. More...
 
template<typename T , typename container >
bool contains (const container &in, const T &value)
 
template<typename T , typename container >
bool contains_sorted (const container &in, const T &value)
 
template<typename T1 , typename T2 >
void indirect_sort (std::vector< T1 > &input, std::vector< T2 > &output)
 Bubble sorting of input and output vectors according to values of input. More...
 
template<typename CONTAINER , typename CMP >
void sort_unique (CONTAINER &container, const CMP &cmp)
 Sorts a container and suppresses all duplicated entities. More...
 
template<typename CONTAINER >
void sort_unique (CONTAINER &container)
 Sorts a container and suppresses all duplicated entities. More...
 
 ALIAS_2D_AND_3D (Box)
 
void RINGMESH_API configure_geogram ()
 
void RINGMESH_API configure_ringmesh ()
 
void RINGMESH_API default_configure ()
 
void RINGMESH_API print_header_information ()
 
template<typename ACTION >
void parallel_for (index_t size, const ACTION &action)
 
template<index_t DIMENSION>
bool operator== (const vecn< DIMENSION > &u, const vecn< DIMENSION > &v)
 
template<index_t DIMENSION>
bool operator!= (const vecn< DIMENSION > &u, const vecn< DIMENSION > &v)
 
template<index_t DIMENSION>
bool inexact_equal (const vecn< DIMENSION > &v1, const vecn< DIMENSION > &v2, double epsilon)
 
double RINGMESH_API dot_perp (const vec2 &v0, const vec2 &v1)
 
template<typename T >
Sign sign (T x)
 
double RINGMESH_API triangle_signed_area (const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &triangle_normal)
 
template<index_t DIMENSION>
std::tuple< bool, vecn< DIMENSION > > point_segment_projection (const vecn< DIMENSION > &p, const vecn< DIMENSION > &p0, const vecn< DIMENSION > &p1)
 
std::tuple< bool, std::array< double, 4 > > RINGMESH_API tetra_barycentric_coordinates (const vec3 &p, const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &p3)
 
std::tuple< bool, std::array< double, 3 > > RINGMESH_API triangle_barycentric_coordinates (const vec3 &p, const vec3 &p0, const vec3 &p1, const vec3 &p2)
 
std::tuple< bool, std::array< double, 3 > > RINGMESH_API triangle_barycentric_coordinates (const vec2 &p, const vec2 &p0, const vec2 &p1, const vec2 &p2)
 
GEO::Matrix< 4, double > RINGMESH_API rotation_matrix_about_arbitrary_axis (const vec3 &origin, const vec3 &axis, double theta, bool degrees)
 Builds a rotational matrix about an arbitrary axis. More...
 
template<typename T >
std::vector< T > product_matrix_by_vector (const SparseMatrix< T, light > &mat1, const std::vector< T > &mat2)
 
 ALIAS_2D_AND_3D (NNSearch)
 
void RINGMESH_API ringmesh_assertion_failed (const std::string &condition_string, const std::string &file, int line)
 
void RINGMESH_API ringmesh_should_not_have_reached (const std::string &file, int line)
 
template<typename Enum >
auto to_underlying_type (Enum e) -> typename std::underlying_type< Enum >::type
 
template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type operator| (Enum lhs, Enum rhs)
 
template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type operator & (Enum lhs, Enum rhs)
 
template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type operator^ (Enum lhs, Enum rhs)
 
template<typename Enum >
bool enum_contains (Enum lhs, Enum rhs)
 
template<typename T , typename U = T>
GEO::vector< U > copy_std_vector_to_geo_vector (const std::vector< T > &in, index_t from, index_t to)
 
template<typename T , typename U = T>
GEO::vector< U > copy_std_vector_to_geo_vector (const std::vector< T > &in)
 
void RINGMESH_API ringmesh_mesh_io_initialize ()
 complement the available MeshIOHandler More...
 
double RINGMESH_API mesh_cell_signed_volume (const GEO::Mesh &M, index_t c)
 
double RINGMESH_API mesh_cell_volume (const GEO::Mesh &M, index_t c)
 
vec3 RINGMESH_API mesh_cell_facet_barycenter (const GEO::Mesh &M, index_t cell, index_t f)
 
vec3 RINGMESH_API mesh_cell_barycenter (const GEO::Mesh &M, index_t cell)
 
void RINGMESH_API print_bounded_attributes (const GEO::Mesh &M)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshEntityAccess)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelGeologicalEntityAccess)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModel)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshEntity)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Corner)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Line)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Surface)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Region)
 
 FORWARD_DECLARATION_DIMENSION_STRUCT (EntityTypeManager)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderTopologyBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderTopology)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderGeology)
 
 ALIAS_2D_AND_3D (MeshEntityTypeManager)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (WellGroup)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelGeologicalEntity)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelAccess)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderGeometryBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderGeometry)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderRemovalBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderRemoval)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderRepair)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderCopy)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderInfo)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelBuilderGM)
 
 ALIAS_2D_AND_3D (GeoModelMeshEntity)
 
 ALIAS_2D_AND_3D (Region)
 
 ALIAS_2D_AND_3D (GeoModelBase)
 
 ALIAS_2D_AND_3D (GeoModel)
 
 ALIAS_3D (GeoModel)
 
template<index_t DIMENSION>
void print_geomodel (const GeoModel< DIMENSION > &geomodel)
 Print in the console the geomodel statistics. More...
 
template<index_t DIMENSION>
void print_geomodel_mesh_stats (const GeoModel< DIMENSION > &geomodel)
 
void RINGMESH_API print_geomodel_mesh_cell_volumes (const GeoModel3D &geomodel)
 
template<index_t DIMENSION>
index_t find_mesh_entity_id_from_name (const GeoModel< DIMENSION > &geomodel, const MeshEntityType &gmme_type, const std::string &name)
 
template<index_t DIMENSION>
index_t find_geological_entity_id_from_name (const RINGMesh::GeoModel< DIMENSION > &geomodel, const RINGMesh::GeologicalEntityType &gmge_type, const std::string &name)
 
template<index_t DIMENSION>
void translate (GeoModel< DIMENSION > &geomodel, const vecn< DIMENSION > &translation_vector)
 Translates the boundary geomodel by a vector. More...
 
void RINGMESH_API rotate (GeoModel3D &geomodel, const vec3 &origin, const vec3 &axis, double angle, bool degrees=false)
 Rotate the boundary geomodel. More...
 
 ALIAS_2D_AND_3D (GeoModelBuilder)
 
 ALIAS_2D_AND_3D (GeoModelBuilderGeometryBase)
 
void RINGMESH_API initialize_gocad_import_factories ()
 
 ALIAS_2D_AND_3D (GeoModelBuilderRemovalBase)
 
 ALIAS_2D_AND_3D (GeoModelBuilderRepair)
 
 ALIAS_2D_AND_3D (GeoModelBuilderTopologyBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (UniverseAccess)
 
 ALIAS_2D_AND_3D (GeoModelEntity)
 
 ALIAS_2D_AND_3D (GeoModelGeologicalEntity)
 
 ALIAS_2D_AND_3D (GeoModelGeologicalEntityFactory)
 
 ALIAS_2D_AND_3D (Contact)
 
 ALIAS_2D_AND_3D (Interface)
 
 ALIAS_2D_AND_3D (Layer)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelEntity)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshEdges)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshWells)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshPolygons)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshPolygonsBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshCells)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMesh)
 
 ALIAS_3D (GeoModelMesh)
 
 ALIAS_2D_AND_3D (GeoModelMeshVerticesBase)
 
 ALIAS_2D_AND_3D (GeoModelMeshVertices)
 
 ALIAS_2D_AND_3D (GeoModelMeshPolygons)
 
 ALIAS_2D_AND_3D (GeoModelMeshEdges)
 
 ALIAS_2D_AND_3D (GeoModelMeshWells)
 
 ALIAS_2D_AND_3D (GeoModelMeshCells)
 
 ALIAS_2D_AND_3D (GeoModelMesh)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeoModelMeshEntityConstAccess)
 
 ALIAS_2D_AND_3D (Corner)
 
 ALIAS_2D_AND_3D (Line)
 
 ALIAS_2D_AND_3D (Surface)
 
 ALIAS_3D (Region)
 
 ALIAS_2D_AND_3D (GeoModelMeshEntityAccess)
 
 ENABLE_BITMASK_OPERATORS (ValidityCheckMode)
 
void RINGMESH_API set_validity_errors_directory (const std::string &directory)
 Set the directory where debugging information on invalid entities shall be stored. More...
 
std::string RINGMESH_API get_validity_errors_directory ()
 Get the directory where debugging information on invalid entities shall be stored. More...
 
template<index_t DIMENSION>
bool is_geomodel_valid (const GeoModel< DIMENSION > &geomodel, ValidityCheckMode validity_check_mode=ValidityCheckMode::ALL)
 Check global geomodel validity. More...
 
template<index_t DIMENSION>
bool are_geomodel_mesh_entities_mesh_valid (const GeoModel< DIMENSION > &geomodel)
 Check the validity of all individual entity meshes. More...
 
template<index_t DIMENSION>
bool are_geomodel_mesh_entities_connectivity_valid (const GeoModel< DIMENSION > &geomodel)
 Check the connectivity of mesh entities. More...
 
template<index_t DIMENSION>
bool are_geomodel_mesh_entities_parent_valid (const GeoModel< DIMENSION > &geomodel)
 
template<index_t DIMENSION>
bool are_geomodel_geological_entities_valid (const GeoModel< DIMENSION > &geomodel)
 
void RINGMESH_API compute_prop_tet_mesh_quality (MeshQualityMode mesh_qual_mode, const GeoModel3D &geomodel)
 Computes and stores mesh quality in the GeoModel. More...
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Interface)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Layer)
 
 ALIAS_3D (Interface)
 
 ALIAS_3D (Layer)
 
 ALIAS_3D (WellGroup)
 
bool RINGMESH_API compare_files (const std::string &f1, const std::string &f2)
 
template<index_t DIMENSION>
bool geomodel_load (GeoModel< DIMENSION > &geomodel, const std::string &filename)
 
template<index_t DIMENSION>
void geomodel_save (const GeoModel< DIMENSION > &geomodel, const std::string &filename)
 
void RINGMESH_API well_load (const std::string &filename, WellGroup3D &wells)
 
index_t RINGMESH_API find_geomodel_dimension (const std::string &filename)
 
 ALIAS_2D_AND_3D (GeoModelIOHandler)
 
 ALIAS_2D_AND_3D (GeoModelIOHandlerFactory)
 
void RINGMESH_API mesh_initialize ()
 
 FORWARD_DECLARATION_DIMENSION_CLASS (MeshBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (LineMesh)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (SurfaceMeshBase)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (VolumeMesh)
 
 ALIAS_2D_AND_3D (BoxAABBTree)
 
 ALIAS_2D_AND_3D (LineAABBTree)
 
 ALIAS_2D_AND_3D (SurfaceAABBTree)
 
template<index_t DIMENSION>
double inner_point_box_distance (const vecn< DIMENSION > &p, const Box< DIMENSION > &B)
 
template<index_t DIMENSION>
double point_box_signed_distance (const vecn< DIMENSION > &p, const Box< DIMENSION > &B)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeogramPointSetMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeogramLineMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeogramSurfaceMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (GeogramVolumeMeshBuilder)
 
 ALIAS_2D_AND_3D (GeogramPointSetMesh)
 
 ALIAS_2D_AND_3D (GeogramLineMesh)
 
 ALIAS_2D_AND_3D (GeogramSurfaceMesh)
 
void register_geogram_mesh ()
 
 ALIAS_2D_AND_3D (GeogramPointSetMeshBuilder)
 
 ALIAS_2D_AND_3D (GeogramLineMeshBuilder)
 
 ALIAS_2D_AND_3D (GeogramSurfaceMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (MeshBaseBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (PointSetMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (LineMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (SurfaceMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (VolumeMeshBuilder)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (SurfaceMesh)
 
 ALIAS_2D_AND_3D (MeshBase)
 
 ALIAS_2D_AND_3D (PointSetMesh)
 
 ALIAS_2D_AND_3D (PointSetMeshFactory)
 
 ALIAS_2D_AND_3D (LineMesh)
 
 ALIAS_2D_AND_3D (LineMeshFactory)
 
 ALIAS_2D_AND_3D (SurfaceMeshBase)
 
 ALIAS_2D_AND_3D (SurfaceMeshFactory)
 
 ALIAS_2D_AND_3D (SurfaceMesh)
 
 ALIAS_2D_AND_3D (MeshBaseBuilder)
 
 ALIAS_2D_AND_3D (PointSetMeshBuilder)
 
 ALIAS_2D_AND_3D (PointSetMeshBuilderFactory)
 
 ALIAS_2D_AND_3D (LineMeshBuilder)
 
 ALIAS_2D_AND_3D (LineMeshBuilderFactory)
 
 ALIAS_2D_AND_3D (SurfaceMeshBuilder)
 
 ALIAS_2D_AND_3D (SurfaceMeshBuilderFactory)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (Well)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (NNSearch)
 
 FORWARD_DECLARATION_DIMENSION_CLASS (PointSetMesh)
 
 ALIAS_2D_AND_3D (WellEntity)
 
 ALIAS_2D_AND_3D (WellCorner)
 
 ALIAS_2D_AND_3D (WellPart)
 
 ALIAS_2D_AND_3D (Edge)
 
 ALIAS_2D_AND_3D (Well)
 
 ALIAS_2D_AND_3D (WellGroup)
 
bool operator== (const vec3 &u, const vec3 &v)
 
bool operator!= (const vec3 &u, const vec3 &v)
 
std::tuple< double, vec3point_segment_distance (const vec3 &p, const vec3 &p0, const vec3 &p1)
 
template std::tuple< bool, vecn< 2 > > RINGMESH_API point_segment_projection (const vecn< 2 > &, const vecn< 2 > &, const vecn< 2 > &)
 
template std::tuple< bool, vecn< 3 > > RINGMESH_API point_segment_projection (const vecn< 3 > &, const vecn< 3 > &, const vecn< 3 > &)
 
template class RINGMESH_API EXPORT_IMPLEMENTATION (NNSearch< 2 >)
 
template class RINGMESH_API EXPORT_IMPLEMENTATION (NNSearch< 3 >)
 
template<index_t DIMENSION>
void print_nb_mesh_entities (const GeoModel< DIMENSION > &geomodel, const MeshEntityType &type)
 
template<index_t DIMENSION>
void print_nb_geological_entities (const GeoModel< DIMENSION > &geomodel, const GeologicalEntityType &type)
 
template<>
void RINGMESH_API print_geomodel_mesh_stats (const GeoModel2D &geomodel)
 
template<>
void RINGMESH_API print_geomodel_mesh_stats (const GeoModel3D &geomodel)
 
template void RINGMESH_API print_geomodel (const GeoModel2D &)
 
template index_t RINGMESH_API find_mesh_entity_id_from_name (const GeoModel2D &, const MeshEntityType &, const std::string &)
 
template index_t RINGMESH_API find_geological_entity_id_from_name (const RINGMesh::GeoModel2D &, const RINGMesh::GeologicalEntityType &, const std::string &)
 
template void RINGMESH_API translate (GeoModel2D &, const vec2 &)
 
template void RINGMESH_API print_geomodel (const GeoModel3D &)
 
template index_t RINGMESH_API find_mesh_entity_id_from_name (const GeoModel3D &, const MeshEntityType &, const std::string &)
 
template index_t RINGMESH_API find_geological_entity_id_from_name (const RINGMesh::GeoModel3D &, const RINGMesh::GeologicalEntityType &, const std::string &)
 
template void RINGMESH_API translate (GeoModel3D &, const vec3 &)
 
template<index_t DIMENSION>
index_t nb_entity_vertices (const GeoModel< DIMENSION > &geomodel, const MeshEntityType &entity_type)
 
template<index_t DIMENSION>
bool has_geomodel_finite_extension (const GeoModel< DIMENSION > &geomodel)
 Check that the geomodel has a finite extension. More...
 
template<>
bool RINGMESH_API has_geomodel_finite_extension< 2 > (const GeoModel2D &geomodel)
 
template<>
bool RINGMESH_API has_geomodel_finite_extension< 3 > (const GeoModel3D &geomodel)
 
template bool RINGMESH_API is_geomodel_valid< 2 > (const GeoModel2D &, ValidityCheckMode)
 
template bool RINGMESH_API are_geomodel_mesh_entities_mesh_valid (const GeoModel2D &)
 
template bool RINGMESH_API are_geomodel_mesh_entities_connectivity_valid (const GeoModel2D &)
 
template bool RINGMESH_API are_geomodel_mesh_entities_parent_valid (const GeoModel2D &)
 
template bool RINGMESH_API are_geomodel_geological_entities_valid (const GeoModel2D &)
 
template bool RINGMESH_API is_geomodel_valid< 3 > (const GeoModel3D &, ValidityCheckMode)
 
template bool RINGMESH_API are_geomodel_mesh_entities_mesh_valid (const GeoModel3D &)
 
template bool RINGMESH_API are_geomodel_mesh_entities_connectivity_valid (const GeoModel3D &)
 
template bool RINGMESH_API are_geomodel_mesh_entities_parent_valid (const GeoModel3D &)
 
template bool RINGMESH_API are_geomodel_geological_entities_valid (const GeoModel3D &)
 
template bool RINGMESH_API geomodel_load (GeoModel2D &, const std::string &)
 
template void RINGMESH_API geomodel_save (const GeoModel2D &, const std::string &)
 
template bool RINGMESH_API geomodel_load (GeoModel3D &, const std::string &)
 
template void RINGMESH_API geomodel_save (const GeoModel3D &, const std::string &)
 
void well_load (const std::string &filename, WellGroup< 3 > &wells)
 

Variables

template class RINGMESH_API Box< 2 >
 
template class RINGMESH_API Box< 3 >
 
template class RINGMESH_API NNSearch< 2 >
 
template class RINGMESH_API NNSearch< 3 >
 
template class RINGMESH_API MeshEntityTypes< 2 >
 
template class RINGMESH_API MeshEntityTypeManagerBase< 2 >
 
template class RINGMESH_API MeshEntityTypeManager< 2 >
 
template struct RINGMESH_API MeshEntityTypeIncidentEntityMap< 2 >
 
template struct RINGMESH_API MeshEntityTypeBoundaryMap< 2 >
 
template class RINGMESH_API MeshEntityTypes< 3 >
 
template class RINGMESH_API MeshEntityTypeManagerBase< 3 >
 
template struct RINGMESH_API MeshEntityTypeIncidentEntityMap< 3 >
 
template struct RINGMESH_API MeshEntityTypeBoundaryMap< 3 >
 
template class RINGMESH_API GeoModel< 2 >
 
template class RINGMESH_API GeoModelBase< 2 >
 
template class RINGMESH_API GeoModelAccess< 2 >
 
template class RINGMESH_API GeoModelBase< 3 >
 
template class RINGMESH_API GeoModelAccess< 3 >
 
template class RINGMESH_API GeoModelBuilderBase< 2 >
 
template class RINGMESH_API GeoModelBuilderInfo< 2 >
 
template class RINGMESH_API GeoModelBuilderCopy< 2 >
 
template class RINGMESH_API GeoModelBuilderBase< 3 >
 
template class RINGMESH_API GeoModelBuilderInfo< 3 >
 
template class RINGMESH_API GeoModelBuilderCopy< 3 >
 
template class RINGMESH_API GeoModelBuilderFile< 2 >
 
template class RINGMESH_API GeoModelBuilderFile< 3 >
 
template class RINGMESH_API GeoModelBuilderGeology< 2 >
 
template class RINGMESH_API GeoModelBuilderGeology< 3 >
 
template class RINGMESH_API GeoModelBuilderGeometry< 2 >
 
template class RINGMESH_API GeoModelBuilderGeometryBase< 2 >
 
template class RINGMESH_API GeoModelBuilderGeometryBase< 3 >
 
Factory< std::string, MLLineParser, GeoModelBuilderML &, GeoModel3D &> ml_factory
 
Factory< std::string, TSolidLineParser, GeoModelBuilderTSolid &, GeoModel3D &> tsolid_factory
 
template class RINGMESH_API GeoModelBuilderRemovalBase< 2 >
 
template class RINGMESH_API GeoModelBuilderRemoval< 2 >
 
template class RINGMESH_API GeoModelBuilderRemovalBase< 3 >
 
template class RINGMESH_API GeoModelBuilderRepair< 2 >
 
template class RINGMESH_API GeoModelBuilderRepair< 3 >
 
template class RINGMESH_API GeoModelBuilderTopologyBase< 2 >
 
template class RINGMESH_API GeoModelBuilderTopologyBase< 3 >
 
template class RINGMESH_API GeoModelEntity< 2 >
 
template class RINGMESH_API GeoModelEntity< 3 >
 
template class RINGMESH_API GeoModelGeologicalEntity< 2 >
 
template class RINGMESH_API GeoModelGeologicalEntityAccess< 2 >
 
template class RINGMESH_API GeoModelGeologicalEntity< 3 >
 
template class RINGMESH_API GeoModelGeologicalEntityAccess< 3 >
 
template class RINGMESH_API GeoModelMeshBase< 2 >
 
template class RINGMESH_API GeoModelMesh< 2 >
 
template class RINGMESH_API GeoModelMeshVerticesBase< 2 >
 
template class RINGMESH_API GeoModelMeshWells< 2 >
 
template class RINGMESH_API GeoModelMeshEdges< 2 >
 
template class RINGMESH_API GeoModelMeshPolygonsBase< 2 >
 
template class RINGMESH_API GeoModelMeshBase< 3 >
 
template class RINGMESH_API GeoModelMeshVerticesBase< 3 >
 
template class RINGMESH_API GeoModelMeshWells< 3 >
 
template class RINGMESH_API GeoModelMeshEdges< 3 >
 
template class RINGMESH_API GeoModelMeshPolygonsBase< 3 >
 
template class RINGMESH_API GeoModelMeshCells< 3 >
 
template class RINGMESH_API GeoModelMeshEntity< 2 >
 
template class RINGMESH_API GeoModelMeshEntityAccess< 2 >
 
template class RINGMESH_API Corner< 2 >
 
template class RINGMESH_API Line< 2 >
 
template class RINGMESH_API SurfaceBase< 2 >
 
template class RINGMESH_API GeoModelMeshEntity< 3 >
 
template class RINGMESH_API GeoModelMeshEntityAccess< 3 >
 
template class RINGMESH_API Corner< 3 >
 
template class RINGMESH_API Line< 3 >
 
template class RINGMESH_API SurfaceBase< 3 >
 
template class RINGMESH_API Region< 3 >
 
template class RINGMESH_API GeoModelIOHandler< 2 >
 
template class RINGMESH_API GeoModelIOHandler< 3 >
 
template class RINGMESH_API AABBTree< 2 >
 
template class RINGMESH_API BoxAABBTree< 2 >
 
template class RINGMESH_API LineAABBTree< 2 >
 
template class RINGMESH_API SurfaceAABBTree< 2 >
 
template class RINGMESH_API AABBTree< 3 >
 
template class RINGMESH_API BoxAABBTree< 3 >
 
template class RINGMESH_API LineAABBTree< 3 >
 
template class RINGMESH_API SurfaceAABBTree< 3 >
 
template class RINGMESH_API VolumeAABBTree< 3 >
 
template class RINGMESH_API PointSetMesh< 2 >
 
template class RINGMESH_API LineMesh< 2 >
 
template class RINGMESH_API SurfaceMeshBase< 2 >
 
template class RINGMESH_API MeshSetBase< 2 >
 
template class RINGMESH_API MeshSet< 2 >
 
template class RINGMESH_API PointSetMesh< 3 >
 
template class RINGMESH_API LineMesh< 3 >
 
template class RINGMESH_API SurfaceMeshBase< 3 >
 
template class RINGMESH_API VolumeMesh< 3 >
 
template class RINGMESH_API MeshSetBase< 3 >
 
template class RINGMESH_API WellEntity< 2 >
 
template class RINGMESH_API WellCorner< 2 >
 
template class RINGMESH_API WellPart< 2 >
 
template class RINGMESH_API Well< 2 >
 
template class RINGMESH_API WellGroup< 2 >
 
template class RINGMESH_API WellEntity< 3 >
 
template class RINGMESH_API WellCorner< 3 >
 
template class RINGMESH_API WellPart< 3 >
 
template class RINGMESH_API Well< 3 >
 
template class RINGMESH_API WellGroup< 3 >
 

Detailed Description

Classes to build GeoModel from various inputs.

Structures and classes used to index elements in a GeoModel, in the meshes of its entities etc.

Builder tools to edit and build GeoModel topology (connectivity, entity creation and deletion, ...).

Builder tools to remove entities from a GeoModel.

Builder tools to edit and build GeoModel geometry (into meshes)

Classes to build GeoModel geological entities.

Author
Jeanne Pellerin
Pierre Anquez
Antoine Mazuyer
Pierre Anquez
Jeanne Pellerin & Arnaud Botella
Author
Benjamin Chauvin This code is inspired from http://people.sc.fsu.edu/~jburkardt/cpp_src/tet_mesh_quality/tet_mesh_quality.html
Francois Bonneau

Typedef Documentation

◆ GeogramVolumeMesh3D

Definition at line 305 of file geogram_mesh.h.

◆ GeogramVolumeMeshBuilder3D

◆ GeoModelGeologicalEntityFactory

template<index_t DIMENSION>
using RINGMesh::GeoModelGeologicalEntityFactory = typedef Factory< GeologicalEntityType, GeoModelGeologicalEntity< DIMENSION >, const GeoModel< DIMENSION >& >

Definition at line 199 of file geomodel_geological_entity.h.

◆ GeoModelIOHandlerFactory

template<index_t DIMENSION>
using RINGMesh::GeoModelIOHandlerFactory = typedef Factory< std::string, GeoModelIOHandler< DIMENSION > >

Definition at line 150 of file io.h.

◆ GocadLineFactory

using RINGMesh::GocadLineFactory = typedef Factory< std::string, GocadLineParser, GeoModelBuilderGocad&, GeoModel3D& >

Definition at line 167 of file geomodel_builder_gocad.h.

◆ LineMeshBuilderFactory

template<index_t DIMENSION>
using RINGMesh::LineMeshBuilderFactory = typedef Factory< MeshType, LineMeshBuilder< DIMENSION >, LineMesh< DIMENSION >& >

Definition at line 510 of file mesh_builder.h.

◆ LineMeshFactory

template<index_t DIMENSION>
using RINGMesh::LineMeshFactory = typedef Factory< MeshType, LineMesh< DIMENSION > >

Definition at line 366 of file mesh.h.

◆ MeshEntityTypeMap

Definition at line 63 of file entity_type_manager.h.

◆ MeshType

using RINGMesh::MeshType = typedef std::string

Definition at line 69 of file mesh.h.

◆ MLLineFactory

using RINGMesh::MLLineFactory = typedef Factory< std::string, MLLineParser, GeoModelBuilderML&, GeoModel3D& >

Definition at line 730 of file geomodel_builder_gocad.h.

◆ PointSetMeshBuilderFactory

template<index_t DIMENSION>
using RINGMesh::PointSetMeshBuilderFactory = typedef Factory< MeshType, PointSetMeshBuilder< DIMENSION >, PointSetMesh< DIMENSION >& >

Definition at line 329 of file mesh_builder.h.

◆ PointSetMeshFactory

template<index_t DIMENSION>
using RINGMesh::PointSetMeshFactory = typedef Factory< MeshType, PointSetMesh< DIMENSION > >

Definition at line 233 of file mesh.h.

◆ StratigraphicColumnIOHandlerFactory

Definition at line 214 of file io.h.

◆ SurfaceMeshBuilderFactory

template<index_t DIMENSION>
using RINGMesh::SurfaceMeshBuilderFactory = typedef Factory< MeshType, SurfaceMeshBuilder< DIMENSION >, SurfaceMesh< DIMENSION >& >

Definition at line 893 of file mesh_builder.h.

◆ SurfaceMeshFactory

template<index_t DIMENSION>
using RINGMesh::SurfaceMeshFactory = typedef Factory< MeshType, SurfaceMesh< DIMENSION > >

Definition at line 747 of file mesh.h.

◆ TetraGenFactory

using RINGMesh::TetraGenFactory = typedef Factory< std::string, TetraGen, GeoModel3D&, index_t >

Definition at line 128 of file tetra_gen.h.

◆ TSolidLineFactory

using RINGMesh::TSolidLineFactory = typedef Factory< std::string, TSolidLineParser, GeoModelBuilderTSolid&, GeoModel3D& >

Definition at line 540 of file geomodel_builder_gocad.h.

◆ vec2

using RINGMesh::vec2 = typedef vecn< 2 >

Definition at line 78 of file types.h.

◆ vec3

using RINGMesh::vec3 = typedef vecn< 3 >

Definition at line 76 of file types.h.

◆ vecn

template<index_t DIMENSION>
using RINGMesh::vecn = typedef GEO::vecng< DIMENSION, double >

Definition at line 74 of file types.h.

◆ VolumeAABBTree3D

Definition at line 406 of file aabb.h.

◆ VolumeMesh3D

using RINGMesh::VolumeMesh3D = typedef VolumeMesh< 3 >

Definition at line 1192 of file mesh.h.

◆ VolumeMeshBuilder3D

Definition at line 1158 of file mesh_builder.h.

◆ VolumeMeshBuilderFactory

template<index_t DIMENSION>
using RINGMesh::VolumeMeshBuilderFactory = typedef Factory< MeshType, VolumeMeshBuilder< DIMENSION >, VolumeMesh< DIMENSION >& >

Definition at line 1163 of file mesh_builder.h.

◆ VolumeMeshBuilderFactory3D

Definition at line 1165 of file mesh_builder.h.

◆ VolumeMeshFactory

template<index_t DIMENSION>
using RINGMesh::VolumeMeshFactory = typedef Factory< MeshType, VolumeMesh< DIMENSION > >

Definition at line 1195 of file mesh.h.

◆ VolumeMeshFactory3D

Definition at line 1196 of file mesh.h.

◆ WellGroupIOHandlerFactory

Definition at line 180 of file io.h.

Enumeration Type Documentation

◆ CellType

enum RINGMesh::CellType : index_t
strong

enum defining the type of cell in region

Enumerator
TETRAHEDRON 
HEXAHEDRON 
PRISM 
PYRAMID 
UNCLASSIFIED 
UNDEFINED 

Definition at line 89 of file types.h.

◆ MatrixType

enum of MatrixType, This is useful to further specialize the template in the future

Enumerator
heavy 
light 
other 

Definition at line 54 of file matrix.h.

◆ MeshQualityMode

Enumerator
INSPHERE_RADIUS_BY_CIRCUMSPHERE_RADIUS 
INSPHERE_RADIUS_BY_MAX_EDGE_LENGTH 
VOLUME_BY_SUM_SQUARE_EDGE 
MIN_SOLID_ANGLE 

Definition at line 55 of file mesh_quality.h.

◆ PolygonType

enum RINGMesh::PolygonType : index_t
strong

enum defining the type of polygon in surface.

  • UNCLASSIFIED_POLYGON may be either a connector or more complex polygon that is not specified.
  • UNDEFINED_POLYGON means that the polygon is not defined and cannot be used.
Enumerator
TRIANGLE 
QUAD 
UNCLASSIFIED 
UNDEFINED 

Definition at line 105 of file types.h.

◆ RELATION

enum RINGMesh::RELATION
strong
Enumerator
CONFORMABLE 
ERODED 
TRUNCATION 
TOPLAP 
BASELAP 
ONLAP 
DOWNLAP 

Definition at line 121 of file stratigraphic_column.h.

◆ ROCKTYPE

enum RINGMesh::ROCKTYPE
strong
Enumerator
NONE 
MULTIPLE 

Definition at line 63 of file stratigraphic_column.h.

◆ Sign

Enumerator
NEGATIVE 
ZERO 
POSITIVE 

Definition at line 77 of file geometry.h.

◆ STRATIGRAPHIC_PARADIGM

Enumerator
CHRONOSTRATIGRAPHIC 
BIOSTRATIGRAPHIC 
LITHOSTRATIGRAPHIC 
UNSPECIFIED 

Definition at line 332 of file stratigraphic_column.h.

◆ ValidityCheckMode

Option to select what are checked.

Enumerator
EMPTY 
FINITE_EXTENSION 
GEOMODEL_CONNECTIVITY 
GEOLOGICAL_ENTITIES 
SURFACE_LINE_MESH_CONFORMITY 
REGION_SURFACE_MESH_CONFORMITY 
MESH_ENTITIES 
NON_MANIFOLD_EDGES 
POLYGON_INTERSECTIONS 
GEOLOGY 
TOPOLOGY 
GEOMETRY 
ALL 

Definition at line 55 of file geomodel_validity.h.

Function Documentation

◆ ALIAS_2D_AND_3D() [1/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshEntity  )

◆ ALIAS_2D_AND_3D() [2/61]

RINGMesh::ALIAS_2D_AND_3D ( Region  )

◆ ALIAS_2D_AND_3D() [3/61]

RINGMesh::ALIAS_2D_AND_3D ( WellEntity  )

◆ ALIAS_2D_AND_3D() [4/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelEntity  )

◆ ALIAS_2D_AND_3D() [5/61]

RINGMesh::ALIAS_2D_AND_3D ( WellCorner  )

◆ ALIAS_2D_AND_3D() [6/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramPointSetMesh  )

◆ ALIAS_2D_AND_3D() [7/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramPointSetMeshBuilder  )

◆ ALIAS_2D_AND_3D() [8/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelIOHandler  )

◆ ALIAS_2D_AND_3D() [9/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelIOHandlerFactory  )

◆ ALIAS_2D_AND_3D() [10/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramLineMesh  )

◆ ALIAS_2D_AND_3D() [11/61]

RINGMesh::ALIAS_2D_AND_3D ( NNSearch  )

◆ ALIAS_2D_AND_3D() [12/61]

RINGMesh::ALIAS_2D_AND_3D ( Box  )

◆ ALIAS_2D_AND_3D() [13/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBuilderTopologyBase  )

◆ ALIAS_2D_AND_3D() [14/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramLineMeshBuilder  )

◆ ALIAS_2D_AND_3D() [15/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelGeologicalEntity  )

◆ ALIAS_2D_AND_3D() [16/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramSurfaceMesh  )

◆ ALIAS_2D_AND_3D() [17/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBuilder  )

◆ ALIAS_2D_AND_3D() [18/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelGeologicalEntityFactory  )

◆ ALIAS_2D_AND_3D() [19/61]

RINGMesh::ALIAS_2D_AND_3D ( MeshBase  )

◆ ALIAS_2D_AND_3D() [20/61]

RINGMesh::ALIAS_2D_AND_3D ( WellPart  )

◆ ALIAS_2D_AND_3D() [21/61]

RINGMesh::ALIAS_2D_AND_3D ( MeshEntityTypeManager  )

◆ ALIAS_2D_AND_3D() [22/61]

RINGMesh::ALIAS_2D_AND_3D ( Contact  )

◆ ALIAS_2D_AND_3D() [23/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBuilderRepair  )

◆ ALIAS_2D_AND_3D() [24/61]

RINGMesh::ALIAS_2D_AND_3D ( PointSetMesh  )

◆ ALIAS_2D_AND_3D() [25/61]

RINGMesh::ALIAS_2D_AND_3D ( PointSetMeshFactory  )

◆ ALIAS_2D_AND_3D() [26/61]

RINGMesh::ALIAS_2D_AND_3D ( Edge  )

◆ ALIAS_2D_AND_3D() [27/61]

RINGMesh::ALIAS_2D_AND_3D ( Interface  )

◆ ALIAS_2D_AND_3D() [28/61]

RINGMesh::ALIAS_2D_AND_3D ( Layer  )

◆ ALIAS_2D_AND_3D() [29/61]

RINGMesh::ALIAS_2D_AND_3D ( BoxAABBTree  )

◆ ALIAS_2D_AND_3D() [30/61]

RINGMesh::ALIAS_2D_AND_3D ( GeogramSurfaceMeshBuilder  )

◆ ALIAS_2D_AND_3D() [31/61]

RINGMesh::ALIAS_2D_AND_3D ( MeshBaseBuilder  )

◆ ALIAS_2D_AND_3D() [32/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBase  )

◆ ALIAS_2D_AND_3D() [33/61]

RINGMesh::ALIAS_2D_AND_3D ( LineAABBTree  )

◆ ALIAS_2D_AND_3D() [34/61]

RINGMesh::ALIAS_2D_AND_3D ( PointSetMeshBuilder  )

◆ ALIAS_2D_AND_3D() [35/61]

RINGMesh::ALIAS_2D_AND_3D ( PointSetMeshBuilderFactory  )

◆ ALIAS_2D_AND_3D() [36/61]

RINGMesh::ALIAS_2D_AND_3D ( LineMesh  )

◆ ALIAS_2D_AND_3D() [37/61]

RINGMesh::ALIAS_2D_AND_3D ( LineMeshFactory  )

◆ ALIAS_2D_AND_3D() [38/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceAABBTree  )

◆ ALIAS_2D_AND_3D() [39/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBuilderGeometryBase  )

◆ ALIAS_2D_AND_3D() [40/61]

RINGMesh::ALIAS_2D_AND_3D ( Well  )

◆ ALIAS_2D_AND_3D() [41/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModel  )

◆ ALIAS_2D_AND_3D() [42/61]

RINGMesh::ALIAS_2D_AND_3D ( WellGroup  )

◆ ALIAS_2D_AND_3D() [43/61]

RINGMesh::ALIAS_2D_AND_3D ( LineMeshBuilder  )

◆ ALIAS_2D_AND_3D() [44/61]

RINGMesh::ALIAS_2D_AND_3D ( Corner  )

◆ ALIAS_2D_AND_3D() [45/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshVerticesBase  )

◆ ALIAS_2D_AND_3D() [46/61]

RINGMesh::ALIAS_2D_AND_3D ( LineMeshBuilderFactory  )

◆ ALIAS_2D_AND_3D() [47/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshVertices  )

◆ ALIAS_2D_AND_3D() [48/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelBuilderRemovalBase  )

◆ ALIAS_2D_AND_3D() [49/61]

RINGMesh::ALIAS_2D_AND_3D ( Line  )

◆ ALIAS_2D_AND_3D() [50/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceMeshBase  )

◆ ALIAS_2D_AND_3D() [51/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceMeshFactory  )

◆ ALIAS_2D_AND_3D() [52/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshPolygons  )

◆ ALIAS_2D_AND_3D() [53/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceMesh  )

◆ ALIAS_2D_AND_3D() [54/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceMeshBuilder  )

◆ ALIAS_2D_AND_3D() [55/61]

RINGMesh::ALIAS_2D_AND_3D ( SurfaceMeshBuilderFactory  )

◆ ALIAS_2D_AND_3D() [56/61]

RINGMesh::ALIAS_2D_AND_3D ( Surface  )

◆ ALIAS_2D_AND_3D() [57/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshEdges  )

◆ ALIAS_2D_AND_3D() [58/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshWells  )

◆ ALIAS_2D_AND_3D() [59/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshEntityAccess  )

◆ ALIAS_2D_AND_3D() [60/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMeshCells  )

◆ ALIAS_2D_AND_3D() [61/61]

RINGMesh::ALIAS_2D_AND_3D ( GeoModelMesh  )

◆ ALIAS_3D() [1/6]

RINGMesh::ALIAS_3D ( GeoModel  )

◆ ALIAS_3D() [2/6]

RINGMesh::ALIAS_3D ( Interface  )

◆ ALIAS_3D() [3/6]

RINGMesh::ALIAS_3D ( Layer  )

◆ ALIAS_3D() [4/6]

RINGMesh::ALIAS_3D ( WellGroup  )

◆ ALIAS_3D() [5/6]

RINGMesh::ALIAS_3D ( GeoModelMesh  )

◆ ALIAS_3D() [6/6]

RINGMesh::ALIAS_3D ( Region  )

◆ are_geomodel_geological_entities_valid() [1/3]

template<index_t DIMENSION>
bool RINGMesh::are_geomodel_geological_entities_valid ( const GeoModel< DIMENSION > &  geomodel)

Definition at line 1472 of file geomodel_validity.cpp.

◆ are_geomodel_geological_entities_valid() [2/3]

template bool RINGMESH_API RINGMesh::are_geomodel_geological_entities_valid ( const GeoModel2D &  )

◆ are_geomodel_geological_entities_valid() [3/3]

template bool RINGMESH_API RINGMesh::are_geomodel_geological_entities_valid ( const GeoModel3D &  )

◆ are_geomodel_mesh_entities_connectivity_valid() [1/3]

template<index_t DIMENSION>
bool RINGMesh::are_geomodel_mesh_entities_connectivity_valid ( const GeoModel< DIMENSION > &  geomodel)

Check the connectivity of mesh entities.

Definition at line 1444 of file geomodel_validity.cpp.

◆ are_geomodel_mesh_entities_connectivity_valid() [2/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_connectivity_valid ( const GeoModel2D &  )

◆ are_geomodel_mesh_entities_connectivity_valid() [3/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_connectivity_valid ( const GeoModel3D &  )

◆ are_geomodel_mesh_entities_mesh_valid() [1/3]

template<index_t DIMENSION>
bool RINGMesh::are_geomodel_mesh_entities_mesh_valid ( const GeoModel< DIMENSION > &  geomodel)

Check the validity of all individual entity meshes.

Check that the entities belong to this geomodel, call the check validity for each entity

Definition at line 1417 of file geomodel_validity.cpp.

◆ are_geomodel_mesh_entities_mesh_valid() [2/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_mesh_valid ( const GeoModel2D &  )

◆ are_geomodel_mesh_entities_mesh_valid() [3/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_mesh_valid ( const GeoModel3D &  )

◆ are_geomodel_mesh_entities_parent_valid() [1/3]

template<index_t DIMENSION>
bool RINGMesh::are_geomodel_mesh_entities_parent_valid ( const GeoModel< DIMENSION > &  geomodel)

Definition at line 1498 of file geomodel_validity.cpp.

◆ are_geomodel_mesh_entities_parent_valid() [2/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_parent_valid ( const GeoModel2D &  )

◆ are_geomodel_mesh_entities_parent_valid() [3/3]

template bool RINGMESH_API RINGMesh::are_geomodel_mesh_entities_parent_valid ( const GeoModel3D &  )

◆ compare_files()

bool RINGMesh::compare_files ( const std::string &  f1,
const std::string &  f2 
)

Compares the contains of two files

Parameters
[in]f1the first filename
[in]f2the second filename
Returns
return True if the files are identical

Definition at line 59 of file io.cpp.

◆ compute_prop_tet_mesh_quality()

void RINGMesh::compute_prop_tet_mesh_quality ( MeshQualityMode  mesh_qual_mode,
const GeoModel3D &  geomodel 
)

Computes and stores mesh quality in the GeoModel.

Enables to have a metrics on the quality of the 3D mesh. This is important for instance for numerical processes. For now all the qualities are based on the regular tetrahedron: a good element here is an element near equilaterality (this definition may change in function of the requirements of the numerical process). The quality is between 0 and 1. 0 corresponds to a bad tetrahedron, and 1 to a good tetrahedron (equilaterality). For more information about the mesh quality, see TET_MESH_QUALITY Interactive Program for Tet Mesh Quality

Parameters
[in]mesh_qual_modemesh quality to compute.
[in,out]geomodelGeoModel in which the mesh quality is performed. The quality is stored on the cells of each Region.
Warning
The GeoModel must have at least one region. All the regions must be meshed by simplexes (tetrahedra).

Definition at line 363 of file mesh_quality.cpp.

◆ configure_geogram()

void RINGMesh::configure_geogram ( )

This function configures geogram by setting some geogram options.

Precondition
This function should be call after GEO::initialize().

Definition at line 66 of file common.cpp.

◆ configure_ringmesh()

void RINGMesh::configure_ringmesh ( )

This function configures RINGMesh by initializing its factories.

Definition at line 84 of file common.cpp.

◆ contains()

template<typename T , typename container >
bool RINGMesh::contains ( const container &  in,
const T &  value 
)

Definition at line 87 of file algorithm.h.

◆ contains_sorted()

template<typename T , typename container >
bool RINGMesh::contains_sorted ( const container &  in,
const T &  value 
)

Definition at line 93 of file algorithm.h.

◆ copy_std_vector_to_geo_vector() [1/2]

template<typename T , typename U = T>
GEO::vector< U > RINGMesh::copy_std_vector_to_geo_vector ( const std::vector< T > &  in,
index_t  from,
index_t  to 
)

Partial copy the content of a standrad library vector to a GEO::Vector. A lot of copies, when we need to call Geogram functions.

Definition at line 63 of file geogram_extension.h.

◆ copy_std_vector_to_geo_vector() [2/2]

template<typename T , typename U = T>
GEO::vector< U > RINGMesh::copy_std_vector_to_geo_vector ( const std::vector< T > &  in)

Copy the content of a standard library vector to the memory aligned GEO::Vector. A lot of copies, when we need to call Geogram functions.

Definition at line 84 of file geogram_extension.h.

◆ default_configure()

void RINGMesh::default_configure ( )

Definition at line 99 of file common.cpp.

◆ dot_perp()

double RINGMesh::dot_perp ( const vec2 v0,
const vec2 v1 
)

Definition at line 61 of file geometry.cpp.

◆ ENABLE_BITMASK_OPERATORS()

RINGMesh::ENABLE_BITMASK_OPERATORS ( ValidityCheckMode  )

◆ enum_contains()

template<typename Enum >
bool RINGMesh::enum_contains ( Enum  lhs,
Enum  rhs 
)

Definition at line 157 of file types.h.

◆ EXPORT_IMPLEMENTATION() [1/2]

template class RINGMESH_API RINGMesh::EXPORT_IMPLEMENTATION ( NNSearch< 2 >  )

◆ EXPORT_IMPLEMENTATION() [2/2]

template class RINGMESH_API RINGMesh::EXPORT_IMPLEMENTATION ( NNSearch< 3 >  )

◆ find()

template<typename T , typename container >
index_t RINGMesh::find ( const container &  in,
const T &  value 
)

Returns the position of the first entity matching.

Parameters
valuein the container, NO_ID if not found.

Definition at line 55 of file algorithm.h.

◆ find_geological_entity_id_from_name() [1/3]

template<index_t DIMENSION>
index_t RINGMesh::find_geological_entity_id_from_name ( const RINGMesh::GeoModel< DIMENSION > &  geomodel,
const RINGMesh::GeologicalEntityType gmge_type,
const std::string &  name 
)
Returns
the index of the geological entity
Parameters
gme_typenamed as
namein the GeoModel
geomodel.
Note
throw exception if no entities have this
Parameters
nameor if two entities have the same
name

Definition at line 377 of file geomodel_api.cpp.

◆ find_geological_entity_id_from_name() [2/3]

template index_t RINGMESH_API RINGMesh::find_geological_entity_id_from_name ( const RINGMesh::GeoModel2D &  ,
const RINGMesh::GeologicalEntityType ,
const std::string &   
)

◆ find_geological_entity_id_from_name() [3/3]

template index_t RINGMESH_API RINGMesh::find_geological_entity_id_from_name ( const RINGMesh::GeoModel3D &  ,
const RINGMesh::GeologicalEntityType ,
const std::string &   
)

◆ find_geomodel_dimension()

index_t RINGMesh::find_geomodel_dimension ( const std::string &  filename)

Returns the dimension of the GeoModel in the filename

Definition at line 110 of file io.cpp.

◆ find_mesh_entity_id_from_name() [1/3]

template<index_t DIMENSION>
index_t RINGMesh::find_mesh_entity_id_from_name ( const GeoModel< DIMENSION > &  geomodel,
const MeshEntityType gmme_type,
const std::string &  name 
)
Returns
the index of the mesh entity
Parameters
gme_typenamed as
namein the GeoModel
geomodel.
Note
throw exception if no entities have this
Parameters
nameor if two entities have the same
name

Definition at line 345 of file geomodel_api.cpp.

◆ find_mesh_entity_id_from_name() [2/3]

template index_t RINGMESH_API RINGMesh::find_mesh_entity_id_from_name ( const GeoModel2D &  ,
const MeshEntityType ,
const std::string &   
)

◆ find_mesh_entity_id_from_name() [3/3]

template index_t RINGMESH_API RINGMesh::find_mesh_entity_id_from_name ( const GeoModel3D &  ,
const MeshEntityType ,
const std::string &   
)

◆ find_sorted()

template<typename T , typename container >
index_t RINGMesh::find_sorted ( const container &  in,
const T &  value 
)

Returns the position of the first entity matching.

Parameters
valuein a sorted container, NO_ID if not found.

Definition at line 73 of file algorithm.h.

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [1/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( MeshBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [2/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( LineMesh  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [3/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( SurfaceMeshBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [4/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( VolumeMesh  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [5/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshEntityAccess  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [6/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelGeologicalEntityAccess  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [7/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModel  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [8/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( UniverseAccess  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [9/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshEntity  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [10/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeogramPointSetMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [11/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Corner  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [12/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeogramLineMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [13/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Line  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [14/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeogramSurfaceMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [15/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Surface  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [16/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Interface  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [17/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshEntityConstAccess  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [18/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeogramVolumeMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [19/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Region  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [20/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Layer  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [21/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( Well  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [22/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( WellGroup  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [23/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( MeshBaseBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [24/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderTopologyBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [25/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( NNSearch  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [26/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( PointSetMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [27/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( PointSetMesh  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [28/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderTopology  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [29/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelGeologicalEntity  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [30/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderGeology  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [31/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [32/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( LineMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [33/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( SurfaceMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [34/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelEntity  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [35/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( VolumeMeshBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [36/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( SurfaceMesh  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [37/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshEdges  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [38/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshWells  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [39/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshPolygons  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [40/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelAccess  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [41/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshPolygonsBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [42/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMeshCells  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [43/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelMesh  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [44/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderGeometryBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [45/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderGeometry  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [46/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderRemovalBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [47/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderRemoval  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [48/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderRepair  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [49/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderCopy  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [50/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderInfo  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [51/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderBase  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [52/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilder  )

◆ FORWARD_DECLARATION_DIMENSION_CLASS() [53/53]

RINGMesh::FORWARD_DECLARATION_DIMENSION_CLASS ( GeoModelBuilderGM  )

◆ FORWARD_DECLARATION_DIMENSION_STRUCT()

RINGMesh::FORWARD_DECLARATION_DIMENSION_STRUCT ( EntityTypeManager  )

◆ geomodel_load() [1/3]

template<index_t DIMENSION>
bool RINGMesh::geomodel_load ( GeoModel< DIMENSION > &  geomodel,
const std::string &  filename 
)

Loads a GeoModel from a file

Parameters
[out]geomodelthe geomodel to fill
[in]filenamethe file to load

Definition at line 131 of file io.cpp.

◆ geomodel_load() [2/3]

template bool RINGMESH_API RINGMesh::geomodel_load ( GeoModel2D &  ,
const std::string &   
)

◆ geomodel_load() [3/3]

template bool RINGMESH_API RINGMesh::geomodel_load ( GeoModel3D &  ,
const std::string &   
)

◆ geomodel_save() [1/3]

template<index_t DIMENSION>
void RINGMesh::geomodel_save ( const GeoModel< DIMENSION > &  geomodel,
const std::string &  filename 
)

Saves a GeoModel to a file

Parameters
[in]geomodelthe geomodel to save
[in]filenamethe file to save

Definition at line 146 of file io.cpp.

◆ geomodel_save() [2/3]

template void RINGMESH_API RINGMesh::geomodel_save ( const GeoModel2D &  ,
const std::string &   
)

◆ geomodel_save() [3/3]

template void RINGMESH_API RINGMesh::geomodel_save ( const GeoModel3D &  ,
const std::string &   
)

◆ get_validity_errors_directory()

std::string RINGMesh::get_validity_errors_directory ( )

Get the directory where debugging information on invalid entities shall be stored.

Definition at line 1411 of file geomodel_validity.cpp.

◆ has_geomodel_finite_extension()

template<index_t DIMENSION>
bool RINGMesh::has_geomodel_finite_extension ( const GeoModel< DIMENSION > &  geomodel)

Check that the geomodel has a finite extension.

The boundary of the universe region is a one connected component manifold closed surface.

◆ has_geomodel_finite_extension< 2 >()

template<>
bool RINGMESH_API RINGMesh::has_geomodel_finite_extension< 2 > ( const GeoModel2D &  geomodel)

Definition at line 1568 of file geomodel_validity.cpp.

◆ has_geomodel_finite_extension< 3 >()

template<>
bool RINGMESH_API RINGMesh::has_geomodel_finite_extension< 3 > ( const GeoModel3D &  geomodel)

Definition at line 1620 of file geomodel_validity.cpp.

◆ indirect_sort()

template<typename T1 , typename T2 >
void RINGMesh::indirect_sort ( std::vector< T1 > &  input,
std::vector< T2 > &  output 
)

Bubble sorting of input and output vectors according to values of input.

Note
Not efficient.

Definition at line 104 of file algorithm.h.

◆ inexact_equal()

template<index_t DIMENSION>
bool RINGMesh::inexact_equal ( const vecn< DIMENSION > &  v1,
const vecn< DIMENSION > &  v2,
double  epsilon 
)

Definition at line 67 of file geometry.h.

◆ initialize_gocad_import_factories()

void RINGMesh::initialize_gocad_import_factories ( )

Definition at line 1872 of file geomodel_builder_gocad.cpp.

◆ inner_point_box_distance()

template<index_t DIMENSION>
double RINGMesh::inner_point_box_distance ( const vecn< DIMENSION > &  p,
const Box< DIMENSION > &  B 
)

Definition at line 495 of file aabb.cpp.

◆ is_geomodel_valid()

template<index_t DIMENSION>
bool RINGMesh::is_geomodel_valid ( const GeoModel< DIMENSION > &  geomodel,
ValidityCheckMode  validity_check_mode = ValidityCheckMode::ALL 
)

Check global geomodel validity.

Parameters
[in]geomodelGeoModel to check
[in]validity_check_modeMode to select what model feature should be checked. Set by default to the most complete check option.

Definition at line 1526 of file geomodel_validity.cpp.

◆ is_geomodel_valid< 2 >()

template bool RINGMESH_API RINGMesh::is_geomodel_valid< 2 > ( const GeoModel2D &  ,
ValidityCheckMode   
)

◆ is_geomodel_valid< 3 >()

template bool RINGMESH_API RINGMesh::is_geomodel_valid< 3 > ( const GeoModel3D &  ,
ValidityCheckMode   
)

◆ mesh_cell_barycenter()

vec3 RINGMesh::mesh_cell_barycenter ( const GEO::Mesh &  M,
index_t  cell 
)

Computes the non weighted barycenter of a volumetric cell of a Mesh

Parameters
[in]Mthe mesh
[in]cellthe cell index
Returns
the cell center

Definition at line 718 of file geogram_extension.cpp.

◆ mesh_cell_facet_barycenter()

vec3 RINGMesh::mesh_cell_facet_barycenter ( const GEO::Mesh &  M,
index_t  cell,
index_t  f 
)

Computes the Mesh cell facet barycenter

Parameters
[in]Mthe mesh
[in]cellthe cell index
[in]fthe facet index in the cell
Returns
the cell facet center

Definition at line 703 of file geogram_extension.cpp.

◆ mesh_cell_signed_volume()

double RINGMesh::mesh_cell_signed_volume ( const GEO::Mesh &  M,
index_t  c 
)

Computes the signed volume of a Mesh cell

Parameters
[in]Mthe mesh
[in]cthe cell index
Returns
the signed volume of the cell

Definition at line 625 of file geogram_extension.cpp.

◆ mesh_cell_volume()

double RINGMesh::mesh_cell_volume ( const GEO::Mesh &  M,
index_t  c 
)

Computes the volume of a Mesh cell

Parameters
[in]Mthe mesh
[in]cthe cell index
Returns
the volume of the cell

Definition at line 698 of file geogram_extension.cpp.

◆ mesh_initialize()

void RINGMesh::mesh_initialize ( )

Definition at line 84 of file io.cpp.

◆ nb_entity_vertices()

template<index_t DIMENSION>
index_t RINGMesh::nb_entity_vertices ( const GeoModel< DIMENSION > &  geomodel,
const MeshEntityType entity_type 
)

Definition at line 454 of file geomodel_mesh.cpp.

◆ operator &()

template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type RINGMesh::operator& ( Enum  lhs,
Enum  rhs 
)

Definition at line 139 of file types.h.

◆ operator!=() [1/2]

template<index_t DIMENSION>
bool RINGMesh::operator!= ( const vecn< DIMENSION > &  u,
const vecn< DIMENSION > &  v 
)

Definition at line 61 of file geometry.h.

◆ operator!=() [2/2]

bool RINGMesh::operator!= ( const vec3 u,
const vec3 v 
)

Definition at line 85 of file geometry.cpp.

◆ operator==() [1/2]

template<index_t DIMENSION>
bool RINGMesh::operator== ( const vecn< DIMENSION > &  u,
const vecn< DIMENSION > &  v 
)

Definition at line 50 of file geometry.h.

◆ operator==() [2/2]

bool RINGMesh::operator== ( const vec3 u,
const vec3 v 
)

Definition at line 80 of file geometry.cpp.

◆ operator^()

template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type RINGMesh::operator^ ( Enum  lhs,
Enum  rhs 
)

Definition at line 149 of file types.h.

◆ operator|()

template<typename Enum >
std::enable_if< EnableBitMaskOperators< Enum >::enable, Enum >::type RINGMesh::operator| ( Enum  lhs,
Enum  rhs 
)

Definition at line 129 of file types.h.

◆ parallel_for()

template<typename ACTION >
void RINGMesh::parallel_for ( index_t  size,
const ACTION &  action 
)

Definition at line 244 of file common.h.

◆ point_box_signed_distance()

template<index_t DIMENSION>
double RINGMesh::point_box_signed_distance ( const vecn< DIMENSION > &  p,
const Box< DIMENSION > &  B 
)

Definition at line 509 of file aabb.cpp.

◆ point_segment_distance()

std::tuple< double, vec3 > RINGMesh::point_segment_distance ( const vec3 p,
const vec3 p0,
const vec3 p1 
)

Definition at line 182 of file geometry.cpp.

◆ point_segment_projection() [1/3]

template std::tuple< bool, vecn< 2 > > RINGMESH_API RINGMesh::point_segment_projection ( const vecn< 2 > &  ,
const vecn< 2 > &  ,
const vecn< 2 > &   
)

◆ point_segment_projection() [2/3]

template std::tuple< bool, vecn< 3 > > RINGMESH_API RINGMesh::point_segment_projection ( const vecn< 3 > &  ,
const vecn< 3 > &  ,
const vecn< 3 > &   
)

◆ point_segment_projection() [3/3]

template<index_t DIMENSION>
std::tuple< bool, vecn< DIMENSION > > RINGMesh::point_segment_projection ( const vecn< DIMENSION > &  p,
const vecn< DIMENSION > &  p0,
const vecn< DIMENSION > &  p1 
)

Computes the orthogonal projection of a point on a segment

Parameters
[in]pthe point to project
[in]p0the first vertex of the segment
[in]p1the second vertex of the segment
Returns
returns a tuple containing a boolean (true if the projection is possible) and the projected point if any.

Definition at line 161 of file geometry.cpp.

◆ print_bounded_attributes()

void RINGMesh::print_bounded_attributes ( const GEO::Mesh &  M)

Definition at line 728 of file geogram_extension.cpp.

◆ print_geomodel() [1/3]

template<index_t DIMENSION>
void RINGMesh::print_geomodel ( const GeoModel< DIMENSION > &  geomodel)

Print in the console the geomodel statistics.

Output number of polygons, vertices, and of the different entity types

Definition at line 236 of file geomodel_api.cpp.

◆ print_geomodel() [2/3]

template void RINGMESH_API RINGMesh::print_geomodel ( const GeoModel2D &  )

◆ print_geomodel() [3/3]

template void RINGMESH_API RINGMesh::print_geomodel ( const GeoModel3D &  )

◆ print_geomodel_mesh_cell_volumes()

void RINGMesh::print_geomodel_mesh_cell_volumes ( const GeoModel3D &  geomodel)

Output the volume of the geomodel and the volume per cell type.

Parameters
[in]geomodelthe geomodel to compute the statistics on

Definition at line 309 of file geomodel_api.cpp.

◆ print_geomodel_mesh_stats() [1/3]

template<index_t DIMENSION>
void RINGMesh::print_geomodel_mesh_stats ( const GeoModel< DIMENSION > &  geomodel)

Output the number of vertices, edges, polygons and cells. Also output the number of triangles, quads and polygons if any. Also output the number of tetra, prisms, pyramids, hex and polyhedra if any.

Parameters
[in]geomodelthe geomodel to compute the statistics on

◆ print_geomodel_mesh_stats() [2/3]

template<>
void RINGMESH_API RINGMesh::print_geomodel_mesh_stats ( const GeoModel2D &  geomodel)

Definition at line 268 of file geomodel_api.cpp.

◆ print_geomodel_mesh_stats() [3/3]

template<>
void RINGMESH_API RINGMesh::print_geomodel_mesh_stats ( const GeoModel3D &  geomodel)

Definition at line 274 of file geomodel_api.cpp.

◆ print_header_information()

void RINGMesh::print_header_information ( )

Definition at line 106 of file common.cpp.

◆ print_nb_geological_entities()

template<index_t DIMENSION>
void RINGMesh::print_nb_geological_entities ( const GeoModel< DIMENSION > &  geomodel,
const GeologicalEntityType type 
)

Definition at line 224 of file geomodel_api.cpp.

◆ print_nb_mesh_entities()

template<index_t DIMENSION>
void RINGMesh::print_nb_mesh_entities ( const GeoModel< DIMENSION > &  geomodel,
const MeshEntityType type 
)

Definition at line 216 of file geomodel_api.cpp.

◆ product_matrix_by_vector()

template<typename T >
std::vector< T > RINGMesh::product_matrix_by_vector ( const SparseMatrix< T, light > &  mat1,
const std::vector< T > &  mat2 
)

Definition at line 497 of file matrix.h.

◆ register_geogram_mesh()

void RINGMesh::register_geogram_mesh ( )

Definition at line 42 of file geogram_mesh.cpp.

◆ ringmesh_assertion_failed()

void RINGMesh::ringmesh_assertion_failed ( const std::string &  condition_string,
const std::string &  file,
int  line 
)

Definition at line 46 of file ringmesh_assert.cpp.

◆ ringmesh_mesh_io_initialize()

void RINGMesh::ringmesh_mesh_io_initialize ( )

complement the available MeshIOHandler

Definition at line 619 of file geogram_extension.cpp.

◆ ringmesh_should_not_have_reached()

void RINGMesh::ringmesh_should_not_have_reached ( const std::string &  file,
int  line 
)

Definition at line 55 of file ringmesh_assert.cpp.

◆ rotate()

void RINGMesh::rotate ( GeoModel3D &  geomodel,
const vec3 origin,
const vec3 axis,
double  angle,
bool  degrees = false 
)

Rotate the boundary geomodel.

Applies a rotation about the line defined by the point origin and the vector axis. The rotation angle is angle. If degrees is true the angle is in degrees, else in radians. All the vertices of the boundary geomodel undergo the rotation (each mesh inside the boundary geomodel: corners, lines and surfaces).

Parameters

Definition at line 421 of file geomodel_api.cpp.

◆ rotation_matrix_about_arbitrary_axis()

GEO::Matrix< 4, double > RINGMesh::rotation_matrix_about_arbitrary_axis ( const vec3 origin,
const vec3 axis,
double  theta,
bool  degrees 
)

Builds a rotational matrix about an arbitrary axis.

Mathematical development: http://paulbourke.net/geometry/rotate/.

Parameters
[in]originpoint in which passes the rotation axis.
[in]axisvector which defines the rotation axis.
[in]thetarotation angle (in radians or degrees).
[in]degreestrue is theta is in degrees, false if in radians.
Returns
the matrix which defines the rotation of a point around the axis defined by point origin and vector axis by an angle theta. New coordinates of a point (x,y,z) are: (x',y',z') = rot_mat*(x,y,z)

Definition at line 202 of file geometry.cpp.

◆ set_validity_errors_directory()

void RINGMesh::set_validity_errors_directory ( const std::string &  directory)

Set the directory where debugging information on invalid entities shall be stored.

If directory does not exist keep the previous value.

Definition at line 1397 of file geomodel_validity.cpp.

◆ sign()

template<typename T >
Sign RINGMesh::sign ( x)

Definition at line 85 of file geometry.h.

◆ sort_unique() [1/2]

template<typename CONTAINER , typename CMP >
void RINGMesh::sort_unique ( CONTAINER &  container,
const CMP &  cmp 
)

Sorts a container and suppresses all duplicated entities.

Parameters
[in,out]containerthe container to sort
[in]cmpa comparator function

Definition at line 135 of file algorithm.h.

◆ sort_unique() [2/2]

template<typename CONTAINER >
void RINGMesh::sort_unique ( CONTAINER &  container)

Sorts a container and suppresses all duplicated entities.

Parameters
[in,out]containerthe container to sort

Definition at line 147 of file algorithm.h.

◆ tetra_barycentric_coordinates()

std::tuple< bool, std::array< double, 4 > > RINGMesh::tetra_barycentric_coordinates ( const vec3 p,
const vec3 p0,
const vec3 p1,
const vec3 p2,
const vec3 p3 
)

Computes barycentric coordinates of p

Parameters
[in]pthe query point
[in]p0the first tetra vertex
[in]p1the second tetra vertex
[in]p2the third tetra vertex
[in]p3the fourth tetra vertex
Returns
a tuple containing:
  • a boolean (false if the computation failed because of too small tetrahedron volume).
  • the parametric coordinates corresponding to points

Definition at line 90 of file geometry.cpp.

◆ to_underlying_type()

template<typename Enum >
auto RINGMesh::to_underlying_type ( Enum  e) -> typename std::underlying_type< Enum >::type

Definition at line 114 of file types.h.

◆ translate() [1/3]

template<index_t DIMENSION>
void RINGMesh::translate ( GeoModel< DIMENSION > &  geomodel,
const vecn< DIMENSION > &  translation_vector 
)

Translates the boundary geomodel by a vector.

Every single mesh of the boundary geomodel is translated: corners, lines and surfaces.

Parameters

Definition at line 409 of file geomodel_api.cpp.

◆ translate() [2/3]

template void RINGMESH_API RINGMesh::translate ( GeoModel2D &  ,
const vec2  
)

◆ translate() [3/3]

template void RINGMESH_API RINGMesh::translate ( GeoModel3D &  ,
const vec3  
)

◆ triangle_barycentric_coordinates() [1/2]

std::tuple< bool, std::array< double, 3 > > RINGMesh::triangle_barycentric_coordinates ( const vec3 p,
const vec3 p0,
const vec3 p1,
const vec3 p2 
)

Computes barycentric coordinates of p

Parameters
[in]pthe query point
[in]p0the first triangle vertex
[in]p1the second triangle vertex
[in]p2the third triangle vertex
Returns
a tuple containing:
  • a boolean (false if the computation failed because of too small triangle area).
  • the parametric coordinates corresponding to points.

Definition at line 118 of file geometry.cpp.

◆ triangle_barycentric_coordinates() [2/2]

std::tuple< bool, std::array< double, 3 > > RINGMesh::triangle_barycentric_coordinates ( const vec2 p,
const vec2 p0,
const vec2 p1,
const vec2 p2 
)

Computes barycentric coordinates of p

Parameters
[in]pthe query point
[in]p0the first triangle vertex
[in]p1the second triangle vertex
[in]p2the third triangle vertex
Returns
a tuple containing:
  • a boolean (false if the computation failed because of too small triangle area).
  • the parametric coordinates corresponding to points.

Definition at line 140 of file geometry.cpp.

◆ triangle_signed_area()

double RINGMesh::triangle_signed_area ( const vec3 p0,
const vec3 p1,
const vec3 p2,
const vec3 triangle_normal 
)

Definition at line 66 of file geometry.cpp.

◆ well_load() [1/2]

void RINGMesh::well_load ( const std::string &  filename,
WellGroup< 3 > &  wells 
)

Definition at line 62 of file io_well_group.cpp.

◆ well_load() [2/2]

void RINGMESH_API RINGMesh::well_load ( const std::string &  filename,
WellGroup3D &  wells 
)

Loads a WellGroup from a file

Parameters
[in]filenamethe file to load

Variable Documentation

◆ AABBTree< 2 >

template class RINGMESH_API RINGMesh::AABBTree< 2 >

Definition at line 536 of file aabb.cpp.

◆ AABBTree< 3 >

template class RINGMESH_API RINGMesh::AABBTree< 3 >

Definition at line 541 of file aabb.cpp.

◆ Box< 2 >

template class RINGMESH_API RINGMesh::Box< 2 >

Definition at line 120 of file box.cpp.

◆ Box< 3 >

template class RINGMESH_API RINGMesh::Box< 3 >

Definition at line 121 of file box.cpp.

◆ BoxAABBTree< 2 >

template class RINGMESH_API RINGMesh::BoxAABBTree< 2 >

Definition at line 537 of file aabb.cpp.

◆ BoxAABBTree< 3 >

template class RINGMESH_API RINGMesh::BoxAABBTree< 3 >

Definition at line 542 of file aabb.cpp.

◆ Corner< 2 >

template class RINGMESH_API RINGMesh::Corner< 2 >

Definition at line 986 of file geomodel_mesh_entity.cpp.

◆ Corner< 3 >

template class RINGMESH_API RINGMesh::Corner< 3 >

Definition at line 992 of file geomodel_mesh_entity.cpp.

◆ GeoModel< 2 >

template class RINGMESH_API RINGMesh::GeoModel< 2 >

Definition at line 353 of file geomodel.cpp.

◆ GeoModelAccess< 2 >

template class RINGMESH_API RINGMesh::GeoModelAccess< 2 >

Definition at line 355 of file geomodel.cpp.

◆ GeoModelAccess< 3 >

template class RINGMESH_API RINGMesh::GeoModelAccess< 3 >

Definition at line 358 of file geomodel.cpp.

◆ GeoModelBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelBase< 2 >

Definition at line 354 of file geomodel.cpp.

◆ GeoModelBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelBase< 3 >

Definition at line 357 of file geomodel.cpp.

◆ GeoModelBuilderBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderBase< 2 >

Definition at line 1147 of file geomodel_builder.cpp.

◆ GeoModelBuilderBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderBase< 3 >

Definition at line 1151 of file geomodel_builder.cpp.

◆ GeoModelBuilderCopy< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderCopy< 2 >

Definition at line 1149 of file geomodel_builder.cpp.

◆ GeoModelBuilderCopy< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderCopy< 3 >

Definition at line 1153 of file geomodel_builder.cpp.

◆ GeoModelBuilderFile< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderFile< 2 >

Definition at line 54 of file geomodel_builder_file.cpp.

◆ GeoModelBuilderFile< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderFile< 3 >

Definition at line 55 of file geomodel_builder_file.cpp.

◆ GeoModelBuilderGeology< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderGeology< 2 >

Definition at line 448 of file geomodel_builder_geology.cpp.

◆ GeoModelBuilderGeology< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderGeology< 3 >

Definition at line 449 of file geomodel_builder_geology.cpp.

◆ GeoModelBuilderGeometry< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderGeometry< 2 >

Definition at line 1088 of file geomodel_builder_geometry.cpp.

◆ GeoModelBuilderGeometryBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderGeometryBase< 2 >

Definition at line 1089 of file geomodel_builder_geometry.cpp.

◆ GeoModelBuilderGeometryBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderGeometryBase< 3 >

Definition at line 1091 of file geomodel_builder_geometry.cpp.

◆ GeoModelBuilderInfo< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderInfo< 2 >

Definition at line 1148 of file geomodel_builder.cpp.

◆ GeoModelBuilderInfo< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderInfo< 3 >

Definition at line 1152 of file geomodel_builder.cpp.

◆ GeoModelBuilderRemoval< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderRemoval< 2 >

Definition at line 299 of file geomodel_builder_remove.cpp.

◆ GeoModelBuilderRemovalBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderRemovalBase< 2 >

Definition at line 298 of file geomodel_builder_remove.cpp.

◆ GeoModelBuilderRemovalBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderRemovalBase< 3 >

Definition at line 301 of file geomodel_builder_remove.cpp.

◆ GeoModelBuilderRepair< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderRepair< 2 >

Definition at line 551 of file geomodel_builder_repair.cpp.

◆ GeoModelBuilderRepair< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderRepair< 3 >

Definition at line 552 of file geomodel_builder_repair.cpp.

◆ GeoModelBuilderTopologyBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelBuilderTopologyBase< 2 >

Definition at line 717 of file geomodel_builder_topology.cpp.

◆ GeoModelBuilderTopologyBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelBuilderTopologyBase< 3 >

Definition at line 731 of file geomodel_builder_topology.cpp.

◆ GeoModelEntity< 2 >

template class RINGMESH_API RINGMesh::GeoModelEntity< 2 >

Definition at line 47 of file geomodel_entity.cpp.

◆ GeoModelEntity< 3 >

template class RINGMESH_API RINGMesh::GeoModelEntity< 3 >

Definition at line 48 of file geomodel_entity.cpp.

◆ GeoModelGeologicalEntity< 2 >

template class RINGMESH_API RINGMesh::GeoModelGeologicalEntity< 2 >

Definition at line 317 of file geomodel_geological_entity.cpp.

◆ GeoModelGeologicalEntity< 3 >

template class RINGMESH_API RINGMesh::GeoModelGeologicalEntity< 3 >

Definition at line 320 of file geomodel_geological_entity.cpp.

◆ GeoModelGeologicalEntityAccess< 2 >

template class RINGMESH_API RINGMesh::GeoModelGeologicalEntityAccess< 2 >

Definition at line 318 of file geomodel_geological_entity.cpp.

◆ GeoModelGeologicalEntityAccess< 3 >

template class RINGMESH_API RINGMesh::GeoModelGeologicalEntityAccess< 3 >

Definition at line 321 of file geomodel_geological_entity.cpp.

◆ GeoModelIOHandler< 2 >

template class RINGMESH_API RINGMesh::GeoModelIOHandler< 2 >

Definition at line 186 of file io.cpp.

◆ GeoModelIOHandler< 3 >

template class RINGMESH_API RINGMesh::GeoModelIOHandler< 3 >

Definition at line 187 of file io.cpp.

◆ GeoModelMesh< 2 >

template class RINGMESH_API RINGMesh::GeoModelMesh< 2 >

Definition at line 3070 of file geomodel_mesh.cpp.

◆ GeoModelMeshBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshBase< 2 >

Definition at line 3069 of file geomodel_mesh.cpp.

◆ GeoModelMeshBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshBase< 3 >

Definition at line 3076 of file geomodel_mesh.cpp.

◆ GeoModelMeshCells< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshCells< 3 >

Definition at line 3081 of file geomodel_mesh.cpp.

◆ GeoModelMeshEdges< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshEdges< 2 >

Definition at line 3073 of file geomodel_mesh.cpp.

◆ GeoModelMeshEdges< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshEdges< 3 >

Definition at line 3079 of file geomodel_mesh.cpp.

◆ GeoModelMeshEntity< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshEntity< 2 >

Definition at line 984 of file geomodel_mesh_entity.cpp.

◆ GeoModelMeshEntity< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshEntity< 3 >

Definition at line 990 of file geomodel_mesh_entity.cpp.

◆ GeoModelMeshEntityAccess< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshEntityAccess< 2 >

Definition at line 985 of file geomodel_mesh_entity.cpp.

◆ GeoModelMeshEntityAccess< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshEntityAccess< 3 >

Definition at line 991 of file geomodel_mesh_entity.cpp.

◆ GeoModelMeshPolygonsBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshPolygonsBase< 2 >

Definition at line 3074 of file geomodel_mesh.cpp.

◆ GeoModelMeshPolygonsBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshPolygonsBase< 3 >

Definition at line 3080 of file geomodel_mesh.cpp.

◆ GeoModelMeshVerticesBase< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshVerticesBase< 2 >

Definition at line 3071 of file geomodel_mesh.cpp.

◆ GeoModelMeshVerticesBase< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshVerticesBase< 3 >

Definition at line 3077 of file geomodel_mesh.cpp.

◆ GeoModelMeshWells< 2 >

template class RINGMESH_API RINGMesh::GeoModelMeshWells< 2 >

Definition at line 3072 of file geomodel_mesh.cpp.

◆ GeoModelMeshWells< 3 >

template class RINGMESH_API RINGMesh::GeoModelMeshWells< 3 >

Definition at line 3078 of file geomodel_mesh.cpp.

◆ Line< 2 >

template class RINGMESH_API RINGMesh::Line< 2 >

Definition at line 987 of file geomodel_mesh_entity.cpp.

◆ Line< 3 >

template class RINGMESH_API RINGMesh::Line< 3 >

Definition at line 993 of file geomodel_mesh_entity.cpp.

◆ LineAABBTree< 2 >

template class RINGMESH_API RINGMesh::LineAABBTree< 2 >

Definition at line 538 of file aabb.cpp.

◆ LineAABBTree< 3 >

template class RINGMESH_API RINGMesh::LineAABBTree< 3 >

Definition at line 543 of file aabb.cpp.

◆ LineMesh< 2 >

template class RINGMESH_API RINGMesh::LineMesh< 2 >

Definition at line 781 of file mesh.cpp.

◆ LineMesh< 3 >

template class RINGMESH_API RINGMesh::LineMesh< 3 >

Definition at line 787 of file mesh.cpp.

◆ MeshEntityTypeBoundaryMap< 2 >

template struct RINGMESH_API RINGMesh::MeshEntityTypeBoundaryMap< 2 >

Definition at line 186 of file entity_type_manager.cpp.

◆ MeshEntityTypeBoundaryMap< 3 >

template struct RINGMESH_API RINGMesh::MeshEntityTypeBoundaryMap< 3 >

Definition at line 191 of file entity_type_manager.cpp.

◆ MeshEntityTypeIncidentEntityMap< 2 >

template struct RINGMESH_API RINGMesh::MeshEntityTypeIncidentEntityMap< 2 >

Definition at line 185 of file entity_type_manager.cpp.

◆ MeshEntityTypeIncidentEntityMap< 3 >

template struct RINGMESH_API RINGMesh::MeshEntityTypeIncidentEntityMap< 3 >

Definition at line 190 of file entity_type_manager.cpp.

◆ MeshEntityTypeManager< 2 >

template class RINGMESH_API RINGMesh::MeshEntityTypeManager< 2 >

Definition at line 184 of file entity_type_manager.cpp.

◆ MeshEntityTypeManagerBase< 2 >

template class RINGMESH_API RINGMesh::MeshEntityTypeManagerBase< 2 >

Definition at line 183 of file entity_type_manager.cpp.

◆ MeshEntityTypeManagerBase< 3 >

template class RINGMESH_API RINGMesh::MeshEntityTypeManagerBase< 3 >

Definition at line 189 of file entity_type_manager.cpp.

◆ MeshEntityTypes< 2 >

template class RINGMESH_API RINGMesh::MeshEntityTypes< 2 >

Definition at line 182 of file entity_type_manager.cpp.

◆ MeshEntityTypes< 3 >

template class RINGMESH_API RINGMesh::MeshEntityTypes< 3 >

Definition at line 188 of file entity_type_manager.cpp.

◆ MeshSet< 2 >

template class RINGMESH_API RINGMesh::MeshSet< 2 >

Definition at line 784 of file mesh.cpp.

◆ MeshSetBase< 2 >

template class RINGMESH_API RINGMesh::MeshSetBase< 2 >

Definition at line 783 of file mesh.cpp.

◆ MeshSetBase< 3 >

template class RINGMESH_API RINGMesh::MeshSetBase< 3 >

Definition at line 790 of file mesh.cpp.

◆ ml_factory

Factory< std::string, MLLineParser, GeoModelBuilderML&, GeoModel3D& > RINGMesh::ml_factory

Definition at line 1650 of file geomodel_builder_gocad.cpp.

◆ NNSearch< 2 >

template class RINGMESH_API RINGMesh::NNSearch< 2 >

Definition at line 222 of file nn_search.cpp.

◆ NNSearch< 3 >

template class RINGMESH_API RINGMesh::NNSearch< 3 >

Definition at line 225 of file nn_search.cpp.

◆ PointSetMesh< 2 >

template class RINGMESH_API RINGMesh::PointSetMesh< 2 >

Definition at line 780 of file mesh.cpp.

◆ PointSetMesh< 3 >

template class RINGMESH_API RINGMesh::PointSetMesh< 3 >

Definition at line 786 of file mesh.cpp.

◆ Region< 3 >

template class RINGMESH_API RINGMesh::Region< 3 >

Definition at line 995 of file geomodel_mesh_entity.cpp.

◆ SurfaceAABBTree< 2 >

template class RINGMESH_API RINGMesh::SurfaceAABBTree< 2 >

Definition at line 539 of file aabb.cpp.

◆ SurfaceAABBTree< 3 >

template class RINGMESH_API RINGMesh::SurfaceAABBTree< 3 >

Definition at line 544 of file aabb.cpp.

◆ SurfaceBase< 2 >

template class RINGMESH_API RINGMesh::SurfaceBase< 2 >

Definition at line 988 of file geomodel_mesh_entity.cpp.

◆ SurfaceBase< 3 >

template class RINGMESH_API RINGMesh::SurfaceBase< 3 >

Definition at line 994 of file geomodel_mesh_entity.cpp.

◆ SurfaceMeshBase< 2 >

template class RINGMESH_API RINGMesh::SurfaceMeshBase< 2 >

Definition at line 782 of file mesh.cpp.

◆ SurfaceMeshBase< 3 >

template class RINGMESH_API RINGMesh::SurfaceMeshBase< 3 >

Definition at line 788 of file mesh.cpp.

◆ tsolid_factory

Factory< std::string, TSolidLineParser, GeoModelBuilderTSolid&, GeoModel3D& > RINGMesh::tsolid_factory

Definition at line 1655 of file geomodel_builder_gocad.cpp.

◆ VolumeAABBTree< 3 >

template class RINGMESH_API RINGMesh::VolumeAABBTree< 3 >

Definition at line 545 of file aabb.cpp.

◆ VolumeMesh< 3 >

template class RINGMESH_API RINGMesh::VolumeMesh< 3 >

Definition at line 789 of file mesh.cpp.

◆ Well< 2 >

template class RINGMESH_API RINGMesh::Well< 2 >

Definition at line 757 of file well.cpp.

◆ Well< 3 >

template class RINGMESH_API RINGMesh::Well< 3 >

Definition at line 763 of file well.cpp.

◆ WellCorner< 2 >

template class RINGMESH_API RINGMesh::WellCorner< 2 >

Definition at line 755 of file well.cpp.

◆ WellCorner< 3 >

template class RINGMESH_API RINGMesh::WellCorner< 3 >

Definition at line 761 of file well.cpp.

◆ WellEntity< 2 >

template class RINGMESH_API RINGMesh::WellEntity< 2 >

Definition at line 754 of file well.cpp.

◆ WellEntity< 3 >

template class RINGMESH_API RINGMesh::WellEntity< 3 >

Definition at line 760 of file well.cpp.

◆ WellGroup< 2 >

template class RINGMESH_API RINGMesh::WellGroup< 2 >

Definition at line 758 of file well.cpp.

◆ WellGroup< 3 >

template class RINGMESH_API RINGMesh::WellGroup< 3 >

Definition at line 764 of file well.cpp.

◆ WellPart< 2 >

template class RINGMESH_API RINGMesh::WellPart< 2 >

Definition at line 756 of file well.cpp.

◆ WellPart< 3 >

template class RINGMESH_API RINGMesh::WellPart< 3 >

Definition at line 762 of file well.cpp.