From d1e2f14971adcfc8e653554a5d2d75c65bf349c4 Mon Sep 17 00:00:00 2001 From: Monique Teillaud Date: Thu, 16 Sep 1999 13:09:06 +0000 Subject: [PATCH] discovered an illegal comparison between points (not using the traits class) in Triangulation_3 problem with typenames in Regular_triangulation_euclidean_traits_3 equal(p,q) changed in Triangulation_geom_traits_3.h --- .../include/CGAL/Regular_triangulation_euclidean_traits_3.h | 5 +++++ Packages/Triangulation_3/include/CGAL/Triangulation_3.h | 2 +- .../include/CGAL/Triangulation_geom_traits_3.h | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Packages/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h b/Packages/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h index a3e32d2bc85..ff3fc4200f3 100644 --- a/Packages/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h +++ b/Packages/Triangulation_3/include/CGAL/Regular_triangulation_euclidean_traits_3.h @@ -43,8 +43,13 @@ CGAL_BEGIN_NAMESPACE +#ifndef CGAL_CFG_TYPENAME_BUG template < class Repres, class Weight = typename Repres::RT> class Regular_triangulation_euclidean_traits_3 +#else +template < class Repres, class Weight = Repres::RT> +class Regular_triangulation_euclidean_traits_3 +#endif // CGAL_CFG_TYPENAME_BUG : public Triangulation_geom_traits_3 { public: diff --git a/Packages/Triangulation_3/include/CGAL/Triangulation_3.h b/Packages/Triangulation_3/include/CGAL/Triangulation_3.h index d029c115295..b06f62eee69 100644 --- a/Packages/Triangulation_3/include/CGAL/Triangulation_3.h +++ b/Packages/Triangulation_3/include/CGAL/Triangulation_3.h @@ -1768,7 +1768,7 @@ locate(const Point & p, case 0: { Vertex_iterator vit = finite_vertices_begin(); - if ( p != vit->point() ) { + if ( ! geom_traits().equal( p, vit->point() ) ) { lt = OUTSIDE_AFFINE_HULL; } else { diff --git a/Packages/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h b/Packages/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h index aef322f364f..4b19f5607f0 100644 --- a/Packages/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h +++ b/Packages/Triangulation_3/include/CGAL/Triangulation_geom_traits_3.h @@ -65,7 +65,9 @@ public: bool equal(const Point & p, const Point & q) const { - return (p == q); + return ( CGAL::compare_x(p, q)== EQUAL && + CGAL::compare_y(p, q)== EQUAL && + CGAL::compare_z(p, q)== EQUAL ); } Comparison_result compare_x(const Point & p, const Point & q) const