From 0a884cc64ae8c157e1ee2379c9021acbb1dffca3 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Wed, 31 Dec 2014 16:02:54 +0100 Subject: [PATCH] don't stop traversing at bollard node --- algorithms/tiny_components.hpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/algorithms/tiny_components.hpp b/algorithms/tiny_components.hpp index 6821bcd8b..474365cdc 100644 --- a/algorithms/tiny_components.hpp +++ b/algorithms/tiny_components.hpp @@ -143,18 +143,21 @@ class TarjanSCC tarjan_node_list[v].on_stack = true; ++index; - // Traverse outgoing edges - if (barrier_node_set.find(v) != barrier_node_set.end()) - { - continue; - } - const NodeID to_node_of_only_restriction = m_restriction_map.CheckForEmanatingIsOnlyTurn(u, v); for (const auto current_edge : m_node_based_graph->GetAdjacentEdgeRange(v)) { const auto vprime = m_node_based_graph->GetTarget(current_edge); + + // Traverse outgoing edges + if (barrier_node_set.find(v) != barrier_node_set.end() && + u != vprime) + { + // continue; + } + + if (to_node_of_only_restriction != std::numeric_limits::max() && vprime == to_node_of_only_restriction) {