diff --git a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_node.h b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_node.h
index 2bbac2230c6..87e74fb18f0 100644
--- a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_node.h
+++ b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_node.h
@@ -240,22 +240,29 @@ AABB_node
::traversal_with_priority(const Query& query,
{
if (iright)
{
+ // Both children have to be inspected
if(pleft >= pright)
{
+ // Inspect left first, has higher priority
left_child().traversal_with_priority(query, traits, nb_primitives/2);
- if( traits.go_further() /* && traits.do_intersect(query, right_child()) */ ) // TODO shall we call again do_intersect?
+ if( traits.go_further() ) //&& traits.do_intersect(query, right_child()) ) // TODO shall we call again do_intersect? (Benchmarks show it slows down the Hausdorff Distance)
right_child().traversal_with_priority(query, traits, nb_primitives-nb_primitives/2);
}
else
{
+ // Inspect right first, has higher priority
right_child().traversal_with_priority(query, traits, nb_primitives-nb_primitives/2);
- if( traits.go_further() /* && traits.do_intersect(query, left_child()) */ ) // TODO shall we call again do_intersect?
+ if( traits.go_further() ) //&& traits.do_intersect(query, left_child()) ) // TODO shall we call again do_intersect? (Benchmarks show it slows down the Hausdorff Distance)
left_child().traversal_with_priority(query, traits, nb_primitives/2);
}
}
+ else
+ // Only the left child has to be inspected
+ left_child().traversal_with_priority(query, traits, nb_primitives/2);
}
else
if (iright)
+ // Only the right child has to be inspected
right_child().traversal_with_priority(query, traits, nb_primitives-nb_primitives/2);
}
}