The concept BisectionGeometricTraits_3 describes a geometric traits class that provides the basic types and operations to implement a model of MeshDomain_3 based solely on intersection detections. Points in the non-empty intersections are herein computed by bisection.
Such traits class is relevant when intersection detections can be performed efficiently. For instance, when bounding surfaces are implicitly described by a function (such as an isosurface of a 3D function from ℝ3 to ℝ), the do-intersect predicate with a segment is computed by evaluations of the function values at both end points of the segment.
| |||
Numerical type. Must be a model of
SqrtFieldNumberType and constructible from a double.
| |||
| |||
The point type. Must have a
constructor Point_3(FT, FT, FT).
| |||
| |||
Segment type.
| |||
| |||
Ray type.
| |||
| |||
Line type.
| |||
| |||
Vector type.
| |||
| |||
Sphere type.
| |||
| |||
Function object providing the operator FT operator()(Vector_3 v, Vector_3 w) which returns the scalar (inner) product of the two vectors v and w.
| |||
| |||
Function object providing the operator FT operator()(Point_3, Point_3) which returns the squared distance between two points.
| |||
| |||
Function object providing the operator FT operator()(Sphere_3 s) which returns the squared radius of s.
| |||
| |||
Function object providing the operator Point_3 operator()(Sphere_3 s) which returns the center of the sphere s.
| |||
| |||
Function object providing the operator Point_3 operator()(Point_3 p, Point_3 q) which computes the midpoint of the segment pq.
| |||
| |||
Function object providing the following operators: Point_3 operator()(Line_3 l,int i); which returns an arbitrary point on l. It holds point(i) == point(j), iff i==j. Furthermore, is directed from point(i) to point(j), for all i < j. Point_3 operator()(Ray_3 r,int i); which returns a point on r. point(0) is the source, point(i), with i>0, is different from the source.
| |||
| |||
Function object providing the operator Segment_3 operator()(Point_3 p, Point_3 q); which returns a segment with source p and target q, directed from the source to the target.
| |||
| |||
Function object providing the operator Vector_3 operator()(Vector_3 v, FT scale) which returns the vector v scaled by a factor scale.
| |||
| |||
Function object providing the operator Point_3 operator()(Point_3 p, Vector_3 v) which returns the point obtained by translating p by the vector v.
| |||
| |||
Function object providing the operator Vector_3 operator()(Point_3 a, Point_3 b) which returns the vector b-a.
| |||
| |||
Function object providing the operator bool operator()(Sphere_3 s, Point_3 p); which returns true iff p lies on the bounded side of s.
|
The following functions give access to the predicate and construction objects:
Any Cgal Kernel.