RINGMesh  Version 5.0.0
A programming library for geological model meshes
RINGMesh::RelationshipManager Class Reference

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...

#include <entity_type_manager.h>

Classes

struct  BoundaryRelationship
 
struct  ParentChildRelationship
 

Public Types

using GeologicalEntityToChild = std::map< GeologicalEntityType, MeshEntityType >
 
using MeshEntityToParents = std::map< MeshEntityType, std::set< GeologicalEntityType > >
 

Public Member Functions

std::vector< GeologicalEntityTypeparent_types (const MeshEntityType &child_type) const
 
index_t nb_parent_types (const MeshEntityType &child_type) const
 
const MeshEntityType child_type (const GeologicalEntityType &parent_type) const
 
Access to the Boundary/Incident entity relations
const gmme_idboundary_gmme (index_t relation_id) const
 
const gmme_idincident_entity_gmme (index_t relation_id) const
 

Private Member Functions

Boundary Relationship manager
index_t add_boundary_relationship (const gmme_id &incident_entity, const gmme_id &boundary)
 
index_t find_boundary_relationship (const gmme_id &incident_entity, const gmme_id &boundary)
 
void set_boundary_to_boundary_relationship (index_t relationship_id, const gmme_id &boundary)
 
void set_incident_entity_to_boundary_relationship (index_t relationship_id, const gmme_id &incident_entity)
 

Friends

class GeoModelBuilderGeology< 2 >
 
class GeoModelBuilderTopologyBase< 2 >
 
class GeoModelBuilderGeology< 3 >
 
class GeoModelBuilderTopologyBase< 3 >
 

Access to the Parent / Child relations

const gmge_idparent_of_gmme (index_t relation_id) const
 
const gmme_idchild_of_gmge (index_t relation_id) const
 
void register_geology_relationship (const GeologicalEntityType &parent_type_name, const MeshEntityType &child_type_name)
 

Parent/Child Relationship manager

MeshEntityToParents child_to_parents_
 
GeologicalEntityToChild parent_to_child_
 
std::deque< BoundaryRelationshipboundary_relationships_
 
std::deque< ParentChildRelationshipparent_child_relationships_
 
index_t add_parent_child_relationship (const gmge_id &parent, const gmme_id &child)
 
index_t find_parent_child_relationship (const gmge_id &parent, const gmme_id &child)
 
void set_parent_to_parent_child_relationship (index_t relationship_id, const gmge_id &parent)
 
void set_child_to_parent_child_relationship (index_t relationship_id, const gmme_id &child)
 

Detailed Description

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"

Definition at line 262 of file entity_type_manager.h.

Member Typedef Documentation

◆ GeologicalEntityToChild

◆ MeshEntityToParents

Member Function Documentation

◆ add_boundary_relationship()

index_t RINGMesh::RelationshipManager::add_boundary_relationship ( const gmme_id incident_entity,
const gmme_id boundary 
)
inlineprivate

Definition at line 327 of file entity_type_manager.h.

◆ add_parent_child_relationship()

index_t RINGMesh::RelationshipManager::add_parent_child_relationship ( const gmge_id parent,
const gmme_id child 
)
inlineprivate

Definition at line 378 of file entity_type_manager.h.

◆ boundary_gmme()

const gmme_id& RINGMesh::RelationshipManager::boundary_gmme ( index_t  relation_id) const
inline

Definition at line 286 of file entity_type_manager.h.

◆ child_of_gmge()

const gmme_id& RINGMesh::RelationshipManager::child_of_gmge ( index_t  relation_id) const
inline

Definition at line 307 of file entity_type_manager.h.

◆ child_type()

const MeshEntityType RINGMesh::RelationshipManager::child_type ( const GeologicalEntityType parent_type) const

Definition at line 167 of file entity_type_manager.cpp.

◆ find_boundary_relationship()

index_t RINGMesh::RelationshipManager::find_boundary_relationship ( const gmme_id incident_entity,
const gmme_id boundary 
)
inlineprivate

Definition at line 336 of file entity_type_manager.h.

◆ find_parent_child_relationship()

index_t RINGMesh::RelationshipManager::find_parent_child_relationship ( const gmge_id parent,
const gmme_id child 
)
inlineprivate

Definition at line 387 of file entity_type_manager.h.

◆ incident_entity_gmme()

const gmme_id& RINGMesh::RelationshipManager::incident_entity_gmme ( index_t  relation_id) const
inline

Definition at line 291 of file entity_type_manager.h.

◆ nb_parent_types()

index_t RINGMesh::RelationshipManager::nb_parent_types ( const MeshEntityType child_type) const

Definition at line 161 of file entity_type_manager.cpp.

◆ parent_of_gmme()

const gmge_id& RINGMesh::RelationshipManager::parent_of_gmme ( index_t  relation_id) const
inline

Definition at line 302 of file entity_type_manager.h.

◆ parent_types()

std::vector< GeologicalEntityType > RINGMesh::RelationshipManager::parent_types ( const MeshEntityType child_type) const

Definition at line 147 of file entity_type_manager.cpp.

◆ register_geology_relationship()

void RINGMesh::RelationshipManager::register_geology_relationship ( const GeologicalEntityType parent_type_name,
const MeshEntityType child_type_name 
)
inlineprivate

Definition at line 314 of file entity_type_manager.h.

◆ set_boundary_to_boundary_relationship()

void RINGMesh::RelationshipManager::set_boundary_to_boundary_relationship ( index_t  relationship_id,
const gmme_id boundary 
)
inlineprivate

Definition at line 343 of file entity_type_manager.h.

◆ set_child_to_parent_child_relationship()

void RINGMesh::RelationshipManager::set_child_to_parent_child_relationship ( index_t  relationship_id,
const gmme_id child 
)
inlineprivate

Definition at line 400 of file entity_type_manager.h.

◆ set_incident_entity_to_boundary_relationship()

void RINGMesh::RelationshipManager::set_incident_entity_to_boundary_relationship ( index_t  relationship_id,
const gmme_id incident_entity 
)
inlineprivate

Definition at line 349 of file entity_type_manager.h.

◆ set_parent_to_parent_child_relationship()

void RINGMesh::RelationshipManager::set_parent_to_parent_child_relationship ( index_t  relationship_id,
const gmge_id parent 
)
inlineprivate

Definition at line 394 of file entity_type_manager.h.

Friends And Related Function Documentation

◆ GeoModelBuilderGeology< 2 >

friend class GeoModelBuilderGeology< 2 >
friend

Definition at line 264 of file entity_type_manager.h.

◆ GeoModelBuilderGeology< 3 >

friend class GeoModelBuilderGeology< 3 >
friend

Definition at line 266 of file entity_type_manager.h.

◆ GeoModelBuilderTopologyBase< 2 >

Definition at line 265 of file entity_type_manager.h.

◆ GeoModelBuilderTopologyBase< 3 >

Definition at line 267 of file entity_type_manager.h.

Member Data Documentation

◆ boundary_relationships_

std::deque< BoundaryRelationship > RINGMesh::RelationshipManager::boundary_relationships_
private

Definition at line 426 of file entity_type_manager.h.

◆ child_to_parents_

MeshEntityToParents RINGMesh::RelationshipManager::child_to_parents_
private

Definition at line 423 of file entity_type_manager.h.

◆ parent_child_relationships_

std::deque< ParentChildRelationship > RINGMesh::RelationshipManager::parent_child_relationships_
private

Definition at line 427 of file entity_type_manager.h.

◆ parent_to_child_

GeologicalEntityToChild RINGMesh::RelationshipManager::parent_to_child_
private

Definition at line 424 of file entity_type_manager.h.


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