CGAL 6.1 - 3D Mesh Generation
Loading...
Searching...
No Matches
BisectionGeometricTraits_3 Class Reference

#include <Concepts/BisectionGeometricTraits_3.h>

Definition

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 \( \mathbb{R}^3\) to \( \mathbb{R}\)), the do-intersect predicate with a segment is computed by evaluations of the function values at both end points of the segment.

Has models
All models of the CGAL concept Kernel
See also
ImplicitSurfaceTraits_3
IntersectionGeometricTraits_3
CGAL::Labeled_mesh_domain_3<BGT>

Types

typedef unspecified_type FT
 Numerical type.
 
typedef unspecified_type Point_3
 The point type.
 
typedef unspecified_type Segment_3
 Segment type.
 
typedef unspecified_type Ray_3
 Ray type.
 
typedef unspecified_type Line_3
 Line type.
 
typedef unspecified_type Vector_3
 Vector type.
 
typedef unspecified_type Sphere_3
 Sphere type.
 
typedef unspecified_type Compute_scalar_product_3
 Model of ::Kernel::ComputeScalarProduct_3.
 
typedef unspecified_type Compute_squared_distance_3
 Model of ::Kernel::ComputeSquaredDistance_3.
 
typedef unspecified_type Compute_squared_radius_3
 Model of ::Kernel::ComputeSquaredRadius_3.
 
typedef unspecified_type Construct_center_3
 Model of ::Kernel::ConstructCenter_3.
 
typedef unspecified_type Construct_midpoint_3
 Model of ::Kernel::ConstructMidpoint_3.
 
typedef unspecified_type Construct_point_on_3
 Model of ::Kernel::ConstructPoint_3.
 
typedef unspecified_type Construct_segment_3
 Model of ::Kernel::ConstructSegment_3.
 
typedef unspecified_type Construct_scaled_vector_3
 Model of ::Kernel::ConstructScaledVector_3.
 
typedef unspecified_type Construct_translated_point_3
 Model of ::Kernel::ConstructTranslatedPoint_3.
 
typedef unspecified_type Construct_vector_3
 Model of ::Kernel::ConstructVertex_3.
 
typedef unspecified_type Has_on_bounded_side_3
 Model of ::Kernel::HasOnBoundedSide_3.
 

Member Typedef Documentation

◆ Compute_scalar_product_3

Model of ::Kernel::ComputeScalarProduct_3.

That function object must provide the operator:

  • FT operator()(Vector_3 v, Vector_3 w) which returns the scalar (inner) product of the two vectors v and w.

◆ Compute_squared_distance_3

Model of ::Kernel::ComputeSquaredDistance_3.

That function object must provide the operator:

  • FT operator()(Point_3, Point_3) which returns the squared distance between two points.

◆ Compute_squared_radius_3

Model of ::Kernel::ComputeSquaredRadius_3.

That function object must provide the operator:

  • FT operator()(Sphere_3 s) which returns the squared radius of s.

◆ Construct_center_3

Model of ::Kernel::ConstructCenter_3.

That function object must provide the operator:

  • Point_3 operator()(Sphere_3 s) which returns the center of the sphere s.

◆ Construct_midpoint_3

Model of ::Kernel::ConstructMidpoint_3.

That function object must provide the operator:

  • Point_3 operator()(Point_3 p, Point_3 q) which computes the midpoint of the segment pq.

◆ Construct_point_on_3

Model of ::Kernel::ConstructPoint_3.

That function object must provide 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.
    Precondition
    \( i \geq0\).
  • Point_3 operator()(Segment_3 s,int i) which returns either source or target of s: point(0) returns the source of s, point(1) returns the target of s. Parameter i is taken modulo 2, which gives easy access to the other end point.

◆ Construct_scaled_vector_3

Model of ::Kernel::ConstructScaledVector_3.

That function object must provide the operator:

  • Vector_3 operator()(Vector_3 v, FT scale) which returns the vector v scaled by a factor scale.

◆ Construct_segment_3

Model of ::Kernel::ConstructSegment_3.

That function object must provide 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.

◆ Construct_translated_point_3

Model of ::Kernel::ConstructTranslatedPoint_3.

That function object must provide the operator:

  • Point_3 operator()(Point_3 p, Vector_3 v) which returns the point obtained by translating p by the vector v.

◆ Construct_vector_3

Model of ::Kernel::ConstructVertex_3.

That function object must provide the operator:

  • Vector_3 operator()(Point_3 a, Point_3 b) which returns the vector b-a.

◆ FT

typedef unspecified_type BisectionGeometricTraits_3::FT

Numerical type.

Must be a model of ::FieldNumberType and ::FieldWithSqrt, and constructible from a double.

◆ Has_on_bounded_side_3

Model of ::Kernel::HasOnBoundedSide_3.

That function object must provide the operator:

  • bool operator()(Sphere_3 s, Point_3 p) which returns true iff p lies on the bounded side of s.

◆ Point_3

typedef unspecified_type BisectionGeometricTraits_3::Point_3

The point type.

Must have a constructor Point_3(FT, FT, FT).