mirror of https://github.com/CGAL/cgal
251 lines
8.6 KiB
C++
251 lines
8.6 KiB
C++
// ======================================================================
|
|
//
|
|
// Copyright (c) 2000 The CGAL Consortium
|
|
//
|
|
// This software and related documentation is part of an INTERNAL release
|
|
// of the Computational Geometry Algorithms Library (CGAL). It is not
|
|
// intended for general use.
|
|
//
|
|
// ----------------------------------------------------------------------
|
|
//
|
|
// release :
|
|
// release_date :
|
|
//
|
|
// file : include/CGAL/Kernel/Predicate_objects_2.h
|
|
// revision : $Revision$
|
|
// revision_date : $Date$
|
|
// author(s) : Herve Bronnimann
|
|
// coordinator : INRIA Sophia-Antipolis (Mariette.Yvinec@sophia.inria.fr)
|
|
//
|
|
// ======================================================================
|
|
|
|
#ifndef CGAL_KERNEL_PREDICATE_OBJECTS_2_H
|
|
#define CGAL_KERNEL_PREDICATE_OBJECTS_2_H
|
|
|
|
#include <CGAL/predicate_objects_on_points_2.h>
|
|
#include <CGAL/Kernel/function_objects.h>
|
|
|
|
CGAL_BEGIN_NAMESPACE
|
|
|
|
template < class R >
|
|
struct Kernel_predicate_objects_2
|
|
{
|
|
typedef typename R::FT FT;
|
|
typedef typename R::RT RT;
|
|
typedef typename R::Point_2 Point_2;
|
|
typedef typename R::Vector_2 Vector_2;
|
|
typedef typename R::Direction_2 Direction_2;
|
|
typedef typename R::Segment_2 Segment_2;
|
|
typedef typename R::Line_2 Line_2;
|
|
typedef typename R::Ray_2 Ray_2;
|
|
typedef typename R::Triangle_2 Triangle_2;
|
|
typedef typename R::Circle_2 Circle_2;
|
|
typedef typename R::Iso_rectangle_2 Iso_rectangle_2;
|
|
typedef typename R::Aff_transformation_2 Aff_transformation_2;
|
|
|
|
/*
|
|
typedef CGALi::std::equal_to Equal_2;
|
|
Equal_2
|
|
equal_2_object() const { return Equal_2(); }
|
|
|
|
typedef CGALi::p_Equal_xy Equal_xy_2;
|
|
Equal_xy_2
|
|
equal_xy_2_object() const { return Equal_xy_2(); }
|
|
*/
|
|
|
|
typedef p_Less_xy<Point_2> Less_xy_2;
|
|
Less_xy_2
|
|
less_xy_2_object() const { return Less_xy_2(); }
|
|
|
|
/*
|
|
typedef CGALi::p_Less_dist_to_point<Point_2> Less_distance_to_point_2;
|
|
Less_distance_to_point_2
|
|
less_distance_to_point_2_object() const { return Less_distance_to_point_2(); }
|
|
*/
|
|
|
|
typedef p_Less_dist_to_line_2p<Point_2> Less_signed_distance_to_line_2;
|
|
Less_signed_distance_to_line_2
|
|
less_signed_distance_to_line_2_object() const
|
|
{ return Less_signed_distance_to_line_2(); }
|
|
|
|
typedef p_Leftturn<Point_2> Leftturn_2;
|
|
Leftturn_2
|
|
leftturn_2_object() const { return Leftturn_2(); }
|
|
|
|
typedef p_Left_of_line_2p<Point_2> Left_of_line_2;
|
|
Left_of_line_2
|
|
left_of_line_2_object() const { return Left_of_line_2(); }
|
|
|
|
typedef CGALi::Collinear Collinear_2;
|
|
Collinear_2
|
|
collinear_2_object() const { return Collinear_2(); }
|
|
|
|
typedef p_Orientation<Point_2> Orientation_2;
|
|
Orientation_2
|
|
orientation_2_object() const { return Orientation_2(); }
|
|
|
|
typedef CGALi::Side_of_oriented_circle Side_of_oriented_circle_2;
|
|
Side_of_oriented_circle_2
|
|
side_of_oriented_circle_2_object() const
|
|
{ return Side_of_oriented_circle_2(); }
|
|
|
|
typedef CGALi::Call_is_horizontal Is_horizontal_2;
|
|
Is_horizontal_2
|
|
is_horizontal_2_object() const { return Is_horizontal_2(); }
|
|
|
|
typedef CGALi::Call_is_vertical Is_vertical_2;
|
|
Is_vertical_2
|
|
is_vertical_2_object() const { return Is_vertical_2(); }
|
|
|
|
typedef CGALi::Call_is_degenerate Is_degenerate_2;
|
|
Is_degenerate_2
|
|
is_degenerate_2_object() const { return Is_degenerate_2(); }
|
|
|
|
typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_2;
|
|
Has_on_bounded_side_2
|
|
has_on_bounded_side_2_object() const { return Has_on_bounded_side_2(); }
|
|
|
|
typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_2;
|
|
Has_on_unbounded_side_2
|
|
has_on_unbounded_side_2_object() const { return Has_on_unbounded_side_2(); }
|
|
|
|
typedef CGALi::Call_has_on_boundary Has_on_boundary_2;
|
|
Has_on_boundary_2
|
|
has_on_boundary_2_object() const { return Has_on_boundary_2(); }
|
|
|
|
typedef CGALi::Call_has_on_positive_side Has_on_positive_side_2;
|
|
Has_on_positive_side_2
|
|
has_on_positive_side_2_object() const { return Has_on_positive_side_2(); }
|
|
|
|
typedef CGALi::Call_has_on_negative_side Has_on_negative_side_2;
|
|
Has_on_negative_side_2
|
|
has_on_negative_side_2_object() const { return Has_on_negative_side_2(); }
|
|
|
|
typedef CGALi::Call_oriented_side Oriented_side_2;
|
|
Oriented_side_2
|
|
oriented_side_2_object() const { return Oriented_side_2(); }
|
|
|
|
typedef CGALi::Compare_x Compare_x_2;
|
|
Compare_x_2
|
|
compare_x_2_object() const { return Compare_x_2(); }
|
|
|
|
typedef CGALi::Compare_y Compare_y_2;
|
|
Compare_y_2
|
|
compare_y_2_object() const { return Compare_y_2(); }
|
|
|
|
typedef CGALi::Compare_y_at_x Compare_y_at_x_2;
|
|
Compare_y_at_x_2
|
|
compare_y_at_x_2_object() const { return Compare_y_at_x_2(); }
|
|
|
|
typedef CGALi::Are_ordered_along_line Are_ordered_along_line_2 ;
|
|
Are_ordered_along_line_2
|
|
are_ordered_along_line_2_object() const { return Are_ordered_along_line_2(); }
|
|
|
|
typedef CGALi::Are_strictly_ordered_along_line
|
|
Are_strictly_ordered_along_line_2;
|
|
Are_strictly_ordered_along_line_2
|
|
are_strictly_ordered_along_line_2_object() const
|
|
{ return Are_strictly_ordered_along_line_2(); }
|
|
|
|
};
|
|
|
|
CGAL_END_NAMESPACE
|
|
|
|
// This macro is provided for convenience in defining the Kernel
|
|
// function objects inside a new representation class.
|
|
// See Cartesian_2.h and Cartesian.h
|
|
|
|
#define CGAL_UNPACK_KERNEL_PREDICATE_OBJECTS_2(PR) \
|
|
\
|
|
typedef PR::Less_xy_2 Less_xy_2; \
|
|
Less_xy_2 \
|
|
less_xy_2_object() const { return Less_xy_2(); } \
|
|
\
|
|
typedef PR::Less_signed_distance_to_line_2 \
|
|
Less_signed_distance_to_line_2; \
|
|
Less_signed_distance_to_line_2 \
|
|
less_signed_distance_to_line_2_object() const \
|
|
{ return Less_signed_distance_to_line_2(); } \
|
|
\
|
|
typedef PR::Leftturn_2 Leftturn_2; \
|
|
Leftturn_2 \
|
|
leftturn_2_object() const { return Leftturn_2(); } \
|
|
\
|
|
typedef PR::Left_of_line_2 Left_of_line_2; \
|
|
Left_of_line_2 \
|
|
left_of_line_2_object() const { return Left_of_line_2(); } \
|
|
\
|
|
typedef PR::Collinear_2 Collinear_2; \
|
|
Collinear_2 \
|
|
collinear_2_object() const { return Collinear_2(); } \
|
|
\
|
|
typedef PR::Orientation_2 Orientation_2; \
|
|
Orientation_2 \
|
|
orientation_2_object() const { return Orientation_2(); } \
|
|
\
|
|
typedef PR::Side_of_oriented_circle_2 Side_of_oriented_circle_2; \
|
|
Side_of_oriented_circle_2 \
|
|
side_of_oriented_circle_2_object() const \
|
|
{ return Side_of_oriented_circle_2(); } \
|
|
\
|
|
typedef PR::Is_horizontal_2 Is_horizontal_2; \
|
|
Is_horizontal_2 \
|
|
is_horizontal_2_object() const { return Is_horizontal_2(); } \
|
|
\
|
|
typedef PR::Is_vertical_2 Is_vertical_2; \
|
|
Is_vertical_2 \
|
|
is_vertical_2_object() const { return Is_vertical_2(); } \
|
|
\
|
|
typedef PR::Is_degenerate_2 Is_degenerate_2; \
|
|
Is_degenerate_2 \
|
|
is_degenerate_2_object() const { return Is_degenerate_2(); } \
|
|
\
|
|
typedef PR::Has_on_bounded_side_2 Has_on_bounded_side_2; \
|
|
Has_on_bounded_side_2 \
|
|
has_on_bounded_side_2_object() const { return Has_on_bounded_side_2(); } \
|
|
\
|
|
typedef PR::Has_on_unbounded_side_2 Has_on_unbounded_side_2; \
|
|
Has_on_unbounded_side_2 \
|
|
has_on_unbounded_side_2_object() const { return Has_on_unbounded_side_2(); } \
|
|
\
|
|
typedef PR::Has_on_boundary_2 Has_on_boundary_2; \
|
|
Has_on_boundary_2 \
|
|
has_on_boundary_2_object() const { return Has_on_boundary_2(); } \
|
|
\
|
|
typedef PR::Has_on_positive_side_2 Has_on_positive_side_2; \
|
|
Has_on_positive_side_2 \
|
|
has_on_positive_side_2_object() const { return Has_on_positive_side_2(); } \
|
|
\
|
|
typedef PR::Has_on_negative_side_2 Has_on_negative_side_2; \
|
|
Has_on_negative_side_2 \
|
|
has_on_negative_side_2_object() const { return Has_on_negative_side_2(); } \
|
|
\
|
|
typedef PR::Oriented_side_2 Oriented_side_2; \
|
|
Oriented_side_2 \
|
|
oriented_side_2_object() const { return Oriented_side_2(); } \
|
|
\
|
|
typedef PR::Compare_x_2 Compare_x_2; \
|
|
Compare_x_2 \
|
|
compare_x_2_object() const { return Compare_x_2(); } \
|
|
\
|
|
typedef PR::Compare_y_2 Compare_y_2; \
|
|
Compare_y_2 \
|
|
compare_y_2_object() const { return Compare_y_2(); } \
|
|
\
|
|
typedef PR::Compare_y_at_x_2 Compare_y_at_x_2; \
|
|
Compare_y_at_x_2 \
|
|
compare_y_at_x_2_object() const { return Compare_y_at_x_2(); } \
|
|
\
|
|
typedef PR::Are_ordered_along_line_2 Are_ordered_along_line_2 ; \
|
|
Are_ordered_along_line_2 \
|
|
are_ordered_along_line_2_object() const \
|
|
{ return Are_ordered_along_line_2(); } \
|
|
\
|
|
typedef PR::Are_strictly_ordered_along_line_2 \
|
|
Are_strictly_ordered_along_line_2; \
|
|
Are_strictly_ordered_along_line_2 \
|
|
are_strictly_ordered_along_line_2_object() const \
|
|
{ return Are_strictly_ordered_along_line_2(); }
|
|
|
|
#endif // CGAL_KERNEL_PREDICATE_OBJECTS_2_H
|