void fillEdges(SPTEntry currEdge, PriorityQueue<SPTEntry> prioQueue,
IntObjectMap<SPTEntry> bestWeightMap, EdgeExplorer explorer, boolean reverse) {
EdgeIterator iter = explorer.setBaseNode(currEdge.adjNode);
while (iter.next()) {
if (!accept(iter, currEdge.edge))
continue;
int traversalId = traversalMode.createTraversalId(iter, reverse);
double tmpWeight = weighting.calcWeight(iter, reverse, currEdge.edge) + currEdge.weight;
if (Double.isInfinite(tmpWeight))
continue;
SPTEntry ee = bestWeightMap.get(traversalId);
if (ee == null) {
ee = new SPTEntry(iter.getEdge(), iter.getAdjNode(), tmpWeight);
ee.parent = currEdge;
bestWeightMap.put(traversalId, ee);
prioQueue.add(ee);
} else if (ee.weight > tmpWeight) {
prioQueue.remove(ee);
ee.edge = iter.getEdge();
ee.weight = tmpWeight;
ee.parent = currEdge;
prioQueue.add(ee);
} else
continue;
if (updateBestPath)
updateBestPath(iter, ee, traversalId);
}
}