Concept

DelaunayTriangulationTraits_2

Definition

In addition to the requirements of the concept TriangulationTraits_2 described , the concept DelaunayTriangulationTraits_2 provide a predicate to check the empty circle property. The corresponding predicate type is called type Side_of_oriented_circle_2.

The additional types Line_2, Ray_2 and the constructor objects Construct_ray_2 Construct_circumcenter_2, Construct_bisector_2, Construct_midpoint are used to build the dual Voronoi diagram and are required only if the dual functions are called. The additional predicate type Compare_distance_2 is required if calls to nearest_vertex(..) are issued.

Refines

TriangulationTraits_2

Types

DelaunayTriangulationTraits_2::Line_2
The line type. This type is required only if some dual functions are called.

DelaunayTriangulationTraits_2::Ray_2
The type for ray. This type is required only if some dual functions are called.


DelaunayTriangulationTraits_2::Side_of_oriented_circle_2
Predicate type. Provides the operator :
Oriented_side operator()(Point p, Point q, Point r, Point s) which takes four points p, q, r, s as arguments and returns ON_POSITIVE_SIDE, ON_NEGATIVE_SIDE or, ON_ORIENTED_BOUNDARY according to the position of points s with respect to the oriented circle through p,q and r.

DelaunayTriangulationTraits_2::Compare_distance_2
Predicate type. Provides the operator :
Comparison_result operator()(Point_2 p, Point_2 q, Point_2 r) which returns SMALLER, EQUAL or LARGER according to the distance between p and q being smaller, equal or larger than the distance between p and r. This type is only require if nearest_vertex queries are issued.


DelaunayTriangulationTraits_2::Construct_circumcenter_2
Constructor object. Provides the operator :
Point_2 operator()(Point_2 p, Point_2 q, Point_2 r) which returns the circumcenter of the three points p, q and r. This type is required only if functions relative to the dual Voronoi diagram are called.

DelaunayTriangulationTraits_2::Construct_bisector_2
Constructor object. Provides the operator :
Line_2 operator()(Point_2 p, Point_2 q) which constructs the bisector line of points p and q. This type is required only if functions relative to the dual Voronoi diagram are called.

DelaunayTriangulationTraits_2::Construct_ray_2
A constructor object to build a ray from a point and a line. Provides :
Ray_2 operator() ( Point_2 p, Line_2 l);

Creation

DelaunayTriangulationTraits_2 traits;
default constructor.

DelaunayTriangulationTraits_2 traits ( dtt);
copy constructor

DelaunayTriangulationTraits_2 traits = traits2 Assignment operator.

Access to predicate and constructor objects

Side_of_oriented_circle_2 traits.side_of_oriented_circle_2_object ()

The following functions are required only if member functions of the Delaunay triangulation relative to the dual Voronoi diagram are called.

Compare_distance_2 traits.compare_distance_2_object ()
Construct_circumcenter_2 traits.construct_circumcenter_2_object ()
Construct_bisector_2 traits.construct_bisector_2_object ()
Construct_direction_2 traits.construct_direction_2_object ()
Construct_ray_2 traits.construct_ray_2_object ()

Has Models

Cgal kernels
CGAL::Triangulation_euclidean_traits_2<Rep>.

The following traits classes provide everything except types and member functions required for the dual Voronoi diagram:
CGAL::Projection_traits_xy_3<K>
CGAL::Projection_traits_yz_3<K>
CGAL::Projection_traits_zx_3<K>

CGAL::Triangulation_euclidean_traits_xy_3<K>,
CGAL::Triangulation_euclidean_traits_yz_3<K>,
CGAL::Triangulation_euclidean_traits_zx_3<K>.

See Also

TriangulationTraits_2