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