private void setOrigEdgeCount( int edgeId, int value ) { edgeId -= maxEdgesCount; if (edgeId < 0) { // ignore setting as every normal edge has original edge count of 1 if (value != 1) throw new IllegalStateException("Trying to set original edge count for normal edge to a value = " + value + ", edge:" + (edgeId + maxEdgesCount) + ", max:" + maxEdgesCount + ", graph.max:" + ghStorage.getAllEdges().getMaxId()); return; } long tmp = (long) edgeId * 4; originalEdges.ensureCapacity(tmp + 4); originalEdges.setInt(tmp, value); }
private void setOrigEdgeCount(int edgeId, int value) { edgeId -= maxEdgesCount; if (edgeId < 0) { // ignore setting as every normal edge has original edge count of 1 if (value != 1) throw new IllegalStateException("Trying to set original edge count for normal edge to a value = " + value + ", edge:" + (edgeId + maxEdgesCount) + ", max:" + maxEdgesCount + ", graph.max:" + ghStorage.getAllEdges().getMaxId()); return; } long tmp = (long) edgeId * 4; originalEdges.ensureCapacity(tmp + 4); originalEdges.setInt(tmp, value); }
public static void printEdgeInfo(final Graph g, FlagEncoder encoder) { System.out.println("-- Graph n:" + g.getNodes() + " e:" + g.getAllEdges().getMaxId() + " ---"); AllEdgesIterator iter = g.getAllEdges(); while (iter.next()) { String sc = ""; if (iter instanceof AllCHEdgesIterator) { AllCHEdgesIterator aeSkip = (AllCHEdgesIterator) iter; sc = aeSkip.isShortcut() ? "sc" : " "; } String fwdStr = iter.isForward(encoder) ? "fwd" : " "; String bckStr = iter.isBackward(encoder) ? "bckwd" : ""; System.out.println(sc + " " + iter + " " + fwdStr + " " + bckStr); } }
public static void printEdgeInfo( final Graph g, FlagEncoder encoder ) { System.out.println("-- Graph n:" + g.getNodes() + " e:" + g.getAllEdges().getMaxId() + " ---"); AllEdgesIterator iter = g.getAllEdges(); while (iter.next()) { String sc = ""; if (iter instanceof AllCHEdgesIterator) { AllCHEdgesIterator aeSkip = (AllCHEdgesIterator) iter; sc = aeSkip.isShortcut() ? "sc" : " "; } String fwdStr = iter.isForward(encoder) ? "fwd" : " "; String bckStr = iter.isBackward(encoder) ? "bckwd" : ""; System.out.println(sc + " " + iter + " " + fwdStr + " " + bckStr); } }
/** * Internal method to clean up the graph. */ protected void cleanUp() { int prevNodeCount = ghStorage.getNodes(); PrepareRoutingSubnetworks preparation = new PrepareRoutingSubnetworks(ghStorage, encodingManager.fetchEdgeEncoders()); preparation.setMinNetworkSize(minNetworkSize); preparation.setMinOneWayNetworkSize(minOneWayNetworkSize); logger.info("start finding subnetworks, " + Helper.getMemInfo()); preparation.doWork(); int currNodeCount = ghStorage.getNodes(); logger.info("edges: " + ghStorage.getAllEdges().getMaxId() + ", nodes " + currNodeCount + ", there were " + preparation.getMaxSubnetworks() + " subnetworks. removed them => " + (prevNodeCount - currNodeCount) + " less nodes"); }
/** * Internal method to clean up the graph. */ protected void cleanUp() { int prevNodeCount = ghStorage.getNodes(); PrepareRoutingSubnetworks preparation = new PrepareRoutingSubnetworks(ghStorage, encodingManager.fetchEdgeEncoders()); preparation.setMinNetworkSize(minNetworkSize); preparation.setMinOneWayNetworkSize(minOneWayNetworkSize); logger.info("start finding subnetworks, " + Helper.getMemInfo()); preparation.doWork(); int currNodeCount = ghStorage.getNodes(); logger.info("edges: " + ghStorage.getAllEdges().getMaxId() + ", nodes " + currNodeCount + ", there were " + preparation.getMaxSubnetworks() + " subnetworks. removed them => " + (prevNodeCount - currNodeCount) + " less nodes"); }
public QueryGraph( Graph graph ) { mainGraph = graph; mainNodeAccess = graph.getNodeAccess(); mainNodes = graph.getNodes(); mainEdges = graph.getAllEdges().getMaxId(); if (mainGraph.getExtension() instanceof TurnCostExtension) wrappedExtension = new QueryGraphTurnExt(); else wrappedExtension = mainGraph.getExtension(); // create very lightweight QueryGraph which uses variables from this QueryGraph (same virtual edges) baseGraph = new QueryGraph(graph.getBaseGraph(), this); }
private void interpolateElevationsOfTowerNodes() { final AllEdgesIterator edge = storage.getAllEdges(); final GHBitSet visitedEdgeIds = new GHBitSetImpl(edge.getMaxId()); final EdgeExplorer edgeExplorer = storage.createEdgeExplorer(); while (edge.next()) { final int edgeId = edge.getEdge(); if (isInterpolatableEdge(edge)) { if (!visitedEdgeIds.contains(edgeId)) { interpolateEdge(edge, visitedEdgeIds, edgeExplorer); } } visitedEdgeIds.add(edgeId); } }
public QueryGraph(Graph graph) { mainGraph = graph; mainNodeAccess = graph.getNodeAccess(); mainNodes = graph.getNodes(); mainEdges = graph.getAllEdges().getMaxId(); if (mainGraph.getExtension() instanceof TurnCostExtension) wrappedExtension = new QueryGraphTurnExt(); else wrappedExtension = mainGraph.getExtension(); // create very lightweight QueryGraph which uses variables from this QueryGraph (same virtual edges) baseGraph = new QueryGraph(graph.getBaseGraph(), this) { // override method to avoid stackoverflow @Override public QueryGraph setUseEdgeExplorerCache(boolean useEECache) { baseGraph.useEdgeExplorerCache = useEECache; return baseGraph; } }; }
PrepareContractionHierarchies initFromGraph() { ghStorage.freeze(); maxEdgesCount = ghStorage.getAllEdges().getMaxId(); FlagEncoder prepareFlagEncoder = prepareWeighting.getFlagEncoder(); vehicleInExplorer = prepareGraph.createEdgeExplorer(new DefaultEdgeFilter(prepareFlagEncoder, true, false));
PrepareContractionHierarchies initFromGraph() maxEdgesCount = ghStorage.getAllEdges().getMaxId(); vehicleInExplorer = prepareGraph.createEdgeExplorer(new DefaultEdgeFilter(prepareFlagEncoder, true, false)); vehicleOutExplorer = prepareGraph.createEdgeExplorer(new DefaultEdgeFilter(prepareFlagEncoder, false, true));