From 05115c91cec93d73631bd7e3fcb4ef19f8952da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20M=C3=B6ller?= Date: Mon, 10 Dec 2012 17:20:15 +0100 Subject: [PATCH] fixup move --- .../function_objects_polynomial_sphere.h | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h b/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h index 852f4fa912c..8455616fa03 100644 --- a/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h +++ b/Circular_kernel_3/include/CGAL/Circular_kernel_3/function_objects_polynomial_sphere.h @@ -1114,7 +1114,7 @@ template < class SK > \ #define CGAL_SPHERICAL_KERNEL_MACRO_DO_INTERSECTION_3_3(A,B,C) \ result_type \ operator()(const A & c1, const B & c2, const C & c3) const \ - { std::vector< typename ITs::result_type > res; \ + { std::vector< typename boost::result_of::type > res; \ typename SK::Intersect_3()(c1,c2,c3,std::back_inserter(res)); \ return !res.empty(); } @@ -1233,7 +1233,7 @@ template < class SK > \ template struct result - { typedef boost::variant< std::pair > type; }; + { typedef boost::variant< std::pair , Circle_3 > type; }; template struct result @@ -1260,6 +1260,25 @@ template < class SK > \ { typedef boost::variant< std::pair , Line_arc_3 > type; }; + private: + struct intersect_ternary { + typedef boost::variant< Circle_3, Plane_3, Sphere_3, + std::pair< Circular_arc_point_3, unsigned > + > type; + }; + public: + + // the ternary intersection + template + struct result : intersect_ternary {}; + template + struct result : intersect_ternary {}; + template + struct result : intersect_ternary {}; + template + struct result : intersect_ternary {}; + template + struct result : intersect_ternary {}; #endif // forward the intersection functions from the linear kernel