// Copyright (c) 2003-2008 INRIA Sophia-Antipolis (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v5.2/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h $ // $Id: global_functions_circular_kernel_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s) : Monique Teillaud, Sylvain Pion, Julien Hazebrouck, Pedro Machado // Partially supported by the IST Programme of the EU as a Shared-cost // RTD (FET Open) Project under Contract No IST-2000-26473 // (ECG - Effective Computational Geometry for Curves and Surfaces) // and a STREP (FET Open) Project under Contract No IST-006413 // (ACS -- Algorithms for Complex Shapes) #ifndef CGAL_CIRCULAR_KERNEL_GLOBAL_FUNCTIONS_CIRCULAR_KERNEL_2_H #define CGAL_CIRCULAR_KERNEL_GLOBAL_FUNCTIONS_CIRCULAR_KERNEL_2_H #include // global functions #include #include #include #include #include namespace CGAL { template Circular_arc_point_2 x_extremal_point(const Circle_2 & c, bool i) { return CircularFunctors::x_extremal_point(c,i); } template OutputIterator x_extremal_points(const Circle_2 & c, OutputIterator res) { return CircularFunctors::x_extremal_points(c,res); } template Circular_arc_point_2 y_extremal_point(const Circle_2 & c, bool i) { return CircularFunctors::y_extremal_point(c,i); } template OutputIterator y_extremal_points(const Circle_2 & c, OutputIterator res) { return CircularFunctors::y_extremal_points(c,res); } // Not Documented template< class CK > inline CGAL::Comparison_result compare_x(const Circular_arc_2 &A1, const bool b1, const Circular_arc_2 &A2, const bool b2) { return CK().compare_x_2_object()(A1, b1, A2, b2); } template< class CK > inline CGAL::Comparison_result compare_x(const Circular_arc_point_2 &p, const Circular_arc_point_2 &q) { return CK().compare_x_2_object()(p, q); } template< class CK > inline CGAL::Comparison_result compare_y(const Circular_arc_point_2 &p, const Circular_arc_point_2 &q) { return CK().compare_y_2_object()(p, q); } template< class CK > inline CGAL::Comparison_result compare_xy(const Circular_arc_point_2 &p, const Circular_arc_point_2 &q) { return CK().compare_xy_2_object()(p, q); } template< class CK > inline CGAL::Comparison_result compare_y_to_right(const Circular_arc_2 &A1, const Circular_arc_2 &A2, const Circular_arc_point_2 &p) { return CK().compare_y_to_right_2_object()(A1, A2, p); } template < class CK > inline bool has_in_x_range(const Circular_arc_2 &A, const Circular_arc_point_2 &p) { return CK().in_x_range_2_object()(A, p); } template < class CK > CGAL::Comparison_result compare_y_at_x(const Circular_arc_point_2 &p, const Circular_arc_2 &a) { return CK().compare_y_at_x_2_object()(p, a); } template < class CK, class OutputIterator > OutputIterator make_x_monotone(const Circular_arc_2 &A, OutputIterator it) { return CK().make_x_monotone_2_object()(A, it); } template < class CK, class OutputIterator > OutputIterator make_xy_monotone(const Circular_arc_2 &A, OutputIterator it) { return CK().make_xy_monotone_2_object()(A, it); } template< class CK > inline bool has_on(const Circle_2 &c, const Circular_arc_point_2 &p) { return CK().has_on_2_object()(c, p); } // Not Documented template< class CK > inline CGAL::Comparison_result compare_y_to_right(const Line_arc_2 &A1, const Line_arc_2 &A2, const Circular_arc_point_2 &p) { return CK().compare_y_to_right_2_object()(A1, A2, p); } template < class CK > inline bool has_in_x_range(const Line_arc_2 &A, const Circular_arc_point_2 &p) { return CK().in_x_range_2_object()(A, p); } template < class CK > CGAL::Comparison_result compare_y_at_x(const Circular_arc_point_2 &p, const Line_arc_2 &a) { return CK().compare_y_at_x_2_object()(p, a); } // Not Documented template < class CK, class OutputIterator > OutputIterator make_x_monotone(const Line_arc_2 &A, OutputIterator it) { return CK().make_x_monotone_2_object()(A, it); } template < class CK, class OutputIterator > OutputIterator make_xy_monotone(const Line_arc_2 &A, OutputIterator it) { return CK().make_xy_monotone_2_object()(A, it); } } //namespace CGAL #endif // CGAL_CIRCULAR_KERNEL_GLOBAL_FUNCTIONS_CIRCULAR_KERNEL_2_H