## GradientFittingTraits

### Definition

The function sibson_gradient_fitting is parameterized by a traits class that defines the primitives used by the algorithm. The concept GradientFittingTraits defines this common set of requirements.

### Types

GradientFittingTraits::FT
| The number type must follow the model FieldNumberType.
GradientFittingTraits::Point_d
| The point type on which the function is defined and interpolated.
GradientFittingTraits::Vector_d
| The corresponding vector type.
GradientFittingTraits::Aff_transformation_d
| defines a matrix type. Must provide the following member functions : Aff_transformation tr.inverse () which gives the inverse transformation, and Aff_transformation tr.transform( Vector v) which returns the multiplication of tr with v.
GradientFittingTraits::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.
GradientFittingTraits::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.
GradientFittingTraits::Construct_null_matrix_d
| Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()() which introduces an affine transformation whose matrix has only zero entries.
GradientFittingTraits::Construct_scaling_matrix_d
| Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(FT scale) which introduces a scaling by a scale factor scale.
GradientFittingTraits::Construct_sum_matrix_d
| Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(Aff_transformation_d tr1, Aff_transformation_d tr2) which returns the sum of the two matrices representing tr1 and tr2.
GradientFittingTraits::Construct_outer_product_d
| Constructor object for Aff_transformation_d. Provides : Aff_transformation_d operator()(Vector v) which returns the outerproduct, i.e. the quadratic matrix v t v.

### Creation

GradientFittingTraits traits;
| default constructor.

### Operations

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 ()
Construct_null_matrix_d
| traits.construct_null_matrix_d_object ()
Construct_sum_matrix_d
| traits.construct_sum_matrix_d_object ()
Construct_outer_product_d
| traits.construct_outer_product_d_object ()

### Has Models

CGAL::Interpolation_gradient_fitting_traits_2<K>

### See Also

InterpolationTraits
CGAL::Interpolation_traits_2<K>
CGAL::sibson_gradient_fitting
CGAL::sibson_c1_interpolation
CGAL::farin_c1_interpolation
CGAL::quadratic_interpolation