From 52dd29a635577f626d68a1ffd83126aab2a93128 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Tue, 16 Jan 2018 17:29:53 +0100 Subject: [PATCH] Actualized traits concepts --- .../Concepts/GradientFittingTraits.h | 81 ++++++++++--------- .../Concepts/InterpolationTraits.h | 46 +++++++---- 2 files changed, 73 insertions(+), 54 deletions(-) diff --git a/Interpolation/doc/Interpolation/Concepts/GradientFittingTraits.h b/Interpolation/doc/Interpolation/Concepts/GradientFittingTraits.h index 34efa13f1c5..88f25e71c56 100644 --- a/Interpolation/doc/Interpolation/Concepts/GradientFittingTraits.h +++ b/Interpolation/doc/Interpolation/Concepts/GradientFittingTraits.h @@ -15,9 +15,7 @@ concept `GradientFittingTraits` defines this common set of requirements. \sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::farin_c1_interpolation()` \sa `CGAL::quadratic_interpolation()` - */ - class GradientFittingTraits { public: @@ -26,14 +24,12 @@ public: /// @{ /*! -The number type must follow the model -`FieldNumberType`. +The number type must follow the model `FieldNumberType`. */ typedef unspecified_type FT; /*! -The point type on -which the function is defined and interpolated. +The (weightless) point type. */ typedef unspecified_type Point_d; @@ -48,15 +44,11 @@ The corresponding vector type. typedef unspecified_type Vector_d; /*! -defines a -matrix type. -Must provide the following member functions : +defines a matrix type. Must provide the following member functions : -`Aff_transformation tr.inverse ()` which gives the inverse -transformation, and +`Aff_transformation tr.inverse ()`, which gives the inverse transformation, and -`Aff_transformation tr.transform( Vector v)` which returns the -multiplication of `tr` with `v`. +`Aff_transformation tr.transform(Vector v)`, which returns the multiplication of `tr` with `v`. */ typedef unspecified_type Aff_transformation_d; @@ -65,9 +57,9 @@ typedef unspecified_type Aff_transformation_d; A constructor object for `Point_d`. Provides : -`Point_d operator() (Point_d p)` which simply returns `p` +`Point_d operator() (Point_d p)`, which simply returns `p` -`Point_d operator() (Weighted_point wp)` which returns the bare point contained in `wp`. +`Point_d operator() (Weighted_point_d wp)`, which returns the bare point contained in `wp`. */ typedef unspecified_type Construct_point_d; @@ -76,11 +68,9 @@ 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() (Point_d p, Point_d q)`, which produces the vector `q - p` and -`Vector_d operator() (Null_vector NULL_VECTOR)` which introduces -the null vector. +`Vector_d operator() (Null_vector NULL_VECTOR)`, which introduces the null vector. */ typedef unspecified_type Construct_vector_d; @@ -89,44 +79,45 @@ Constructor object for `Vector_d`. Provides : -`Vector_d operator() (Vector_d v,FT scale)` which produces the -vector `v` scaled by a factor `scale`. +`Vector_d operator() (Vector_d v, FT scale)`, which produces the vector `v` scaled by a factor `scale`. */ typedef unspecified_type Construct_scaled_vector_d; /*! -Constructor object for -`Aff_transformation_d`. Provides : +Constructor object for `FT`. Provides the operator: -`Aff_transformation_d operator()()` which introduces an affine -transformation whose matrix has only zero entries. +`FT operator() (Point_d p, Point_d q)`, which the squared distance between `p` and `q`. +*/ +typedef unspecified_type Compute_squared_distance_d; + +/*! +Constructor object for `Aff_transformation_d`. Provides : + +`Aff_transformation_d operator()()`, which introduces an affine transformation +whose matrix has only zero entries. */ typedef unspecified_type Construct_null_matrix_d; /*! -Constructor object for -`Aff_transformation_d`. Provides : +Constructor object for `Aff_transformation_d`. Provides : -`Aff_transformation_d operator()(FT scale)` which introduces a -scaling by a scale factor `scale`. +`Aff_transformation_d operator()(FT scale)`, which introduces a scaling by a scale factor `scale`. */ typedef unspecified_type Construct_scaling_matrix_d; /*! -Constructor object for -`Aff_transformation_d`. Provides : +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`. +`Aff_transformation_d operator()(Aff_transformation_d tr1, Aff_transformation_d tr2)`, + which returns the sum of the two matrices representing `tr1` and `tr2`. */ typedef unspecified_type Construct_sum_matrix_d; /*! -Constructor object for -`Aff_transformation_d`. Provides : +Constructor object for `Aff_transformation_d`. Provides : -`Aff_transformation_d operator()(Vector v)` which returns the -outer product, i.e.\ the quadratic matrix `v`\f$ ^t\f$`v`. +`Aff_transformation_d operator()(Vector v)`, which returns the outer product, +i.e.\ the quadratic matrix `v`\f$ ^t\f$`v`. */ typedef unspecified_type Construct_outer_product_d; @@ -149,6 +140,11 @@ GradientFittingTraits(); /*! +*/ +Construct_vector_d construct_point_d_object(); + +/*! + */ Construct_vector_d construct_vector_d_object(); @@ -159,9 +155,20 @@ Construct_scaled_vector_d construct_scaled_vector_d_object(); /*! +*/ +Compute_squared_distance_d compute_squared_distance_d_object(); + +/*! + */ Construct_null_matrix_d construct_null_matrix_d_object(); +/*! + +*/ +Construct_scaling_matrix_d construct_scaling_matrix_d_object(); + + /*! */ diff --git a/Interpolation/doc/Interpolation/Concepts/InterpolationTraits.h b/Interpolation/doc/Interpolation/Concepts/InterpolationTraits.h index a7e32e55055..4fd80db5def 100644 --- a/Interpolation/doc/Interpolation/Concepts/InterpolationTraits.h +++ b/Interpolation/doc/Interpolation/Concepts/InterpolationTraits.h @@ -25,14 +25,17 @@ public: /// @{ /*! -The number type must follow the model -`FieldNumberType`. +The number type must follow the model `FieldNumberType`. */ typedef unspecified_type FT; /*! -The point type on -which the function is defined and interpolated. +The (weightless) point type. +*/ +typedef unspecified_type Point_d; + +/*! +The weighted point type. */ typedef unspecified_type Point_d; @@ -42,12 +45,19 @@ The corresponding vector type. typedef unspecified_type Vector_d; /*! -A constructor object for -`Vector_d`. -Provides : +A constructor object for `Point_d`. Provides : -`Vector_d operator() (Point_d a, Point_d b)` which produces the -vector `b - a` and +`Point_d operator() (Point_d p)` which returns the point itself. + +`Point_d operator() (Weighted_point_d wp)` which extracts the bare point from the weighted point. +*/ +typedef unspecified_type Construct_point_d; + +/*! +A constructor object for `Vector_d`. Provides : + +`Vector_d operator() (Point_d p, Point_d q)` which produces the +vector `q - p` and `Vector_d operator() (Null_vector NULL_VECTOR)` which introduces the null vector. @@ -55,21 +65,18 @@ the null vector. typedef unspecified_type Construct_vector_d; /*! -Constructor object for -`Vector_d`. -Provides : +Constructor object for `Vector_d`. Provides : -`Vector_d operator() (Vector_d v,FT scale)` which produces the +`Vector_d operator() (Vector_d v, FT scale)` which produces the vector `v` scaled by a factor `scale`. */ typedef unspecified_type Construct_scaled_vector_d; /*! -Constructor -object for `FT`. Provides the operator: +Constructor object for `FT`. Provides the operator: -`FT operator() (Point_d a, Point_d b)` returning the squared -distance between `a` and `b`. +`FT operator() (Point_d p, Point_d q)` returning the squared +distance between `p` and `q`. */ typedef unspecified_type Compute_squared_distance_d; @@ -87,6 +94,11 @@ InterpolationTraits(); /*! +*/ +Construct_vector_d construct_point_d_object(); + +/*! + */ Construct_vector_d construct_vector_d_object();