|
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 (...) |
|
Directionality | directionalityEnumerant (smtk::string::Token directionalityToken) |
| Return a directionality given a string token.
|
|
smtk::string::Token | directionalityToken (Directionality directionalityEnumerant) |
| Return a string token for a Directionality enumerant.
|
|
template<typename ArcType , typename SourceNode , typename Outgoing = typename std::conditional< std::is_same<typename ArcType::FromType, SourceNode>::value, smtk::graph::OutgoingArc, smtk::graph::IncomingArc>::type, typename TargetNode = typename std:: conditional<Outgoing::value, typename ArcType::ToType, typename ArcType::FromType>::type> |
std::set< std::pair< TargetNode *, TargetNode * > > | findArcCorrespondences (SourceNode *nodeA, SourceNode *nodeB, std::function< bool(TargetNode *, TargetNode *)> comparator) |
| Find correspondences between destination nodes of two nodes along the given ArcType. More...
|
|
template<typename ArcType , typename SourceNode , typename Outgoing = std::conditional< std::is_same<typename ArcType::FromType, SourceNode>::value, smtk::graph::OutgoingArc, smtk::graph::IncomingArc>, typename TargetNode = std::conditional<Outgoing::value, typename ArcType::ToType, typename ArcType::FromType>> |
std::set< std::pair< TargetNode *, TargetNode * > > | findArcCorrespondences (const std::shared_ptr< SourceNode > &nodeA, const std::shared_ptr< SourceNode > &nodeB, std::function< bool(TargetNode *, TargetNode *)> comparator) |
| A variant of findArcCorrespondences that takes shared pointers to nodes.
|
|
Subsystem for modeling using nodes connected to one another by arcs.
template<typename ArcType , typename SourceNode , typename Outgoing = typename std::conditional< std::is_same<typename ArcType::FromType, SourceNode>::value, smtk::graph::OutgoingArc, smtk::graph::IncomingArc>::type, typename TargetNode = typename std:: conditional<Outgoing::value, typename ArcType::ToType, typename ArcType::FromType>::type>
std::set<std::pair<TargetNode*, TargetNode*> > smtk::graph::findArcCorrespondences |
( |
SourceNode * |
nodeA, |
|
|
SourceNode * |
nodeB, |
|
|
std::function< bool(TargetNode *, TargetNode *)> |
comparator |
|
) |
| |
Find correspondences between destination nodes of two nodes along the given ArcType.
Given:
- an ArcType arc-trait object,
- two nodes (nodeA and nodeB), and
- a lambda comparator that returns true if two destination nodes (nodeC and nodeD, connected to nodeA and nodeB, respectively) correspond to one another.
This function returns a set of pairs of nodes such that
- if both nodes in a pair are non-null, the comparator returns true; and
- if one node in a pair is null, there are no nodes nodeC and nodeD that correspond to one another attached to nodeA and nodeB, respectively.