 ## 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