public static class CombineWayAction.NodeGraph extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Set<CombineWayAction.NodePair> |
edges |
private int |
numUndirectedEges |
private java.util.Map<Node,java.util.List<CombineWayAction.NodePair>> |
predecessors |
private java.util.Map<Node,java.util.List<CombineWayAction.NodePair>> |
successors |
Constructor and Description |
---|
NodeGraph()
Constructs a new
NodeGraph . |
Modifier and Type | Method and Description |
---|---|
void |
add(CombineWayAction.NodePair pair) |
void |
add(java.util.List<CombineWayAction.NodePair> pairs) |
static java.util.List<CombineWayAction.NodePair> |
buildNodePairs(java.util.List<Way> ways,
boolean directed) |
static java.util.List<CombineWayAction.NodePair> |
buildNodePairs(Way way,
boolean directed) |
protected java.util.List<Node> |
buildPathFromNodePairs(java.util.Stack<CombineWayAction.NodePair> path) |
java.util.List<Node> |
buildSpanningPath()
Tries to find a path through the graph which visits each edge (i.e.
|
protected java.util.List<Node> |
buildSpanningPath(Node startNode)
Tries to find a spanning path starting from node
startNode . |
static CombineWayAction.NodeGraph |
createDirectedGraphFromNodePairs(java.util.List<CombineWayAction.NodePair> pairs) |
static CombineWayAction.NodeGraph |
createDirectedGraphFromWays(java.util.Collection<Way> ways) |
static CombineWayAction.NodeGraph |
createNearlyUndirectedGraphFromNodeWays(java.util.Collection<Way> ways) |
static CombineWayAction.NodeGraph |
createUndirectedGraphFromNodeList(java.util.List<CombineWayAction.NodePair> pairs)
Create an undirected graph from the given node pairs.
|
static CombineWayAction.NodeGraph |
createUndirectedGraphFromNodeWays(java.util.Collection<Way> ways)
Create an undirected graph from the given ways, but prevent reversing of all
non-new ways by fix one direction.
|
static java.util.List<CombineWayAction.NodePair> |
eliminateDuplicateNodePairs(java.util.List<CombineWayAction.NodePair> pairs) |
protected java.util.Set<Node> |
getNodes() |
protected java.util.List<CombineWayAction.NodePair> |
getOutboundPairs(CombineWayAction.NodePair pair) |
protected java.util.List<CombineWayAction.NodePair> |
getOutboundPairs(Node node) |
protected java.util.Set<Node> |
getTerminalNodes() |
protected boolean |
isSpanningWay(java.util.Stack<CombineWayAction.NodePair> way) |
protected boolean |
isTerminalNode(Node n) |
protected void |
prepare() |
protected void |
rememberPredecessors(CombineWayAction.NodePair pair) |
protected void |
rememberSuccessor(CombineWayAction.NodePair pair) |
private final java.util.Set<CombineWayAction.NodePair> edges
private int numUndirectedEges
private final java.util.Map<Node,java.util.List<CombineWayAction.NodePair>> successors
private final java.util.Map<Node,java.util.List<CombineWayAction.NodePair>> predecessors
public NodeGraph()
NodeGraph
.public static java.util.List<CombineWayAction.NodePair> buildNodePairs(Way way, boolean directed)
public static java.util.List<CombineWayAction.NodePair> buildNodePairs(java.util.List<Way> ways, boolean directed)
public static java.util.List<CombineWayAction.NodePair> eliminateDuplicateNodePairs(java.util.List<CombineWayAction.NodePair> pairs)
public static CombineWayAction.NodeGraph createDirectedGraphFromNodePairs(java.util.List<CombineWayAction.NodePair> pairs)
public static CombineWayAction.NodeGraph createDirectedGraphFromWays(java.util.Collection<Way> ways)
public static CombineWayAction.NodeGraph createUndirectedGraphFromNodeList(java.util.List<CombineWayAction.NodePair> pairs)
pairs
- Node pairs to build the graph frompublic static CombineWayAction.NodeGraph createUndirectedGraphFromNodeWays(java.util.Collection<Way> ways)
ways
- Ways to build the graph frompublic static CombineWayAction.NodeGraph createNearlyUndirectedGraphFromNodeWays(java.util.Collection<Way> ways)
protected void rememberSuccessor(CombineWayAction.NodePair pair)
protected void rememberPredecessors(CombineWayAction.NodePair pair)
protected boolean isTerminalNode(Node n)
protected void prepare()
public void add(CombineWayAction.NodePair pair)
public void add(java.util.List<CombineWayAction.NodePair> pairs)
protected java.util.Set<Node> getTerminalNodes()
protected java.util.List<CombineWayAction.NodePair> getOutboundPairs(CombineWayAction.NodePair pair)
protected java.util.List<CombineWayAction.NodePair> getOutboundPairs(Node node)
protected boolean isSpanningWay(java.util.Stack<CombineWayAction.NodePair> way)
protected java.util.List<Node> buildPathFromNodePairs(java.util.Stack<CombineWayAction.NodePair> path)
protected java.util.List<Node> buildSpanningPath(Node startNode)
startNode
.
Traverses the path in depth-first order.startNode
- the start nodepublic java.util.List<Node> buildSpanningPath()