Reverting change that made path unpacking impossible
This commit is contained in:
parent
dc889cfe80
commit
b3fded0725
@ -184,6 +184,13 @@ public:
|
|||||||
return insertedNodes[removedIndex].node;
|
return insertedNodes[removedIndex].node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DeleteAll() {
|
||||||
|
for ( typename std::vector< HeapElement >::iterator i = heap.begin() + 1, iend = heap.end(); i != iend; ++i )
|
||||||
|
insertedNodes[i->index].key = 0;
|
||||||
|
heap.resize( 1 );
|
||||||
|
heap[0].weight = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void DecreaseKey( NodeID node, Weight weight ) {
|
void DecreaseKey( NodeID node, Weight weight ) {
|
||||||
const Key index = nodeIndex[node];
|
const Key index = nodeIndex[node];
|
||||||
Key key = insertedNodes[index].key;
|
Key key = insertedNodes[index].key;
|
||||||
|
@ -253,7 +253,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( distance > *targetDistance ) {
|
if ( distance > *targetDistance ) {
|
||||||
heapForward->Clear();
|
heapForward->DeleteAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for ( int edge = _firstEdge[node], endEdges = _firstEdge[node + 1]; edge != endEdges; ++edge ) {
|
for ( int edge = _firstEdge[node], endEdges = _firstEdge[node + 1]; edge != endEdges; ++edge ) {
|
||||||
|
@ -126,7 +126,7 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( distance > *_upperbound ) {
|
if ( distance > *_upperbound ) {
|
||||||
_forwardHeap->Clear();
|
_forwardHeap->DeleteAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for ( typename GraphT::EdgeIterator edge = _graph->BeginEdges( node ); edge < _graph->EndEdges(node); edge++ ) {
|
for ( typename GraphT::EdgeIterator edge = _graph->BeginEdges( node ); edge < _graph->EndEdges(node); edge++ ) {
|
||||||
@ -184,7 +184,7 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(smallestWeight != SPECIAL_EDGEID);
|
assert(smallestWeight != SPECIAL_EDGEID); //no edge found. This should not happen at all!
|
||||||
|
|
||||||
const EdgeData ed = _graph->GetEdgeData(smallestEdge);
|
const EdgeData ed = _graph->GetEdgeData(smallestEdge);
|
||||||
if(ed.shortcut)
|
if(ed.shortcut)
|
||||||
|
Loading…
Reference in New Issue
Block a user