SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Classes | Typedefs | Enumerations | Functions
smtk::graph Namespace Reference

Subsystem for modeling using nodes connected to one another by arcs. More...

Classes

struct  ArcConstness
 For endpoint interfaces, provide tag classes used to select const or non-const APIs. More...
 
struct  ArcDirection
 For endpoint interfaces, provide tag classes used to select incoming or outgoing APIs. More...
 
class  ArcEndpointInterface
 An object that a node instance can present to access/edit its outgoing/incoming arcs. More...
 
class  ArcImplementation
 A wrapper around arc type-traits classes that provides API. More...
 
class  ArcMap
 A container for arcs held by a resource. More...
 
class  ArcProperties
 Checks that can be performed on arc trait-types. More...
 
class  Component
 Graph Component represents a node in the graph resource. More...
 
class  ExplicitArcs
 A wrapper around arc type-traits classes that provides explicit storage of arcs. More...
 
class  NodeProperties
 Checks that can be performed on a node-type. More...
 
class  NodeSet
 
class  Registrar
 
class  Resource
 A resource for conceptual modeling of geometric components. More...
 
class  ResourceBase
 A non-templated base class for graph resources. More...
 

Typedefs

typedef std::shared_ptr< ComponentComponentPtr
 
template<typename GraphTraits >
using ResourcePtr = std::shared_ptr< Resource< GraphTraits > >
 
using ConstArc = ArcConstness< true >
 
using NonConstArc = ArcConstness< false >
 
using OutgoingArc = ArcDirection< true >
 
using IncomingArc = ArcDirection< false >
 

Enumerations

enum  OwnershipSemantics { OwnershipSemantics::None, OwnershipSemantics::FromNodeOwnsToNode, OwnershipSemantics::ToNodeOwnsFromNode }
 Indicate whether one arc endpoint "owns" the other. More...
 

Functions

constexpr std::size_t unconstrained ()
 Return a constant used to indicate the maximimum degree of an arc endpoint is unconstrained.
 
template<typename T >
constexpr std::enable_if< std::is_integral< decltype(T::MaxOutDegree)>::value, std::size_t >::type maxOutDegree (std::size_t)
 Return the maximum out-degree of an arc type (or unconstrained() if unspecified).
 
template<typename T >
constexpr std::size_t maxOutDegree (...)
 
template<typename T >
constexpr std::enable_if< std::is_integral< decltype(T::MaxInDegree)>::value, std::size_t >::type maxInDegree (std::size_t)
 Return the maximum in-degree of an arc type (or unconstrained() if unspecified).
 
template<typename T >
constexpr std::size_t maxInDegree (...)
 
template<typename T >
constexpr std::enable_if< std::is_integral< decltype(T::MinOutDegree)>::value, std::size_t >::type minOutDegree (std::size_t)
 Return the minimum out-degree of an arc type (or 0 if unspecified).
 
template<typename T >
constexpr std::size_t minOutDegree (...)
 
template<typename T >
constexpr std::enable_if< std::is_integral< decltype(T::MinInDegree)>::value, std::size_t >::type minInDegree (std::size_t)
 Return the minimum in-degree of an arc type (or 0 if unspecified).
 
template<typename T >
constexpr std::size_t minInDegree (...)
 

Detailed Description

Subsystem for modeling using nodes connected to one another by arcs.

Enumeration Type Documentation

◆ OwnershipSemantics

Indicate whether one arc endpoint "owns" the other.

Enumerator
None 

Neither endpoint owns its neighbor.

FromNodeOwnsToNode 

The "from" node owns the "to" node.

ToNodeOwnsFromNode 

The "to" node owns the "from" node.