@@ -71,14 +71,11 @@ public AbstractNonCHBidirAlgo(Graph graph, Weighting weighting, TraversalMode tM
71
71
* expansion.
72
72
*
73
73
* @param edge the edge that is currently processed for the expansion
74
- * @param incEdge the id of the edge that is incoming to the node the edge is pointed at. usually this is the same as
75
- * edge.getEdge(), but for edge-based CH and in case edge is a shortcut incEdge is the original edge
76
- * that is incoming to the node
77
74
* @param weight the weight the shortest path three entry should carry
78
75
* @param parent the parent entry of in the shortest path tree
79
76
* @param reverse true if we are currently looking at the backward search, false otherwise
80
77
*/
81
- protected abstract SPTEntry createEntry (EdgeIteratorState edge , int incEdge , double weight , SPTEntry parent , boolean reverse );
78
+ protected abstract SPTEntry createEntry (EdgeIteratorState edge , double weight , SPTEntry parent , boolean reverse );
82
79
83
80
protected BidirPathExtractor createPathExtractor (Graph graph , Weighting weighting ) {
84
81
return new BidirPathExtractor (graph , weighting );
@@ -174,16 +171,15 @@ private void fillEdges(SPTEntry currEdge, PriorityQueue<SPTEntry> prioQueue, Int
174
171
if (Double .isInfinite (weight )) {
175
172
continue ;
176
173
}
177
- final int origEdgeId = getOrigEdgeId (iter , reverse );
178
- final int traversalId = getTraversalId (iter , origEdgeId , reverse );
174
+ final int traversalId = traversalMode .createTraversalId (iter , reverse );
179
175
SPTEntry entry = bestWeightMap .get (traversalId );
180
176
if (entry == null ) {
181
- entry = createEntry (iter , origEdgeId , weight , currEdge , reverse );
177
+ entry = createEntry (iter , weight , currEdge , reverse );
182
178
bestWeightMap .put (traversalId , entry );
183
179
prioQueue .add (entry );
184
180
} else if (entry .getWeightOfVisitedPath () > weight ) {
185
181
prioQueue .remove (entry );
186
- updateEntry (entry , iter , origEdgeId , weight , currEdge , reverse );
182
+ updateEntry (entry , iter , weight , currEdge , reverse );
187
183
prioQueue .add (entry );
188
184
} else
189
185
continue ;
@@ -193,12 +189,12 @@ private void fillEdges(SPTEntry currEdge, PriorityQueue<SPTEntry> prioQueue, Int
193
189
double edgeWeight = traversalMode .isEdgeBased () ? weighting .calcEdgeWeight (iter , reverse ) : Double .POSITIVE_INFINITY ;
194
190
// todo: performance - if bestWeightMapOther.get(traversalId) == null, updateBestPath will exit early and we might
195
191
// have calculated the edgeWeight unnecessarily
196
- updateBestPath (edgeWeight , entry , origEdgeId , traversalId , reverse );
192
+ updateBestPath (edgeWeight , entry , EdgeIterator . NO_EDGE , traversalId , reverse );
197
193
}
198
194
}
199
195
}
200
196
201
- protected void updateEntry (SPTEntry entry , EdgeIteratorState edge , int edgeId , double weight , SPTEntry parent , boolean reverse ) {
197
+ protected void updateEntry (SPTEntry entry , EdgeIteratorState edge , double weight , SPTEntry parent , boolean reverse ) {
202
198
entry .edge = edge .getEdge ();
203
199
entry .weight = weight ;
204
200
entry .parent = parent ;
@@ -208,14 +204,6 @@ protected boolean accept(EdgeIteratorState edge, SPTEntry currEdge, boolean reve
208
204
return accept (edge , getIncomingEdge (currEdge ));
209
205
}
210
206
211
- protected int getOrigEdgeId (EdgeIteratorState edge , boolean reverse ) {
212
- return edge .getEdge ();
213
- }
214
-
215
- protected int getTraversalId (EdgeIteratorState edge , int origEdgeId , boolean reverse ) {
216
- return traversalMode .createTraversalId (edge , reverse );
217
- }
218
-
219
207
protected double calcWeight (EdgeIteratorState iter , SPTEntry currEdge , boolean reverse ) {
220
208
// todo: for #1835 move access flag checks into weighting
221
209
final boolean access = reverse ? inEdgeFilter .accept (iter ) : outEdgeFilter .accept (iter );
0 commit comments