Concept

RegularTriangulationTraits_2

Definition

The concept RegularTriangulationTraits_2 describe the requirements for the traits class of regular triangulations. It refines the concept TriangulationTraits_2 providing the type Weighted_point_2 and the power-test predicate on those weighted points. A weighted point is basically a point augmented with a scalar weight. It can be seen as a circle when the weight is interpreted as a square radius. The power-test on weighted points is the fundamental test to build regular triangulations as the side_of_oriented_circle test is the fundamental test of Delaunay triangulations.

Refines

TriangulationTraits_2

Types

RegularTriangulationTraits_2::Bare_point
Another name for the point type.

RegularTriangulationTraits_2::Weighted_point_2
The weighted point type, it has to be a model of the concept WeightedPoint.


RegularTriangulationTraits_2::Power_test_2
A predicate object type. Must provide the operators:
- Oriented_side operator() ( Weighted_point_2 p, Weighted_point_2 q, Weighted_point_2 r, Weighted_point_2 s) which is the power test for points p, q, r and s.
Precondition: the bare points corresponding to p, q, r are not collinear.
- Oriented_side operator() ( Weighted_point_2 p, Weighted_point_2 q, Weighted_point_2 r) which is the degenerated power test for collinear points p, q, r.
Precondition: the bare points corresponding to p, q, r are collinear and p != q.
- Oriented_side operator() ( Weighted_point_2 p, Weighted_point_2 q) which is the degenerated power test for weighted points p and q whose corresponding bare-points are identical.
Precondition: the bare points corresponding to p and q are identical.

The following type/predicate is required if a call to nearest_power_vertex is issued:

RegularTriangulationTraits_2::Compare_power_distance_2
A predicate object type. Must provide the operator:
Comparison_result operator()(Bare_point p, Weighted_point_2 q, Weighted_point_2 r), which compares the power distance between p and q to the power distance between p and r.


RegularTriangulationTraits_2::Construct_weighted_circumcenter_2
A constructor object which constructs the weighted circumcenter of three weighted points. Provides the operator
Bare_point operator() ( Weighted_point_2 p, Weighted_point_2 q, Weighted_point_2 r);


RegularTriangulationTraits_2::Construct_radical_axis_2
A constructor type which constructs the radical axis of two weighted points. Provides the operator :
Line_2 operator() ( Weighted_point_2 p, Weighted_point_2 q);

Creation

RegularTriangulationTraits_2 traits;
default constructor.


RegularTriangulationTraits_2 traits ( RegularTriangulatioTraits_2);
copy constructor.

RegularTriangulationTraits_2& traits = RegularTriangulationTraits_2
assignment operator

Access to predicate and constructors objects

Power_test_2 traits.power_test_2_object ()
Compare_power_distance_2 traits.compare_power_distance_2_object ()
Construct_weighted_circumcenter_2 traits.construct_weighted_circumcenter_2_object ()
Construct_radical_axis_2 traits.construct_radical_axis_2_object ()

Has Models

CGAL::Regular_triangulation_traits_2<Rep>
CGAL::Regular_triangulation_filtered_traits_2<FK>

See Also

TriangulationTraits_2
CGAL::Regular_triangulation_2<Traits,Tds>