diff --git a/.gitattributes b/.gitattributes index 097cb4a8d21..018ee466496 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1287,6 +1287,7 @@ Circular_kernel_2/doc_tex/Circular_kernel_2_ref/global_functions.tex -text Circular_kernel_2/examples/Circular_kernel_2/functor_has_on_2.cpp -text Circular_kernel_2/include/CGAL/Circular_kernel_intersections.h -text Circular_kernel_2/include/CGAL/Filtered_bbox_circular_kernel_2/interface_macros.h -text +Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h -text Circular_kernel_3/changes -text Circular_kernel_3/demo/Circular_kernel_3/images/button_axis.gif -text svneol=unset#image/gif Circular_kernel_3/demo/Circular_kernel_3/images/button_light.gif -text svneol=unset#image/gif diff --git a/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h b/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h new file mode 100644 index 00000000000..3f06f973168 --- /dev/null +++ b/Circular_kernel_2/include/CGAL/global_functions_circular_kernel_2.h @@ -0,0 +1,240 @@ +// Copyright (c) 2003-2008 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you may redistribute it under +// the terms of the Q Public License version 1.0. +// See the file LICENSE.QPL distributed with CGAL. +// +// Licensees holding a valid commercial license may use this file in +// accordance with the commercial license agreement provided with the software. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// $URL: svn+ssh://pmachado@scm.gforge.inria.fr/svn/cgal/trunk/Circular_kernel_2/include/CGAL/global_functions_on_line_arcs_2.h $ +// $Id: global_functions_on_line_arcs_2.h 45945 2008-10-01 12:25:23Z pmachado $ +// +// 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 + +// global functions + +#include +#include +#include +#include + +CGAL_BEGIN_NAMESPACE + +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_x(const Circular_arc_point_2 &p, const Point_2 &q) +{ + return CK().compare_x_2_object()(p, q); +} + +template< class CK > +inline +CGAL::Comparison_result +compare_x(const 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_y(const Circular_arc_point_2 &p, const Point_2 &q) +{ + return CK().compare_y_2_object()(p, q); +} + +template< class CK > +inline +CGAL::Comparison_result +compare_y(const 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_xy(const Circular_arc_point_2 &p, const Point_2 &q) +{ + return CK().compare_xy_2_object()(p, q); +} + +template< class CK > +inline +CGAL::Comparison_result +compare_xy(const 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 +point_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 +point_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); +} + +CGAL_END_NAMESPACE + +#endif // CGAL_CIRCULAR_KERNEL_GLOBAL_FUNCTIONS_CIRCULAR_KERNEL_2_H