@Override public Path extractPath() { PathNative p = new PathNative(graph, weighting, parents, edgeIds); if (endNode >= 0) p.setWeight(weights[endNode]); p.setFromNode(fromNode); // return 'not found' if invalid endNode or limit reached if (endNode < 0 || isWeightLimitExceeded()) return p; return p.setEndNode(endNode).extract(); }
@Override public Path extract() { if (endNode < 0) return this; int prevEdge = EdgeIterator.NO_EDGE; while (true) { int edgeId = parentEdges[endNode]; if (!EdgeIterator.Edge.isValid(edgeId)) break; processEdge(edgeId, endNode, prevEdge); prevEdge = edgeId; endNode = parentNodes[endNode]; } reverseOrder(); return setFound(true); } }
@Override public Path extractPath() { PathNative p = new PathNative(graph, weighting, parents, edgeIds); if (endNode >= 0) p.setWeight(weights[endNode]); p.setFromNode(fromNode); // return 'not found' if invalid endNode or limit reached if (endNode < 0 || isWeightLimitExceeded()) return p; return p.setEndNode(endNode).extract(); }
@Override public Path extract() { if (endNode < 0) return this; int prevEdge = EdgeIterator.NO_EDGE; while (true) { int edgeId = parentEdges[endNode]; if (!EdgeIterator.Edge.isValid(edgeId)) break; processEdge(edgeId, endNode, prevEdge); prevEdge = edgeId; endNode = parentNodes[endNode]; } reverseOrder(); return setFound(true); } }
@Override public Path extractPath() { PathNative p = new PathNative(graph, weighting, parents, edgeIds); if (endNode >= 0) p.setWeight(weights[endNode]); p.setFromNode(fromNode); // return 'not found' if invalid endNode or limit reached if (endNode < 0 || isWeightLimitExceeded()) return p; return p.setEndNode(endNode).extract(); }
@Override public Path extract() { if (endNode < 0) return this; int prevEdge = EdgeIterator.NO_EDGE; while (true) { int edgeId = parentEdges[endNode]; if (!EdgeIterator.Edge.isValid(edgeId)) break; processEdge(edgeId, endNode, prevEdge); prevEdge = edgeId; endNode = parentNodes[endNode]; } reverseOrder(); return setFound(true); } }
@Override public Path extractPath() { PathNative p = new PathNative(graph, flagEncoder, parents, edgeIds); if (endNode >= 0) p.setWeight(weights[endNode]); p.setFromNode(fromNode); // return 'not found' if invalid endNode or limit reached if (endNode < 0 || isWeightLimitExceeded()) return p; return p.setEndNode(endNode).extract(); }
/** * Extracts path from two shortest-path-tree */ @Override public Path extract() { if (endNode < 0) return this; while (true) { int edgeId = parentEdges[endNode]; if (!EdgeIterator.Edge.isValid(edgeId)) break; processEdge(edgeId, endNode); endNode = parentNodes[endNode]; } reverseOrder(); return setFound(true); } }