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); }
@Test public void testEdgeFilter() { graph = createGHStorage(); CHGraph g = getGraph(graph); g.edge(0, 1, 10, true); g.edge(0, 2, 20, true); g.edge(2, 3, 30, true); g.edge(10, 11, 1, true); graph.freeze(); CHEdgeIteratorState tmpIter = g.shortcut(3, 4); tmpIter.setDistance(40).setFlags(carEncoder.setAccess(0, true, true)); assertEquals(EdgeIterator.NO_EDGE, tmpIter.getSkippedEdge1()); assertEquals(EdgeIterator.NO_EDGE, tmpIter.getSkippedEdge2()); g.shortcut(0, 4).setDistance(40).setFlags(carEncoder.setAccess(0, true, true)); g.setLevel(0, 1); g.setLevel(4, 1); EdgeIterator iter = g.createEdgeExplorer(new LevelEdgeFilter(g)).setBaseNode(0); assertEquals(1, GHUtility.count(iter)); iter = g.createEdgeExplorer().setBaseNode(2); assertEquals(2, GHUtility.count(iter)); tmpIter = g.shortcut(5, 6); tmpIter.setSkippedEdges(1, 2); assertEquals(1, tmpIter.getSkippedEdge1()); assertEquals(2, tmpIter.getSkippedEdge2()); }
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); }
int skippedEdge2 = mainEdgeState.getSkippedEdge2(); int from = mainEdgeState.getBaseNode(), to = mainEdgeState.getAdjNode();
int skippedEdge2 = mainEdgeState.getSkippedEdge2(); int from = mainEdgeState.getBaseNode(), to = mainEdgeState.getAdjNode();