@Override public CHEdgeIteratorState edge(int a, int b) { // increase edge array not for shortcuts baseGraph.ensureNodeIndex(Math.max(a, b)); int edgeId = baseGraph.edgeAccess.internalEdgeAdd(baseGraph.nextEdgeId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, baseGraph.edgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(edgeId, b); assert ret; return iter; }
@Override public CHEdgeIteratorState shortcut(int a, int b) { if (!baseGraph.isFrozen()) throw new IllegalStateException("Cannot create shortcut if graph is not yet frozen"); checkNodeId(a); checkNodeId(b); int scId = chEdgeAccess.internalEdgeAdd(nextShortcutId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, chEdgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(scId, b); assert ret; iter.setSkippedEdges(EdgeIterator.NO_EDGE, EdgeIterator.NO_EDGE); return iter; }
@Override public CHEdgeIteratorState edge(int a, int b) { // increase edge array not for shortcuts baseGraph.ensureNodeIndex(Math.max(a, b)); int edgeId = baseGraph.edgeAccess.internalEdgeAdd(baseGraph.nextEdgeId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, baseGraph.edgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(edgeId, b); assert ret; return iter; }
@Override public CHEdgeIteratorState shortcut( int a, int b ) { if (!baseGraph.isFrozen()) throw new IllegalStateException("Cannot create shortcut if graph is not yet frozen"); checkNodeId(a); checkNodeId(b); int scId = chEdgeAccess.internalEdgeAdd(nextShortcutId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, chEdgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(scId, b); assert ret; iter.setSkippedEdges(EdgeIterator.NO_EDGE, EdgeIterator.NO_EDGE); return iter; }
@Override public CHEdgeIteratorState shortcut(int a, int b) { if (!baseGraph.isFrozen()) throw new IllegalStateException("Cannot create shortcut if graph is not yet frozen"); checkNodeId(a); checkNodeId(b); int scId = chEdgeAccess.internalEdgeAdd(nextShortcutId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, chEdgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(scId, b); assert ret; iter.setSkippedEdges(EdgeIterator.NO_EDGE, EdgeIterator.NO_EDGE); return iter; }
@Override public CHEdgeIteratorState shortcut(int a, int b) { if (!baseGraph.isFrozen()) throw new IllegalStateException("Cannot create shortcut if graph is not yet frozen"); checkNodeId(a); checkNodeId(b); int scId = chEdgeAccess.internalEdgeAdd(nextShortcutId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, chEdgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(scId, b); assert ret; iter.setSkippedEdges(EdgeIterator.NO_EDGE, EdgeIterator.NO_EDGE); return iter; }
@Override public CHEdgeIteratorState edge( int a, int b ) { // increase edge array not for shortcuts baseGraph.ensureNodeIndex(Math.max(a, b)); int edgeId = baseGraph.edgeAccess.internalEdgeAdd(baseGraph.nextEdgeId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, baseGraph.edgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(edgeId, b); assert ret; return iter; }
@Override public CHEdgeIteratorState edge(int a, int b) { // increase edge array not for shortcuts baseGraph.ensureNodeIndex(Math.max(a, b)); int edgeId = baseGraph.edgeAccess.internalEdgeAdd(baseGraph.nextEdgeId(), a, b); CHEdgeIteratorImpl iter = new CHEdgeIteratorImpl(baseGraph, baseGraph.edgeAccess, EdgeFilter.ALL_EDGES); boolean ret = iter.init(edgeId, b); assert ret; return iter; }