From ce6501a2910c6c58fc4c13da62b5e3465b38df8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20M=C3=B6ller?= Date: Fri, 20 Nov 2015 12:13:26 +0100 Subject: [PATCH] Use the original algorithm --- AABB_tree/include/CGAL/AABB_traits.h | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/AABB_tree/include/CGAL/AABB_traits.h b/AABB_tree/include/CGAL/AABB_traits.h index 090c331b957..84c8620118d 100644 --- a/AABB_tree/include/CGAL/AABB_traits.h +++ b/AABB_tree/include/CGAL/AABB_traits.h @@ -141,19 +141,25 @@ struct AABB_traits_base_2{ FT t1 = (bbox.min(i) - *source_iter) / *direction_iter; FT t2 = (bbox.max(i) - *source_iter) / *direction_iter; - t_near = (std::max)(t_near, (std::min)(t1, t2)); - t_far = (std::min)(t_far, (std::max)(t1, t2)); + + if(t1 > t2) + std::swap(t1, t2); + if(t1 > t_near) + t_near = t1; + if(t2 < t_far) + t_far = t2; + + if(t_near > t_far) + return boost::none; + if(t_far < 0) + return boost::none; } } - if(t_far > t_near && t_far > 0) { + if(t_near < FT(0.)) + return FT(0.); + else return t_near; - if(t_far > t_near && t_far > FT(0.)) { - if(t_near < FT(0.)) - return FT(0.); - else - return t_near; - } else { return boost::none; } }