## InterpolationTraits

### Definition

Most interpolation functions are parameterized by a traits class that defines the primitives used in the interpolation algorithms. The concept InterpolationTraits defines this common set of requirements.

### Types

InterpolationTraits::FT
| The number type must follow the model FieldNumberType.
InterpolationTraits::Point_d
| The point type on which the function is defined and interpolated.
InterpolationTraits::Vector_d
| The corresponding vector type.
InterpolationTraits::Construct_vector_d
| A constructor object for Vector_d. Provides : Vector_d operator() (Point_d a, Point_d b) which produces the vector b - a and Vector_d operator() (Null_vector NULL_VECTOR) which introduces the null vector.
InterpolationTraits::Construct_scaled_vector_d
| Constructor object for Vector_d. Provides : Vector_d operator() (Vector_d v,FT scale) which produces the vector v scaled by a factor scale.
InterpolationTraits::Compute_squared_distance_d
| Constructor object for FT. Provides the operator: FT operator() (Point_d a, Point_d b) returning the squared distance between a and b.
InterpolationTraits traits;
| default constructor.

### Construction objects

The following functions that create instances of the above constructor object types must exist.

Construct_vector_d | traits.construct_vector_d_object ()
Construct_scaled_vector_d
| traits.construct_scaled_vector_d_object ()
Compute_squared_distance_d
| traits.compute_squared_distance_d_object ()

### Has Models

CGAL::Interpolation_traits_2<K>
CGAL::Interpolation_gradient_fitting_traits_2<K>

### See Also

GradientFittingTraits
CGAL::sibson_c1_interpolation
CGAL::sibson_gradient_fitting
CGAL::farin_c1_interpolation
CGAL::quadratic_interpolation