@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }
private void expandEdge(CHEdgeIteratorState edge, boolean reverse) { if (!edge.isShortcut()) { distance += edge.getDistance(); time += weighting.calcMillis(edge, reverse, EdgeIterator.NO_EDGE); addEdge(edge.getEdge()); return; } expandSkippedEdges(edge.getSkippedEdge1(), edge.getSkippedEdge2(), edge.getBaseNode(), edge.getAdjNode(), reverse); }
@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); }
distance += dist; long flags = mainEdgeState.getFlags(); time += calcMillis(dist, flags, reverse); addEdge(mainEdgeState.getEdge()); return; edgeState = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, to); expandEdge(edgeState, false); edgeState = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, from); expandEdge(edgeState, true); } else iter = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, from); expandEdge(iter, true); iter = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, to); expandEdge(iter, false);
distance += mainEdgeState.getDistance(); time += weighting.calcMillis(mainEdgeState, reverse, EdgeIterator.NO_EDGE); addEdge(mainEdgeState.getEdge()); return; edgeState = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, to); expandEdge(edgeState, false); edgeState = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, from); expandEdge(edgeState, true); } else { CHEdgeIteratorState iter = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge1, from); iter = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, from); expandEdge(iter, true); iter = (CHEdgeIteratorState) routingGraph.getEdgeIteratorState(skippedEdge2, to); expandEdge(iter, false);
@Override protected final void processEdge(int tmpEdge, int endNode, int prevEdgeId) { // Shortcuts do only contain valid weight so first expand before adding // to distance and time expandEdge((CHEdgeIteratorState) routingGraph.getEdgeIteratorState(tmpEdge, endNode), false); }
@Override protected final void processEdge( int tmpEdge, int endNode ) { // Shortcuts do only contain valid weight so first expand before adding // to distance and time expandEdge((CHEdgeIteratorState) routingGraph.getEdgeIteratorState(tmpEdge, endNode), false); }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }
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); } }
private void expandEdge(CHEdgeIteratorState edge, boolean reverse) { if (!edge.isShortcut()) { distance += edge.getDistance(); time += weighting.calcMillis(edge, reverse, EdgeIterator.NO_EDGE); addEdge(edge.getEdge()); return; } expandSkippedEdges(edge.getSkippedEdge1(), edge.getSkippedEdge2(), edge.getBaseNode(), edge.getAdjNode(), reverse); }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }
@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); }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }
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 Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), flagEncoder); return bestPath; }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), flagEncoder); return bestPath; }
@Override protected Path createAndInitPath() { bestPath = new Path4CH(graph, graph.getBaseGraph(), weighting); return bestPath; }