In addition to the requirements described for the traits class of Triangulation_3, the geometric traits class of Regular_triangulation_3 must fulfill the following requirements.
We use here the same notation as in Section 31.3. To simplify notation, will often denote in the sequel either the point or the weighted point .
| |||||||||
The weighted point type.
| |||||||||
| |||||||||
A predicate object which must provide the following function operators: Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s, Weighted_point_3 t), which performs the following: Let be the power sphere of the weighted points . Returns ON_ORIENTED_BOUNDARY if t is orthogonal to , ON_NEGATIVE_SIDE if t lies outside the oriented sphere of center and radius (which is equivalent to )), ON_POSITIVE_SIDE if t lies inside this oriented sphere.
|
The following predicate is required if a call to nearest_power_vertex or nearest_power_vertex_in_cell is issued:
| |
A predicate object that must provide the function operator Comparison_result operator()(Point_3 p, Weighted_point_3 q, Weighted_point_3 r), which compares the power distance between p and q to the power distance between p and r.
|
In addition, only when the dual operations are used, the traits class must provide the following constructor objects:
| |||
A constructor type. The operator() constructs the bare point
which is the center of the smallest orthogonal sphere to the input
weighted points. Bare_point operator() ( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s);
| |||
| |||
A constructor object that must provide the function operators Object_3 operator()(Point_3 p), Object_3 operator()(Segment_3 s) and Object_3 operator()(Ray_3 r) that construct an object respectively from a point, a segment and a ray.
| |||
| |||
A constructor object that must provide the function operator Line_3 operator()(Plane_3 pl, Point_3 p), which constructs the line perpendicular to pl passing through p.
| |||
| |||
A constructor object that must provide the function operator Plane_3 operator()(Point_3 p, Point_3 q, Point_3 r), which constructs the plane passing through p, q and r.
| |||
| |||
A constructor object that must provide the function operator Ray_3 operator()(Point_3 p, Line_3 l), which constructs the ray starting at p with direction given by l.
|
The following function gives access to the predicate object:
|
|
The following functions must be provided only if the member functions of Regular_triangulation_3 returning elements of the dual diagram are called:
CGAL::Regular_triangulation_euclidean_traits_3
CGAL::Regular_triangulation_filtered_traits_3.