48 #ifndef CGAL_KERNEL_FUNCTION_OBJECTS_H
49 #define CGAL_KERNEL_FUNCTION_OBJECTS_H
54 template <
class ToBeConstructed>
62 {
return ToBeConstructed(); }
67 {
return ToBeConstructed(a1); }
69 template <
class A1,
class A2>
72 {
return ToBeConstructed(a1,a2); }
74 template <
class A1,
class A2,
class A3>
76 operator()(
const A1& a1,
const A2& a2,
const A3& a3)
const
77 {
return ToBeConstructed(a1,a2,a3); }
79 template <
class A1,
class A2,
class A3,
class A4>
81 operator()(
const A1& a1,
const A2& a2,
const A3& a3,
const A4& a4)
const
82 {
return ToBeConstructed(a1,a2,a3,a4); }
84 template <
class A1,
class A2,
class A3,
class A4,
class A5>
86 operator()(
const A1& a1,
const A2& a2,
const A3& a3,
const A4& a4,
const A5& a5)
const
87 {
return ToBeConstructed(a1,a2,a3,a4,a5); }
92 const A& a4,
const A& a5,
const A& a6 )
93 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6); }
98 const A& a4,
const A& a5,
const A& a6,
100 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7); }
105 const A& a4,
const A& a5,
const A& a6,
106 const A& a7,
const A& a8,
const A& a9)
107 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9); }
112 const A& a4,
const A& a5,
const A& a6,
113 const A& a7,
const A& a8,
const A& a9,
115 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10); }
120 const A& a4,
const A& a5,
const A& a6,
121 const A& a7,
const A& a8,
const A& a9,
122 const A& a10,
const A& a11,
const A& a12)
123 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); }
128 const A& a4,
const A& a5,
const A& a6,
129 const A& a7,
const A& a8,
const A& a9,
130 const A& a10,
const A& a11,
const A& a12,
132 {
return ToBeConstructed(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); }
137 template <
class ReturnType>
146 {
return c.point(); }
151 {
return c.point(i); }
153 template <
class ReturnType>
162 {
return c.second_point(); }
164 template <
class ReturnType>
173 {
return c.perpendicular(); }
175 template <
class Cls,
class A1>
178 {
return c.perpendicular(a1); }
181 template <
class ReturnType>
187 template <
class Cls,
class A1>
190 {
return c.perpendicular_plane(a1); }
193 template <
class Po
int>
202 template <
class Po
int>
214 const Point& r,
const Point&
s)
const
217 template <
class Po
int,
class Line>
231 template <
class T1,
class T2>
244 {
return assign( t1, o); }
246 template <
class ReturnType>
255 {
return c.y_at_x(x); }
257 template <
class ReturnType>
266 {
return c.x_at_y(x); }
268 template <
class ReturnType>
277 {
return c.squared_length(); }
287 {
return p.counterclockwise_in_between(q,r); }
339 operator()(
const T& p,
const T&
q,
const T& r,
const T&
s,
const T& t)
const
350 operator()(
const T& p,
const T&
q,
const T& r,
const T&
s,
const T& t)
const
361 {
return c.is_horizontal(); }
372 {
return c.is_vertical(); }
382 {
return c.is_degenerate(); }
389 template <
class Cls,
class Arg>
392 {
return c.has_on_bounded_side(a); }
400 template <
class Cls,
class Arg>
403 {
return c.has_on_unbounded_side(a); }
411 template <
class Cls,
class Arg>
414 {
return c.has_on_boundary(a); }
422 template <
class Cls,
class Arg>
425 {
return c.has_on_positive_side(a); }
433 template <
class Cls,
class Arg>
436 {
return c.has_on_negative_side(a); }
444 template <
class Cls,
class Arg>
447 {
return c.oriented_side(a); }
454 template <
class T1,
class T2>
465 template <
class T1,
class T2>
476 template <
class T1,
class T2>
487 template <
class T1,
class T2>
498 template <
class T1,
class T2>
509 template <
class T1,
class T2>
520 template <
class T1,
class T2>
531 template <
class T1,
class T2>
542 template <
class T1,
class T2>
553 template <
class T1,
class T2>
564 template <
class T1,
class T2>
575 template <
class T1,
class T2>
585 template <
class T1,
class T2>
590 template <
class T1,
class T2,
class T3>
595 template <
class T1,
class T2,
class T3,
class T4>
597 operator()(
const T1& a1,
const T2& a2,
const T3& a3,
const T4& a4)
const
607 template <
class T1,
class T2>
612 template <
class T1,
class T2,
class T3>
617 template <
class T1,
class T2,
class T3,
class T4>
619 operator()(
const T1& a1,
const T2& a2,
const T3& a3,
const T4& a4)
const
630 template <
class T1,
class T2>
641 template <
class T1,
class T2>
652 template <
class T1,
class T2>
663 template <
class T1,
class T2>
666 {
return compare_y_at_x(a1,a2); }
668 template <
class T1,
class T2,
class T3>
671 {
return compare_y_at_x(a1,a2,a3); }
673 template <
class T1,
class T2,
class T3,
class T4>
675 operator()(
const T1& a1,
const T2& a2,
const T3& a3,
const T4& a4)
const
676 {
return compare_y_at_x(a1,a2,a3,a4); }
684 template <
class T1,
class T2>
687 {
return compare_x_at_y(a1,a2); }
689 template <
class T1,
class T2,
class T3>
692 {
return compare_x_at_y(a1,a2,a3); }
694 template <
class T1,
class T2,
class T3,
class T4>
696 operator()(
const T1& a1,
const T2& a2,
const T3& a3,
const T4& a4)
const
697 {
return compare_x_at_y(a1,a2,a3,a4); }
746 template <
class Transformation,
class ArgumentType>
749 {
return a.transform(t); }
751 template <
class ReturnType>
760 {
return c.source(); }
763 template <
class ReturnType>
772 {
return c.target(); }
775 template <
class ReturnType>
787 template <
class ReturnType>
799 template <
class ReturnType>
808 {
return c.direction(); }
811 template <
class ReturnType>
820 {
return c.supporting_line(); }
823 template <
class ReturnType>
832 {
return c.supporting_plane(); }
835 template <
class ReturnType>
844 {
return c.opposite(); }
852 template <
class Cls,
class A1>
855 {
return c.has_on(a1); }
863 template <
class Cls,
class A1>
866 {
return c.collinear_has_on(a1); }
874 #endif // CGAL_KERNEL_FUNCTION_OBJECTS_H
bool operator()(const Cls &c, const Arg &a) const
Point operator()(const Point &p, const Point &q) const
PlaneS3< FT > bisector(const PointS3< FT > &p, const PointS3< FT > &q)
Oriented_side operator()(const Cls &c, const Arg &a) const
bool operator()(const Cls &c) const
ReturnType operator()(const Cls &c, const ReturnType &x) const
bool operator()(const Cls &c, const A1 &a1) const
bool less_x(const PointS2< FT > &p, const PointS2< FT > &q)
Oriented_side side_of_oriented_sphere(const PointS3< FT > &p, const PointS3< FT > &q, const PointS3< FT > &r, const PointS3< FT > &s, const PointS3< FT > &test)
Oriented_side result_type
Oriented_side operator()(const T &p, const T &q, const T &r, const T &s, const T &t) const
Comparison_result compare_y(const Point_2< R > &p, const Point_2< R > &q)
Bounded_side operator()(const T &p, const T &q, const T &r, const T &t) const
ReturnType operator()(const Cls &c) const
bool operator()(const T &p, const T &q, const T &r) const
bool operator()(const T1 &a1, const T2 &a2) const
Point operator()(const Point &p, const Point &q, const Point &r, const Point &s) const
bool z_equal(const PointS3< FT > &p, const PointS3< FT > &q)
Line operator()(const Point &p, const Point &q) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6, const A &a7, const A &a8, const A &a9)
Oriented_side operator()(const T &p, const T &q, const T &r, const T &t) const
bool operator()(const T &p, const T &q, const T &r, const T &s) const
ToBeConstructed operator()(const A1 &a1, const A2 &a2) const
ReturnType operator()(const Cls &c) const
ToBeConstructed operator()() const
bool coplanar(const PointS3< FT > &p, const PointS3< FT > &q, const PointS3< FT > &r, const PointS3< FT > &s)
CGAL_END_NAMESPACE CGAL_BEGIN_NAMESPACE Object intersection(const Line_2< R > &line1, const Line_2< R > &line2)
bool equal_xy(const PointS2< FT > &p, const PointS2< FT > &q)
bool lexicographically_xy_smaller(const Point_2< R > &p, const Point_2< R > &q)
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3, const T4 &a4) const
bool lexicographically_xyz_smaller(const PointS3< FT > &p, const PointS3< FT > &q)
Comparison_result result_type
ReturnType operator()(const Cls &c, const A1 &a1) const
Oriented_side result_type
bool operator()(const T1 &a1, const T2 &a2) const
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3) const
bool equal_xyz(const PointS3< FT > &p, const PointS3< FT > &q)
CGAL_BEGIN_NAMESPACE Comparison_result compare_lexicographically_xyz(const PointS3< FT > &p, const PointS3< FT > &q)
CGAL::Object operator()(const T1 &t1, const T2 &t2) const
ToBeConstructed operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6)
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3, const T4 &a4) const
bool operator()(const T1 &a1, const T2 &a2) const
bool operator()(const T &p, const T &q, const T &r) const
bool operator()(const Cls &c, const A1 &a1) const
bool operator()(const T1 &a1, const T2 &a2) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
bool y_equal(const Point_2< R > &p, const Point_2< R > &q)
bool operator()(const T1 &a1, const T2 &a2) const
ToBeConstructed operator()(const A1 &a1, const A2 &a2, const A3 &a3) const
ReturnType operator()(const Cls &c, const A1 &a1) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
bool assign(T &t, const Object &o)
Comparison_result compare_x(const Point_2< R > &p, const Point_2< R > &q)
Oriented_side side_of_oriented_circle(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r, const Point_2< R > &test)
ToBeConstructed operator()(const A1 &a1) const
bool less_y(const PointS2< FT > &p, const PointS2< FT > &q)
bool operator()(const T1 &a1, const T2 &a2) const
bool are_ordered_along_line(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
bool collinear(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
ReturnType operator()(const Cls &c, const ReturnType &x) const
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6, const A &a7, const A &a8, const A &a9, const A &a10, const A &a11, const A &a12, const A &a13)
ReturnType operator()(const Cls &c) const
bool operator()(const Cls &c) const
bool collinear_are_ordered_along_line(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
bool operator()(const T1 &a1, const T2 &a2) const
ReturnType operator()(const Cls &c, int i) const
bool operator()(const T &p, const T &q, const T &r) const
Point operator()(const Point &p, const Point &q, const Point &r) const
bool lexicographically_yx_smaller(const Point_2< R > &p, const Point_2< R > &q)
bool operator()(const T &p, const T &q, const T &r) const
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3) const
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3, const T4 &a4) const
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3) const
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6, const A &a7)
bool operator()(const T1 &p, const T2 &q) const
ReturnType operator()(const Cls &c) const
bool are_strictly_ordered_along_line(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
CGAL_BEGIN_NAMESPACE bool x_equal(const Point_2< R > &p, const Point_2< R > &q)
bool operator()(const Cls &c, const Arg &a) const
bool operator()(const T &p, const T &q, const T &r) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
Comparison_result result_type
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6, const A &a7, const A &a8, const A &a9, const A &a10)
Comparison_result result_type
bool operator()(T1 &t1, const CGAL::Object &o) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
bool operator()(const T &p, const T &q, const T &r) const
bool operator()(const Cls &c, const Arg &a) const
Comparison_result result_type
ToBeConstructed operator()(const A &a1, const A &a2, const A &a3, const A &a4, const A &a5, const A &a6, const A &a7, const A &a8, const A &a9, const A &a10, const A &a11, const A &a12)
bool operator()(const T1 &a1, const T2 &a2) const
ReturnType operator()(const Cls &c) const
ReturnType operator()(const Cls &c) const
bool collinear_are_strictly_ordered_along_line(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r)
Bounded_side operator()(const T &p, const T &q, const T &r, const T &s, const T &t) const
bool operator()(const T1 &a1, const T2 &a2) const
Comparison_result compare_lexicographically_xy(const Point_2< R > &p, const Point_2< R > &q)
bool operator()(const Cls &c) const
ReturnType operator()(const Cls &c) const
ReturnType operator()(const Cls &c) const
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3) const
#define CGAL_BEGIN_NAMESPACE
Comparison_result result_type
Comparison_result operator()(const T1 &a1, const T2 &a2, const T3 &a3, const T4 &a4) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
ReturnType operator()(const Cls &c) const
ToBeConstructed result_type
ToBeConstructed operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5) const
Comparison_result compare_z(const PointS3< FT > &p, const PointS3< FT > &q)
ReturnType operator()(const Cls &c) const
Comparison_result operator()(const T1 &a1, const T2 &a2) const
bool operator()(const Cls &c, const Arg &a) const
CGAL_BEGIN_NAMESPACE CGAL_KERNEL_MEDIUM_INLINE PointS3< FT > midpoint(PointS3< FT > const &p, PointS3< FT > const &q)
bool operator()(const Cls &c, const Arg &a) const
#define CGAL_END_NAMESPACE
PointS3< FT > circumcenter(PointS3< FT > const &p, PointS3< FT > const &q, PointS3< FT > const &r, PointS3< FT > const &s)
ReturnType operator()(const Cls &c) const
bool operator()(const T1 &a1, const T2 &a2) const
Bounded_side side_of_bounded_sphere(const PointS3< FT > &p, const PointS3< FT > &q, const PointS3< FT > &r, const PointS3< FT > &s, const PointS3< FT > &test)
Comparison_result result_type
bool operator()(const T1 &a1, const T2 &a2) const
ReturnType operator()(const Cls &c) const
Comparison_result result_type
Bounded_side side_of_bounded_circle(const Point_2< R > &p, const Point_2< R > &q, const Point_2< R > &r, const Point_2< R > &test)