|
CGAL 5.1 - 3D Periodic Triangulations
|
#include <Concepts/Periodic_3RegularTriangulationTraits_3.h>
The concept Periodic_3RegularTriangulationTraits_3 is the first template parameter of the class CGAL::Periodic_3_regular_triangulation_3. It refines the concept RegularTriangulationTraits_3 from the CGAL 3D Triangulations. It redefines the geometric objects, predicates and constructions to work with point-offset pairs. In most cases the offsets will be (0,0,0) and the predicates from RegularTriangulationTraits_3 can be used directly. For efficiency reasons we maintain for each functor the version without offsets.
In addition to the requirements described for the traits class RegularTriangulationTraits_3, the geometric traits class of a periodic regular triangulation must fulfill the following requirements.
| typedef unspecified_type | Power_side_of_oriented_power_sphere_3 |
| A predicate object that must provide the function operators. More... | |
| typedef unspecified_type | Compare_weighted_squared_radius_3 |
| A predicate object that must provide the function operators: More... | |
| typedef unspecified_type | Compare_power_distance_3 |
A predicate object, model of ComparePowerDistance_3, that must provide the function operator. More... | |
When vertex removal is used, the traits class must in addition provide the following predicate object | |
| typedef unspecified_type | Coplanar_orientation_3 |
| A predicate object that must provide the function operators: More... | |
When | |
| typedef unspecified_type | Power_side_of_bounded_power_sphere_3 |
| A predicate object that must provide the function operator. More... | |
When the dual operations are used, the traits class must in addition provide the following constructor object: | |
| typedef unspecified_type | Construct_weighted_circumcenter_3 |
| A constructor object that must provide the function operator. More... | |
Operations | |
The following functions give access to the predicate and construction objects: | |
| Power_side_of_oriented_power_sphere_3 | power_side_of_oriented_power_sphere_3_object () |
| Compare_weighted_squared_radius_3 | compare_weighted_squared_radius_3_object () |
The following function must be provided if vertex removal is used; otherwise dummy functions can be provided. | |
| Coplanar_orientation_3 | coplanar_3_orientation_3_object () |
The following function must be provided only if the methods of | |
| Construct_weighted_circumcenter_3 | construct_weighted_circumcenter_3_object () |
| typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Compare_power_distance_3 |
A predicate object, model of ComparePowerDistance_3, that must provide the function operator.
Comparison_result operator()(Point_3 p, Weighted_point_3 q, Weighted_point_3 r, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r),
which compares the power distance between (p,o_p) and (q,o_q) to the power distance between (p,o_p) and (r,o_r).
nearest_power_vertex() or nearest_power_vertex_in_cell() is issued. | typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Compare_weighted_squared_radius_3 |
A predicate object that must provide the function operators:
Orientation operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s, FT w),
which compares the weight of the smallest sphere orthogonal to the input weighted points with the input weight w and returns a SMALLER, EQUAL, or LARGER.
p, q, r, and s lie inside the domain. | typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Construct_weighted_circumcenter_3 |
A constructor object that must provide the function operator.
Weighted_point_3 operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 s, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r, Periodic_3_offset_3 o_s),
which constructs the weighted circumcenter of four point-offset pairs.
p, q, r, s lie inside the domain. p, q, r and s, as well as (p,o_p), (q,o_q), (r,o_r) and (s,o_s) must be non coplanar. | typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Coplanar_orientation_3 |
A predicate object that must provide the function operators:
Orientation operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r),
which returns COLLINEAR, if the points are collinear; otherwise it must return a consistent orientation for any three points chosen in a same plane and
Orientation operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r),
which is the same for point-offset pairs.
p, q, r lie inside the domain. | typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Power_side_of_bounded_power_sphere_3 |
A predicate object that must provide the function operator.
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 t, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_t),
which returns the sign of the power test of (t,o_t) with respect to the smallest sphere orthogonal to (p,o_p) (which is the sphere with center (p,o_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, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_t),
which returns the sign of the power test of (t,o_t) with respect to the smallest sphere orthogonal to (p,o_p) and (q,o_q),
Bounded_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r, Periodic_3_offset_3 o_q),
which returns the sign of the power test of (t,o_t) with respect to the smallest sphere orthogonal to (p,o_p), (q,o_q), and (r,o_r).
| typedef unspecified_type Periodic_3RegularTriangulationTraits_3::Power_side_of_oriented_power_sphere_3 |
A predicate object that must provide the 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, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r, Periodic_3_offset_3 o_s, Periodic_3_offset_3 o_t),
which determines the position of the point-offset pair (t,o_t) with respect to the power sphere of the point-offset pairs (p,o_p), (q,o_q), (r,o_r), (s,o_s).
p, q, r, s, t lie inside the domain and p, q, r, s are not coplanar.When vertex removal is used, the predicate must in addition provide the function operators
Oriented_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 r, Weighted_point_3 t, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_r, Periodic_3_offset_3 o_t),
which has a definition similar to the previous method, for coplanar points, with the power circle of p,q,r.
p, q, r, t lie inside the domain, p, q, r are not collinear, and (p,o_p), (q,o_q), (r,o_r), (t,o_t) are coplanar.Oriented_side operator()(Weighted_point_3 p, Weighted_point_3 q, Weighted_point_3 t, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q, Periodic_3_offset_3 o_t),
which is the same for collinear points, and the power segment of (p,o_p) and (q,o_q),
p, q, t lie inside the domain, p and q have different Bare_points, and (p,o_p), (q,o_q), (t,o_t) are collinear.Oriented_side operator()(Weighted_point_3 p, Weighted_point_3 q, Periodic_3_offset_3 o_p, Periodic_3_offset_3 o_q),
which is the same for equal points, that is when (p,o_p) and (q,o_q) have equal coordinates, then it returns the comparison of the weights.
p and q lie inside the domain and have equal Bare_points. | Compare_weighted_squared_radius_3 Periodic_3RegularTriangulationTraits_3::compare_weighted_squared_radius_3_object | ( | ) |
| Construct_weighted_circumcenter_3 Periodic_3RegularTriangulationTraits_3::construct_weighted_circumcenter_3_object | ( | ) |
| Coplanar_orientation_3 Periodic_3RegularTriangulationTraits_3::coplanar_3_orientation_3_object | ( | ) |
| Power_side_of_oriented_power_sphere_3 Periodic_3RegularTriangulationTraits_3::power_side_of_oriented_power_sphere_3_object | ( | ) |