this->InvokeEvent( TEvent( node.Vertex, node.FrontId, false ) );
if( !( this->_IsMarked( node.Vertex ) ) )
{
- // Mark it
- if( this->_Mark( node.Vertex, node.FrontId ) )
- {
- // Update output value
- this->_UpdateOutputValue( node );
+ // Update output value and mark vertex
+ this->_UpdateOutputValue( node );
+ this->_Mark( node.Vertex, node.FrontId );
+ // The actual node was effectively marked?
+ if( node.FrontId > 0 )
+ {
// Add neighborhood
TNeighborhood neighbors = this->_GetNeighbors( node.Vertex );
typename TNeighborhood::const_iterator nIt = neighbors.begin( );
nnode.Vertex = *nIt;
nnode.Parent = node.Vertex;
nnode.FrontId = node.FrontId;
- if( this->_ComputeOutputValue( nnode ) )
- {
- this->_QueuePush( nnode );
- this->InvokeEvent( TEvent( nnode.Vertex, nnode.FrontId, true ) );
-
- } // fi
+ this->_ComputeOutputValue( nnode );
+ this->_QueuePush( nnode );
+ this->InvokeEvent( TEvent( nnode.Vertex, nnode.FrontId, true ) );
} // fi
++nIt;