@Override protected final void processEdge(int edgeId, int endNode, int prevEdgeId) { // Shortcuts do only contain valid weight so first expand before adding // to distance and time expandEdge(getEdge(edgeId, endNode), false); }
private void expandSkippedEdges(int skippedEdge1, int skippedEdge2, int from, int to, boolean reverse) { // get properties like speed of the edge in the correct direction if (reverseOrder == reverse) { int tmp = from; from = to; to = tmp; } // getEdgeProps could possibly return an empty edge if the shortcut is available for both directions CHEdgeIteratorState sk2to = getEdge(skippedEdge2, to); if (sk2to != null) { expandEdge(sk2to, !reverseOrder); expandEdge(getEdge(skippedEdge1, from), reverseOrder); } else { expandEdge(getEdge(skippedEdge1, to), !reverseOrder); expandEdge(getEdge(skippedEdge2, from), reverseOrder); } }
@Override protected final void processEdge(int edgeId, int endNode, int prevEdgeId) { // Shortcuts do only contain valid weight so first expand before adding // to distance and time expandEdge(getEdge(edgeId, endNode), false); }
private void expandSkippedEdges(int skippedEdge1, int skippedEdge2, int from, int to, boolean reverse) { // get properties like speed of the edge in the correct direction if (reverseOrder == reverse) { int tmp = from; from = to; to = tmp; } // getEdgeProps could possibly return an empty edge if the shortcut is available for both directions CHEdgeIteratorState sk2to = getEdge(skippedEdge2, to); if (sk2to != null) { expandEdge(sk2to, !reverseOrder); expandEdge(getEdge(skippedEdge1, from), reverseOrder); } else { expandEdge(getEdge(skippedEdge1, to), !reverseOrder); expandEdge(getEdge(skippedEdge2, from), reverseOrder); } }