|
CGAL 6.1.3 - 3D Triangulations
|
The concept RegularTriangulationTraits_3 is the first template parameter of the class CGAL::Regular_triangulation_3. It defines the geometric objects (points, segments...) forming the triangulation together with a few geometric predicates and constructions on these objects.
We use here the same notation as in Section Regular Triangulation. To simplify notation, \(p\) will often denote in the sequel either the point \( p\in\mathbb{R}^3\) or the weighted point \( {p}^{(w)}=(p,w_p)\).
TriangulationTraits_3 In addition to the requirements described for the traits class of CGAL::Triangulation_3, the geometric traits class of CGAL::Regular_triangulation_3 must fulfill the following requirements.
Types | |
| typedef unspecified_type | Line_3 |
| The line type. | |
| typedef unspecified_type | Object_3 |
| The object type. | |
| typedef unspecified_type | Plane_3 |
| The plane type. | |
| typedef unspecified_type | Ray_3 |
| The ray type. | |
| typedef unspecified_type | Weighted_point_3 |
| The weighted point type. | |
| typedef unspecified_type | Power_side_of_oriented_power_sphere_3 |
| A predicate object, model of Kernel::PowerSideOfOrientedPowerSphere_3, that must provide the following function operators: | |
| typedef unspecified_type | Compare_power_distance_3 |
| A predicate object, model of Kernel::ComparePowerDistance_3, that must provide the function operator. | |
| typedef unspecified_type | Construct_point_3 |
| A constructor type, model of Kernel::ConstructPoint_3. | |
| typedef unspecified_type | Construct_weighted_circumcenter_3 |
| A constructor type, model of Kernel::ConstructWeightedCircumcenter_3. | |
| typedef unspecified_type | Construct_object_3 |
| A constructor object that must provide the function operators. | |
| typedef unspecified_type | Construct_perpendicular_line_3 |
| A constructor object that must provide the function operator. | |
| typedef unspecified_type | Construct_plane_3 |
| A constructor object that must provide the function operator. | |
| typedef unspecified_type | Construct_ray_3 |
| A constructor object that must provide the function operator. | |
When is_Gabriel functions are used, the traits class must in addition provide the following predicate object: | |
| typedef unspecified_type | Power_side_of_bounded_power_sphere_3 |
| A predicate object that must provide the function operators. | |
Operations | |
| Power_side_of_oriented_power_sphere_3 | power_side_of_oriented_power_sphere_3_object () |
| Compare_power_distance_3 | compare_power_distance_3_object () |
| Construct_point_3 | construct_point_3_object () |
The following functions must be provided only if the member functions of CGAL::Regular_triangulation_3 returning elements of the dual diagram are called: | |
| Construct_weighted_circumcenter_3 | construct_weighted_circumcenter_3_object () |
| Construct_object_3 | construct_object_3_object () |
| Construct_perpendicular_line_3 | construct_perpendicular_line_object () |
| Construct_plane_3 | construct_plane_3_object () |
| Construct_ray_3 | construct_ray_3_object () |
A predicate object, model of Kernel::ComparePowerDistance_3, 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.
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 type, model of Kernel::ConstructPoint_3.
The operator() extracts the bare point from a weighted point.
Point_3 operator() ( Weighted_point_3 p);
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.
A constructor type, model of Kernel::ConstructWeightedCircumcenter_3.
The operator() constructs the bare point which is the center of the smallest orthogonal sphere to the input weighted points.
Point_3 operator() ( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s);
A predicate object that must provide the function operators.
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p (which is the sphere with center p and squared radius -w_p with w_p the weight of p),
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p and q,
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p, q, and r.
A predicate object, model of Kernel::PowerSideOfOrientedPowerSphere_3, that 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 \( {z(p,q,r,s)}^{(w)}\) be the power sphere of the weighted points \( (p,q,r,s)\). Returns
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t),
which has a definition analogous to the previous method, for coplanar points, with the power circle \( {z(p,q,r)}^{(w)}\).
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 t),
which is the same for collinear points, where \( {z(p,q)}^{(w)}\) is the power segment of p and q.
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q),
which is the same for equal bare points, then it returns the comparison of the weights (ON_POSITIVE_SIDE when q is heavier than p).
The weighted point type.
It has to be a model of the concept Kernel::WeightedPoint_3.
#include <Concepts/RegularTriangulationTraits_3.h>
The concept RegularTriangulationTraits_3 is the first template parameter of the class CGAL::Regular_triangulation_3. It defines the geometric objects (points, segments...) forming the triangulation together with a few geometric predicates and constructions on these objects.
We use here the same notation as in Section Regular Triangulation. To simplify notation, \(p\) will often denote in the sequel either the point \( p\in\mathbb{R}^3\) or the weighted point \( {p}^{(w)}=(p,w_p)\).
TriangulationTraits_3 In addition to the requirements described for the traits class of CGAL::Triangulation_3, the geometric traits class of CGAL::Regular_triangulation_3 must fulfill the following requirements.
Types | |
| typedef unspecified_type | Line_3 |
| The line type. | |
| typedef unspecified_type | Object_3 |
| The object type. | |
| typedef unspecified_type | Plane_3 |
| The plane type. | |
| typedef unspecified_type | Ray_3 |
| The ray type. | |
| typedef unspecified_type | Weighted_point_3 |
| The weighted point type. | |
| typedef unspecified_type | Power_side_of_oriented_power_sphere_3 |
| A predicate object, model of Kernel::PowerSideOfOrientedPowerSphere_3, that must provide the following function operators: | |
| typedef unspecified_type | Compare_power_distance_3 |
| A predicate object, model of Kernel::ComparePowerDistance_3, that must provide the function operator. | |
| typedef unspecified_type | Construct_point_3 |
| A constructor type, model of Kernel::ConstructPoint_3. | |
| typedef unspecified_type | Construct_weighted_circumcenter_3 |
| A constructor type, model of Kernel::ConstructWeightedCircumcenter_3. | |
| typedef unspecified_type | Construct_object_3 |
| A constructor object that must provide the function operators. | |
| typedef unspecified_type | Construct_perpendicular_line_3 |
| A constructor object that must provide the function operator. | |
| typedef unspecified_type | Construct_plane_3 |
| A constructor object that must provide the function operator. | |
| typedef unspecified_type | Construct_ray_3 |
| A constructor object that must provide the function operator. | |
When is_Gabriel functions are used, the traits class must in addition provide the following predicate object: | |
| typedef unspecified_type | Power_side_of_bounded_power_sphere_3 |
| A predicate object that must provide the function operators. | |
Operations | |
| Power_side_of_oriented_power_sphere_3 | power_side_of_oriented_power_sphere_3_object () |
| Compare_power_distance_3 | compare_power_distance_3_object () |
| Construct_point_3 | construct_point_3_object () |
The following functions must be provided only if the member functions of CGAL::Regular_triangulation_3 returning elements of the dual diagram are called: | |
| Construct_weighted_circumcenter_3 | construct_weighted_circumcenter_3_object () |
| Construct_object_3 | construct_object_3_object () |
| Construct_perpendicular_line_3 | construct_perpendicular_line_object () |
| Construct_plane_3 | construct_plane_3_object () |
| Construct_ray_3 | construct_ray_3_object () |
A predicate object, model of Kernel::ComparePowerDistance_3, 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.
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 type, model of Kernel::ConstructPoint_3.
The operator() extracts the bare point from a weighted point.
Point_3 operator() ( Weighted_point_3 p);
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.
A constructor type, model of Kernel::ConstructWeightedCircumcenter_3.
The operator() constructs the bare point which is the center of the smallest orthogonal sphere to the input weighted points.
Point_3 operator() ( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s);
A predicate object that must provide the function operators.
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p (which is the sphere with center p and squared radius -w_p with w_p the weight of p),
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p and q,
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t),
which returns the sign of the power test of t with respect to the smallest sphere orthogonal to p, q, and r.
A predicate object, model of Kernel::PowerSideOfOrientedPowerSphere_3, that 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 \( {z(p,q,r,s)}^{(w)}\) be the power sphere of the weighted points \( (p,q,r,s)\). Returns
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t),
which has a definition analogous to the previous method, for coplanar points, with the power circle \( {z(p,q,r)}^{(w)}\).
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 t),
which is the same for collinear points, where \( {z(p,q)}^{(w)}\) is the power segment of p and q.
Oriented_side operator()( Weighted_point_3 p, Weighted_point_3 q),
which is the same for equal bare points, then it returns the comparison of the weights (ON_POSITIVE_SIDE when q is heavier than p).
The weighted point type.
It has to be a model of the concept Kernel::WeightedPoint_3.