\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12.1 - 2D Triangulation
RegularTriangulationTraits_2 Concept Reference

Definition

The concept RegularTriangulationTraits_2 describes the requirements for the traits class of regular triangulations. It refines the concept TriangulationTraits_2 requiring the type CGAL::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
Has Models:
All models of Kernel.
See also
CGAL::Regular_triangulation_2

Types

typedef unspecified_type Weighted_point_2
 The weighted point type. More...
 
typedef unspecified_type Power_side_of_oriented_power_circle_2
 A predicate object, model of PowerSideOfOrientedPowerCircle_2, that must provide operators for the power test applied to two, three, and four points. More...
 
typedef unspecified_type Construct_point_2
 A constructor type, model of Kernel::ConstructPoint_2. More...
 

Optional Types

The following type/predicate is required for a call to nearest_power_vertex():

typedef unspecified_type Compare_power_distance_2
 A function object, model of Kernel::ComparePowerDistance_2 for comparing two power distances. More...
 

The following types/predicates are required to compute duals:

typedef unspecified_type Construct_weighted_circumcenter_2
 A function object, model of Kernel::ConstructWeightedCircumcenter_2, that constructs the weighted circumcenter of three weighted points. More...
 
typedef unspecified_type Construct_radical_axis_2
 A function object, model of Kernel::ConstructRadicalAxis_2, that constructs the radical axis of two weighted points. More...
 

Creation

 RegularTriangulationTraits_2 ()
 Default constructor.
 
 RegularTriangulationTraits_2 (const RegularTriangulationTraits_2 &)
 Copy constructor.
 
RegularTriangulationTraits_2operator= (const RegularTriangulationTraits_2 &)
 Assignment operator.
 

Access to Predicate and Constructors Objects

Power_side_of_oriented_power_circle_2 power_side_of_oriented_power_circle_2_object ()
 
Compare_power_distance_2 compare_power_distance_2_object ()
 
Construct_point_2 construct_point_2_object ()
 
Construct_weighted_circumcenter_2 construct_weighted_circumcenter_2_object ()
 
Construct_radical_axis_2 construct_radical_axis_2_object ()
 

Member Typedef Documentation

◆ Compare_power_distance_2

A function object, model of Kernel::ComparePowerDistance_2 for comparing two power distances.

Must provide the operator:

Comparison_result operator()(Point_2 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.

◆ Construct_point_2

A constructor type, model of Kernel::ConstructPoint_2.

The operator() extracts the bare point from a weighted point.

Point_2 operator() ( Weighted_point_2 p);

◆ Construct_radical_axis_2

A function object, model of Kernel::ConstructRadicalAxis_2, that constructs the radical axis of two weighted points.

Must provide the operator:

Line_2 operator() ( Weighted_point_2 p, Weighted_point_2 q);

◆ Construct_weighted_circumcenter_2

A function object, model of Kernel::ConstructWeightedCircumcenter_2, that constructs the weighted circumcenter of three weighted points.

Must provide the operator:

Point_2 operator() ( Weighted_point_2 p, Weighted_point_2 q, Weighted_point_2 r);

◆ Power_side_of_oriented_power_circle_2

A predicate object, model of PowerSideOfOrientedPowerCircle_2, that must provide operators for the power test applied to two, three, and four points.

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 degenerate 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 degenerate 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.

◆ Weighted_point_2

The weighted point type.

It has to be a model of the concept Kernel::WeightedPoint_2.

Note
The unweighted point type Point_2 is requested by the concept TriangulationTraits_2, which this concept refines.