Satsuma
a delicious .NET graph library
|
Adaptor for modifying the direction of some arcs of an underlying graph. More...
Public Types | |
enum | Direction { Forward, Backward, Edge } |
Public Member Functions | |
int | ArcCount (ArcFilter filter=ArcFilter.All) |
Returns the total number of arcs satisfying a given filter. More... | |
int | ArcCount (Node u, ArcFilter filter=ArcFilter.All) |
Returns the number of arcs adjacent to a specific node satisfying a given filter. More... | |
int | ArcCount (Node u, Node v, ArcFilter filter=ArcFilter.All) |
Returns the number of arcs adjacent to two nodes satisfying a given filter. More... | |
IEnumerable< Arc > | Arcs (ArcFilter filter=ArcFilter.All) |
IEnumerable< Arc > | Arcs (Node u, ArcFilter filter=ArcFilter.All) |
IEnumerable< Arc > | Arcs (Node u, Node v, ArcFilter filter=ArcFilter.All) |
bool | HasArc (Arc arc) |
Returns whether the given arc is contained in the graph. More... | |
bool | HasNode (Node node) |
Returns whether the given node is contained in the graph. More... | |
bool | IsEdge (Arc arc) |
Returns whether the arc is undirected (true ) or directed (false ). More... | |
int | NodeCount () |
Returns the total number of nodes in O(1) time. More... | |
IEnumerable< Node > | Nodes () |
Returns all nodes of the graph. More... | |
RedirectedGraph (IGraph graph, Func< Arc, Direction > getDirection) | |
Creates an adaptor over the given graph for redirecting its arcs. More... | |
Node | U (Arc arc) |
Returns the first node of an arc. Directed arcs point from U to V. More... | |
Node | V (Arc arc) |
Returns the second node of an arc. Directed arcs point from U to V. More... | |
Adaptor for modifying the direction of some arcs of an underlying graph.
Node and Arc objects are interchangeable between the adaptor and the original graph. The underlying graph can be freely modified while using this adaptor. For special cases, consider the UndirectedGraph and ReverseGraph classes for performance.
Definition at line 35 of file RedirectedGraph.cs.
Enumerator | |
---|---|
Forward |
The arc should be directed from U to V. |
Backward |
The arc should be directed from V to U. |
Edge |
The arc should be undirected. |
Definition at line 37 of file RedirectedGraph.cs.
Creates an adaptor over the given graph for redirecting its arcs.
graph | The graph to redirect. |
getDirection | The function which modifies the arc directions. |
Definition at line 53 of file RedirectedGraph.cs.
int Satsuma.RedirectedGraph.ArcCount | ( | ArcFilter | filter = ArcFilter.All | ) |
Returns the total number of arcs satisfying a given filter.
filter | Detailed description: see Arcs(ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 129 of file RedirectedGraph.cs.
Returns the number of arcs adjacent to a specific node satisfying a given filter.
filter | Detailed description: see Arcs(Node, ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 134 of file RedirectedGraph.cs.
Returns the number of arcs adjacent to two nodes satisfying a given filter.
filter | Detailed description: see Arcs(Node, Node, ArcFilter). |
Implements Satsuma.IGraph.
Definition at line 139 of file RedirectedGraph.cs.
Returns all arcs of the graph satisfying a given filter.
filter | Cannot be ArcType.Forward/ArcType.Backward.
|
Implements Satsuma.IGraph.
Definition at line 79 of file RedirectedGraph.cs.
Returns all arcs adjacent to a specific node satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
Definition at line 114 of file RedirectedGraph.cs.
Returns all arcs adjacent to two nodes satisfying a given filter.
filter |
|
Implements Satsuma.IGraph.
Definition at line 119 of file RedirectedGraph.cs.
bool Satsuma.RedirectedGraph.HasArc | ( | Arc | arc | ) |
Returns whether the given arc is contained in the graph.
Must return the same value as Arcs().Contains
in all implementations, but faster if possible.
true
may be returned for arcs coming from another graph as well, if those arcs encapsulate an identifier which is valid for this graph, too. Implements Satsuma.IGraph.
Definition at line 149 of file RedirectedGraph.cs.
bool Satsuma.RedirectedGraph.HasNode | ( | Node | node | ) |
Returns whether the given node is contained in the graph.
Must return the same value as Nodes().Contains
in all implementations, but faster if possible.
true
may be returned for nodes coming from another graph as well, if those nodes encapsulate an identifier which is valid for this graph, too. Implements Satsuma.IGraph.
Definition at line 144 of file RedirectedGraph.cs.
bool Satsuma.RedirectedGraph.IsEdge | ( | Arc | arc | ) |
Returns whether the arc is undirected (true
) or directed (false
).
Implements Satsuma.IArcLookup.
Definition at line 69 of file RedirectedGraph.cs.
int Satsuma.RedirectedGraph.NodeCount | ( | ) |
Returns the total number of nodes in O(1) time.
Implements Satsuma.IGraph.
Definition at line 124 of file RedirectedGraph.cs.
IEnumerable<Node> Satsuma.RedirectedGraph.Nodes | ( | ) |
Returns all nodes of the graph.
Implements Satsuma.IGraph.
Definition at line 74 of file RedirectedGraph.cs.
Returns the first node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
Definition at line 59 of file RedirectedGraph.cs.
Returns the second node of an arc. Directed arcs point from U to V.
Implements Satsuma.IArcLookup.
Definition at line 64 of file RedirectedGraph.cs.