CGAL 6.2 - 2D Triangulations: RegularTriangulationTraits_2 Concept Reference

CGAL 6.2 - 2D Triangulations

Loading...
Searching...
No Matches
List of all members
RegularTriangulationTraits_2 Concept Reference
Reference Manual » Concepts

## 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 the CGAL concept `Kernel`

See also
  `CGAL::Regular_triangulation_2`

## Types
typedef unspecified_type | Weighted_point_2
| The weighted point type.
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.
typedef unspecified_type | Construct_point_2
| A constructor type, model of `Kernel::ConstructPoint_2`.

## 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.
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.
typedef unspecified_type | Construct_radical_axis_2
| A function object, model of `Kernel::ConstructRadicalAxis_2`, that constructs the radical axis of two weighted points.

## Creation
| RegularTriangulationTraits_2 ()
| Default constructor.
| RegularTriangulationTraits_2 (const RegularTriangulationTraits_2 &)
| Copy constructor.
RegularTriangulationTraits_2 & | operator= (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

typedef unspecified_type RegularTriangulationTraits_2::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

typedef unspecified_type RegularTriangulationTraits_2::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

typedef unspecified_type RegularTriangulationTraits_2::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

typedef unspecified_type RegularTriangulationTraits_2::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

typedef unspecified_type RegularTriangulationTraits_2::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

typedef unspecified_type RegularTriangulationTraits_2::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.