diff --git a/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h b/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h index 931b6b93e27..da1a23614c7 100644 --- a/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h +++ b/Circular_kernel_2/include/CGAL/Circular_kernel_2/function_objects_polynomial_circular.h @@ -46,19 +46,45 @@ namespace CircularFunctors { public: + typedef typename CK::Linear_kernel::Compare_x_2::result_type result_type; #ifndef CGAL_CFG_MATCHING_BUG_6 - typedef typename CK::Linear_kernel::Compare_x_2::result_type result_type; using CK::Linear_kernel::Compare_x_2::operator(); #else - typedef CGAL::Comparison_result result_type; + typedef typename CK::Linear_kernel LK; + typedef typename LK::Compare_x_2 LK_Compare_x_2; + typedef typename CK::Line_2 Line_2; + result_type operator() (const Point_2 &p0, const Point_2 &p1) const { - typedef typename CK::Linear_kernel LK; - typedef typename LK::Compare_x_2 LK_Compare_x_2; return LK_Compare_x_2()(p0, p1); } + + result_type + operator() (const Point_2 &p0, + const Line_2 &p1, + const Line_2 &p2) const + { + return LK_Compare_x_2()(p0, p1,p2); + } + + result_type + operator() (const Line_2 &p0, + const Line_2 &p1, + const Line_2 &p2) const + { + return LK_Compare_x_2()(p0, p1,p2); + } + + result_type + operator() (const Line_2 &p0, + const Line_2 &p1, + const Line_2 &p2, + const Line_2 &p3) const + { + return LK_Compare_x_2()(p0, p1,p2,p3); + } #endif result_type @@ -80,19 +106,46 @@ namespace CircularFunctors { public: + typedef typename CK::Linear_kernel::Compare_y_2::result_type result_type; #ifndef CGAL_CFG_MATCHING_BUG_6 - typedef typename CK::Linear_kernel::Compare_y_2::result_type result_type; using CK::Linear_kernel::Compare_y_2::operator(); #else - typedef CGAL::Comparison_result result_type; + + typedef typename CK::Linear_kernel LK; + typedef typename LK::Compare_y_2 LK_Compare_y_2; + typedef typename CK::Line_2 Line_2; + result_type operator() (const Point_2 &p0, const Point_2 &p1) const { - typedef typename CK::Linear_kernel LK; - typedef typename LK::Compare_y_2 LK_Compare_y_2; return LK_Compare_y_2()(p0, p1); } + + result_type + operator() (const Point_2 &p0, + const Line_2 &p1, + const Line_2 &p2) const + { + return LK_Compare_y_2()(p0, p1,p2); + } + + result_type + operator() (const Line_2 &p0, + const Line_2 &p1, + const Line_2 &p2) const + { + return LK_Compare_y_2()(p0, p1,p2); + } + + result_type + operator() (const Line_2 &p0, + const Line_2 &p1, + const Line_2 &p2, + const Line_2 &p3) const + { + return LK_Compare_y_2()(p0, p1,p2,p3); + } #endif result_type @@ -113,11 +166,11 @@ namespace CircularFunctors { public: + typedef typename CK::Linear_kernel::Compare_xy_2::result_type result_type; #ifndef CGAL_CFG_MATCHING_BUG_6 - typedef typename CK::Linear_kernel::Compare_xy_2::result_type result_type; using CK::Linear_kernel::Compare_xy_2::operator(); #else - typedef CGAL::Comparison_result result_type; + result_type operator() (const Point_2 &p0, const Point_2 &p1) const @@ -253,11 +306,10 @@ namespace CircularFunctors { typedef typename LK::Circle_2 Circle_2; + typedef typename CK::Linear_kernel::Equal_2::result_type result_type; #ifndef CGAL_CFG_MATCHING_BUG_6 - typedef typename CK::Linear_kernel::Equal_2::result_type result_type; using CK::Linear_kernel::Equal_2::operator(); #else - typedef bool result_type; result_type operator() (const Point_2 &p0, @@ -268,6 +320,16 @@ namespace CircularFunctors { operator() (const Vector_2 &p0, const Vector_2 &p1) const { return LK_Equal_2()(p0,p1); } + + result_type + operator() (const Vector_2 &p0, + const Null_vector &p1) const + { return LK_Equal_2()(p0,p1); } + + result_type + operator() (const Null_vector &p0, + const Vector_2 &p1) const + { return LK_Equal_2()(p0,p1); } result_type operator() (const Direction_2 &p0, @@ -284,7 +346,7 @@ namespace CircularFunctors { result_type operator() (const Ray_2 &p0, const Ray_2 &p1) const - { return LK_Equal_2::operator()(p0,p1); } + { return LK_Equal_2()(p0,p1); } result_type operator() (const Line_2 &p0, @@ -957,14 +1019,16 @@ namespace CircularFunctors { public: + typedef typename CK::Linear_kernel::Construct_bbox_2::result_type result_type; #ifndef CGAL_CFG_MATCHING_BUG_6 - typedef typename CK::Linear_kernel::Construct_bbox_2::result_type result_type; using CK::Linear_kernel::Construct_bbox_2::operator(); #else - typedef CGAL::Bbox_2 result_type; typedef typename CK::Linear_kernel LK; typedef typename LK::Construct_bbox_2 LK_Construct_bbox_2; typedef typename LK::Point_2 Point_2; + typedef typename LK::Segment_2 Segment_2; + typedef typename LK::Triangle_2 Triangle_2 ; + typedef typename LK::Iso_rectangle_2 Iso_rectangle_2 ; result_type operator() (const Circle_2 & a) const { @@ -975,6 +1039,20 @@ namespace CircularFunctors { { return LK_Construct_bbox_2()(a); } + + result_type operator() (const Segment_2 & a) const + { + return LK_Construct_bbox_2()(a); + } + + result_type operator() (const Triangle_2 & a) const + { + return LK_Construct_bbox_2()(a); + } + result_type operator() (const Iso_rectangle_2 & a) const + { + return LK_Construct_bbox_2()(a); + } #endif result_type operator() (const Circular_arc_point_2 & a) const