CGAL 5.4 - 3D Surface Mesh Generation
ImplicitSurfaceTraits_3 Concept Reference

## Definition

The concept ImplicitSurfaceTraits_3 describes the requirements of the traits class to be plugged as Traits in CGAL::Implicit_surface_3<Traits, Function>.

When make_surface_mesh is called with a surface of type CGAL::Implicit_surface_3<Traits,Function>, the surface mesher traits generator generates automatically a traits class that is a model of SurfaceMeshTraits_3. Actually, the concept ImplicitSurfaceTraits_3 provides the types, predicates and constructors that are passed to the generated model of SurfaceMeshTraits_3.

Has Models:
Any CGAL Kernel.
CGAL::Implicit_surface_3<Traits, Function>
CGAL::make_surface_mesh()

## Types

typedef unspecified_type FT
The numerical type. More...

typedef unspecified_type Point_3
The point type. More...

typedef unspecified_type Line_3
The line type.

typedef unspecified_type Ray_3
The ray type.

typedef unspecified_type Segment_3
The segment type.

typedef unspecified_type Vector_3
The vector type.

typedef unspecified_type Sphere_3
The sphere type.

typedef unspecified_type Compute_scalar_product_3
A function object providing the operator. More...

typedef unspecified_type Compute_squared_distance_3
A function object providing the operator. More...

A function object providing the operator. More...

typedef unspecified_type Construct_center_3
A function object providing the operator. More...

typedef unspecified_type Construct_midpoint_3
A function object providing the operator. More...

typedef unspecified_type Construct_point_on_3
A function object providing the following operators: More...

typedef unspecified_type Construct_segment_3
A function object providing the operator. More...

typedef unspecified_type Construct_scaled_vector_3
A function object providing the operator. More...

typedef unspecified_type Construct_translated_point_3
A function object providing the operator. More...

typedef unspecified_type Construct_vector_3
A function object providing the operator. More...

typedef unspecified_type Has_on_bounded_side_3
A function object providing the operator. More...

## Operations

Compute_scalar_product_3 compute_scalar_product_3_object ()

Compute_squared_distance_3 compute_squared_distance_3_object ()

Construct_center_3 construct_center_3_object ()

Construct_midpoint_3 construct_midpoint_3_object ()

Construct_point_on_3 construct_point_on_3_object ()

Construct_scaled_vector_3 construct_scaled_vector_3_object ()

Construct_segment_3 construct_segment_3_object ()

Construct_translated_point_3 construct_translated_point_3_object ()

Construct_vector_3 construct_vector_3_object ()

Has_on_bounded_side_3 has_on_bounded_side_3_object ()

## ◆ Compute_scalar_product_3

A 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.

## ◆ Compute_squared_distance_3

A function object providing the operator.

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

A function object providing the operator.

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

## ◆ Construct_center_3

A function object providing the operator.

Point_3 operator()(const Sphere_3& s) which computes the center of the sphere s.

## ◆ Construct_midpoint_3

A function object providing the operator.

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

## ◆ Construct_point_on_3

A function object providing the following operators:

Point_3 operator()(const 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()(const 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()(const Segment_3& s,int i) which returns source or target of s: point(0) returns the source of s, point(1) returns the target of s. The parameter i is taken modulo 2, which gives easy access to the other end point.

## ◆ Construct_scaled_vector_3

A function object providing the operator.

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

## ◆ Construct_segment_3

A function object providing the operator.

Segment_3 operator()(const Point_3 &p, const Point_3 &q) which returns a segment with source p and target q. It is directed from the source towards the target.

## ◆ Construct_translated_point_3

A function object providing the operator.

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

## ◆ Construct_vector_3

A function object providing the operator.

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

## ◆ FT

The numerical type.

It must be model of FieldWithSqrt and constructible from a double.

## ◆ Has_on_bounded_side_3

A function object providing the operator.

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

## ◆ Point_3

The point type.

This point type must have a constructor Point_3(FT, FT, FT).