global functions in a single file

This commit is contained in:
Pedro Machado Manhaes de Castro 2008-10-01 15:24:23 +00:00
parent 1b0405a85b
commit a379bd57d4
2 changed files with 241 additions and 0 deletions

1
.gitattributes vendored
View File

@ -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

View File

@ -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 <CGAL/Circular_arc_2.h>
#include <CGAL/Circular_arc_point_2.h>
#include <CGAL/Line_arc_2.h>
#include <CGAL/Circular_kernel_2/internal_functions_on_circle_2.h>
CGAL_BEGIN_NAMESPACE
template <class CK>
Circular_arc_point_2<CK>
x_extremal_point(const Circle_2<CK> & c, bool i)
{
return CircularFunctors::x_extremal_point<CK>(c,i);
}
template <class CK, class OutputIterator>
OutputIterator
x_extremal_points(const Circle_2<CK> & c, OutputIterator res)
{
return CircularFunctors::x_extremal_points<CK>(c,res);
}
template <class CK>
Circular_arc_point_2<CK>
y_extremal_point(const Circle_2<CK> & c, bool i)
{
return CircularFunctors::y_extremal_point<CK>(c,i);
}
template <class CK, class OutputIterator>
OutputIterator
y_extremal_points(const Circle_2<CK> & c, OutputIterator res)
{
return CircularFunctors::y_extremal_points<CK>(c,res);
}
// Not Documented
template< class CK >
inline
CGAL::Comparison_result
compare_x(const Circular_arc_2<CK> &A1, const bool b1,
const Circular_arc_2<CK> &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<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_x_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_x(const Circular_arc_point_2<CK> &p, const Point_2<CK> &q)
{
return CK().compare_x_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_x(const Point_2<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_x_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_y(const Circular_arc_point_2<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_y_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_y(const Circular_arc_point_2<CK> &p, const Point_2<CK> &q)
{
return CK().compare_y_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_y(const Point_2<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_y_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_xy(const Circular_arc_point_2<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_xy_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_xy(const Circular_arc_point_2<CK> &p, const Point_2<CK> &q)
{
return CK().compare_xy_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_xy(const Point_2<CK> &p, const Circular_arc_point_2<CK> &q)
{
return CK().compare_xy_2_object()(p, q);
}
template< class CK >
inline
CGAL::Comparison_result
compare_y_to_right(const Circular_arc_2<CK> &A1,
const Circular_arc_2<CK> &A2,
const Circular_arc_point_2<CK> &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<CK> &A, const Circular_arc_point_2<CK> &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<CK> &p, const Circular_arc_2<CK> &a)
{
return CK().compare_y_at_x_2_object()(p, a);
}
template < class CK, class OutputIterator >
OutputIterator
make_x_monotone(const Circular_arc_2<CK> &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<CK> &A, OutputIterator it)
{
return CK().make_xy_monotone_2_object()(A, it);
}
template< class CK >
inline
bool
has_on(const Circle_2<CK> &c, const Circular_arc_point_2<CK> &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<CK> &A1,
const Line_arc_2<CK> &A2,
const Circular_arc_point_2<CK> &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<CK> &A, const Circular_arc_point_2<CK> &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<CK> &p, const Line_arc_2<CK> &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<CK> &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<CK> &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