diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/intersection_3_1_impl.h b/Intersections_3/include/CGAL/Intersections_3/internal/intersection_3_1_impl.h index 9b2ff958e8d..8ac11d3310f 100644 --- a/Intersections_3/include/CGAL/Intersections_3/internal/intersection_3_1_impl.h +++ b/Intersections_3/include/CGAL/Intersections_3/internal/intersection_3_1_impl.h @@ -1681,6 +1681,8 @@ inline bool do_intersect(const Plane_3 &plane1, const Plane_3 &plane2, const Plane_3 &plane3, const R& r) { + typedef typename R::RT RT; + if(! is_zero(determinant(plane1.a(), plane1.b(), plane1.c(), plane2.a(), plane2.b(), plane2.c(), plane3.a(), plane3.b(), plane3.c()))){ @@ -1703,9 +1705,9 @@ do_intersect(const Plane_3 &plane1, const Plane_3 &plane2, if(b23 && ((plane2 == plane3)||(plane2 == plane3.opposite() ))) return true; } - int rd = rank_34(plane1.a(), plane1.b(), plane1.c(), plane1.d(), - plane2.a(), plane2.b(), plane2.c(), plane2.d(), - plane3.a(), plane3.b(), plane3.c(), plane3.d()); + int rd = rank_34(plane1.a(), plane1.b(), plane1.c(), plane1.d(), + plane2.a(), plane2.b(), plane2.c(), plane2.d(), + plane3.a(), plane3.b(), plane3.c(), plane3.d()); return rd == 2; } diff --git a/Kernel_23/include/CGAL/rank.h b/Kernel_23/include/CGAL/rank.h index 58c2c5ac09a..2951e92c562 100644 --- a/Kernel_23/include/CGAL/rank.h +++ b/Kernel_23/include/CGAL/rank.h @@ -50,21 +50,21 @@ int rank_32(const RT& a0, const RT& b0, { if (a2==0) { - return rank_31(b0,b1,b2); + return rank_31(b0,b1,b2); } else { - return 1 + rank_21(b0, b1); + return 1 + rank_21(b0, b1); } } else { - return 1 + rank_21(b0, a1*b2-a2*b1); + return 1 + rank_21(b0, a1*b2-a2*b1); } } else { - return 1 + rank_21(a0*b1-a1*b0, a0*b2-a2*b0); + return 1 + rank_21(a0*b1-a1*b0, a0*b2-a2*b0); } } @@ -76,12 +76,12 @@ int rank_22(const RT& a0, const RT& b0, { if (a1==0) { - return rank_21(b0,b1); + return rank_21(b0,b1); } else - return 1 + rank_11(b0); + return 1 + rank_11(b0); } - return 1 + rank_11(a0*b1-a1*b0); + return 1 + rank_11(a0*b1-a1*b0); } template @@ -95,19 +95,19 @@ int rank_33(const RT& a0, const RT& b0, const RT& c0, { if (a2==0) { - return rank_32(b0, c0, b1, c1, b2, c2); + return rank_32(b0, c0, b1, c1, b2, c2); } else { - return 1 + rank_22(b0, c0, b1, c1); + return 1 + rank_22(b0, c0, b1, c1); } } else - return 1 + rank_22(b0, c0, a1*b2-a2*b1, a1*c2-a2*c1); + return 1 + rank_22(b0, c0, a1*b2-a2*b1, a1*c2-a2*c1); } else { - return 1 + rank_22(a0*b1-a1*b0, a0*c1-a1*c0, a0*b2-a2*b0, a0*c2-a2*c0); + return 1 + rank_22(a0*b1-a1*b0, a0*c1-a1*c0, a0*b2-a2*b0, a0*c2-a2*c0); } } @@ -120,14 +120,14 @@ int rank_23(const RT& a0, const RT& b0, const RT& c0, { if (a1==0) { - return rank_22(b0, c0, b1, c1); + return rank_22(b0, c0, b1, c1); } else - return 1 + rank_12(b0,c0); + return 1 + rank_12(b0,c0); } else { - return 1 + rank_12(a0*b1-a1*b0,a0*c1-a1*c0); + return 1 + rank_12(a0*b1-a1*b0,a0*c1-a1*c0); } } @@ -143,19 +143,19 @@ int rank_34(const RT& a0, const RT& b0, const RT& c0, const RT& d0, { if (a2==0) { - return rank_33(b0, c0, d0, b1, c1, d1, b2, c2, d2); + return rank_33(b0, c0, d0, b1, c1, d1, b2, c2, d2); } else { - return 1 + rank_23(b0, c0, d0, b1, c1, d1); + return 1 + rank_23(b0, c0, d0, b1, c1, d1); } } else - return 1 + rank_23(b0, c0, d0,a1*b2-a2*b1, a1*c2-a2*c1, a1*d2 - a2*d1); + return 1 + rank_23(b0, c0, d0,a1*b2-a2*b1, a1*c2-a2*c1, a1*d2 - a2*d1); } else { - return 1 + rank_23(a0*b1-a1*b0, a0*c1-a1*c0, a0*d1-a1*d0, a0*b2-a2*b0, a0*c2-a2*c0, a0*d2-a2*d0); + return 1 + rank_23(a0*b1-a1*b0, a0*c1-a1*c0, a0*d1-a1*d0, a0*b2-a2*b0, a0*c2-a2*c0, a0*d2-a2*d0); } }