Project OpenGeode
class Relationships
This class stores all the relations between a set of components. Each relationship links two components. Relationship types are boundary and its dual incidence, and item and its dual collection. Components should be added through their uuids.
Records
RelationRangeIterator
RelationRange
BoundaryRangeIterator
BoundaryRange
IncidenceRangeIterator
IncidenceRange
InternalRangeIterator
InternalRange
EmbeddingRangeIterator
EmbeddingRange
ItemRangeIterator
ItemRange
CollectionRangeIterator
CollectionRange
Functions
Relationships
public void Relationships()
public void Relationships()
~Relationships
public void ~Relationships()
public void ~Relationships()
nb_components_with_relations
public index_t nb_components_with_relations()
public index_t nb_components_with_relations()
component_with_relation
public const ComponentID & component_with_relation(index_t relation_component_id)
public const ComponentID & component_with_relation(index_t relation_component_id)
nb_relations
public index_t nb_relations(const uuid & component_id)
public index_t nb_relations(const uuid & component_id)
relations
public RelationRange relations(const uuid & component_id)
public RelationRange relations(const uuid & component_id)
nb_boundaries
public index_t nb_boundaries(const uuid & component_id)
public index_t nb_boundaries(const uuid & component_id)
boundaries
public BoundaryRange boundaries(const uuid & component_id)
public BoundaryRange boundaries(const uuid & component_id)
nb_incidences
public index_t nb_incidences(const uuid & component_id)
public index_t nb_incidences(const uuid & component_id)
incidences
public IncidenceRange incidences(const uuid & component_id)
public IncidenceRange incidences(const uuid & component_id)
nb_internals
public index_t nb_internals(const uuid & component_id)
public index_t nb_internals(const uuid & component_id)
internals
public InternalRange internals(const uuid & component_id)
public InternalRange internals(const uuid & component_id)
nb_embeddings
public index_t nb_embeddings(const uuid & component_id)
public index_t nb_embeddings(const uuid & component_id)
embeddings
public EmbeddingRange embeddings(const uuid & component_id)
public EmbeddingRange embeddings(const uuid & component_id)
nb_items
public index_t nb_items(const uuid & component_id)
public index_t nb_items(const uuid & component_id)
items
public ItemRange items(const uuid & component_id)
public ItemRange items(const uuid & component_id)
nb_collections
public index_t nb_collections(const uuid & component_id)
public index_t nb_collections(const uuid & component_id)
collections
public CollectionRange collections(const uuid & component_id)
public CollectionRange collections(const uuid & component_id)
is_boundary
public bool is_boundary(const uuid & boundary, const uuid & incidence)
public bool is_boundary(const uuid & boundary, const uuid & incidence)
is_internal
public bool is_internal(const uuid & internal, const uuid & embedding)
public bool is_internal(const uuid & internal, const uuid & embedding)
is_item
public bool is_item(const uuid & item, const uuid & collection)
public bool is_item(const uuid & item, const uuid & collection)
relation_attribute_manager
public AttributeManager & relation_attribute_manager()
public AttributeManager & relation_attribute_manager()
relation_index
public std::optional<index_t> relation_index(const uuid & component_id1, const uuid & component_id2)
public std::optional<index_t> relation_index(const uuid & component_id1, const uuid & component_id2)
relation_from_index
public std::tuple<ComponentID, ComponentID> relation_from_index(index_t component_id)
public std::tuple<ComponentID, ComponentID> relation_from_index(index_t component_id)
save_relationships
public void save_relationships(basic_string_view directory)
public void save_relationships(basic_string_view directory)
remove_component
public void remove_component(const uuid & component_id, PassKey )
public void remove_component(const uuid & component_id, PassKey )
Remove a component from the set of components registered by the Relationships and all its associated relationships
component_id [in] Unique index of the component to remove
add_boundary_relation
public index_t add_boundary_relation(const ComponentID & boundary, const ComponentID & incidence, PassKey )
public index_t add_boundary_relation(const ComponentID & boundary, const ComponentID & incidence, PassKey )
Add a new relationship of type boundary-incidence between two components
add_internal_relation
public index_t add_internal_relation(const ComponentID & internal, const ComponentID & embedding, PassKey )
public index_t add_internal_relation(const ComponentID & internal, const ComponentID & embedding, PassKey )
Add a new relationship of type internal-embedding between two components
add_item_in_collection
public index_t add_item_in_collection(const ComponentID & item, const ComponentID & collection, PassKey )
public index_t add_item_in_collection(const ComponentID & item, const ComponentID & collection, PassKey )
Add a new relationship of type item-collection between two components
remove_relation
public void remove_relation(const uuid & component_id1, const uuid & component_id2, PassKey )
public void remove_relation(const uuid & component_id1, const uuid & component_id2, PassKey )
Remove a relationship between two components
copy_relationships
public void copy_relationships(const ModelCopyMapping & mapping, const Relationships & relationships, PassKey )
public void copy_relationships(const ModelCopyMapping & mapping, const Relationships & relationships, PassKey )
load_relationships
public void load_relationships(basic_string_view directory, PassKey )
public void load_relationships(basic_string_view directory, PassKey )
Relationships
protected void Relationships(Relationships && other)
protected void Relationships(Relationships && other)
operator=
protected Relationships & operator=(Relationships && other)
protected Relationships & operator=(Relationships && other)