Fixed trailing whitespace in the Pkg Interpolation

This commit is contained in:
Mael Rouxel-Labbé 2018-01-11 16:29:18 +01:00
parent c88b17f92e
commit f6a7307a74
11 changed files with 517 additions and 517 deletions

View File

@ -4,133 +4,133 @@ namespace CGAL {
/*! /*!
\ingroup PkgInterpolation2Interpolation \ingroup PkgInterpolation2Interpolation
`Interpolation_gradient_fitting_traits_2` is a model for the concepts `Interpolation_gradient_fitting_traits_2` is a model for the concepts
`InterpolationTraits` and `GradientFittingTraits`. It can be `InterpolationTraits` and `GradientFittingTraits`. It can be
used to instantiate the geometric traits class of interpolation used to instantiate the geometric traits class of interpolation
functions and of Sibson's gradient fitting function when applied on functions and of Sibson's gradient fitting function when applied on
a function defined over a two-dimensional domain. The traits class a function defined over a two-dimensional domain. The traits class
is templated by a kernel class `K`. is templated by a kernel class `K`.
\cgalModels `GradientFittingTraits` \cgalModels `GradientFittingTraits`
\cgalModels `InterpolationTraits` \cgalModels `InterpolationTraits`
\sa `InterpolationTraits` \sa `InterpolationTraits`
\sa `GradientFittingTraits` \sa `GradientFittingTraits`
\sa `CGAL::Interpolation_traits_2<K>` \sa `CGAL::Interpolation_traits_2<K>`
*/ */
template< typename K > template< typename K >
class Interpolation_gradient_fitting_traits_2 { class Interpolation_gradient_fitting_traits_2 {
public: public:
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
*/ */
typedef K::FT FT; typedef K::FT FT;
/*! /*!
*/ */
typedef K::Point_2 Point_d; typedef K::Point_2 Point_d;
/*! /*!
*/ */
typedef K::Vector_2 Vector_d; typedef K::Vector_2 Vector_d;
/*! /*!
*/ */
typedef K::Aff_transformation_2 Aff_transformation_d; typedef K::Aff_transformation_2 Aff_transformation_d;
/*! /*!
*/ */
typedef K::Construct_vector_2 Construct_vector_d; typedef K::Construct_vector_2 Construct_vector_d;
/*! /*!
*/ */
typedef K::Construct_scaled_vector_2 typedef K::Construct_scaled_vector_2
Construct_scaled_vector_d; Construct_scaled_vector_d;
/*! /*!
*/ */
typedef K::Compute_squared_distance_2 typedef K::Compute_squared_distance_2
Compute_squared_distance_d; Compute_squared_distance_d;
/*! /*!
*/ */
typedef Construct_null_matrix_2<Aff_transformation_d> typedef Construct_null_matrix_2<Aff_transformation_d>
Construct_null_matrix_d; Construct_null_matrix_d;
/*! /*!
*/ */
typedef Construct_scaling_matrix_2<Aff_transformation_d> typedef Construct_scaling_matrix_2<Aff_transformation_d>
Construct_scaling_matrix_d; Construct_scaling_matrix_d;
/*! /*!
*/ */
typedef Construct_sum_matrix_2<Aff_transformation_d> Construct_sum_matrix_d; typedef Construct_sum_matrix_2<Aff_transformation_d> Construct_sum_matrix_d;
/*! /*!
*/ */
typedef Construct_outer_product_2<K> Construct_outer_product_d; typedef Construct_outer_product_2<K> Construct_outer_product_d;
/// @} /// @}
/// \name Operations /// \name Operations
/// @{ /// @{
/*! /*!
*/ */
Construct_scaled_vector_d Construct_scaled_vector_d
construct_scaled_vector_d_object() const; construct_scaled_vector_d_object() const;
/*! /*!
*/ */
Construct_vector_d Construct_vector_d
construct_vector_d_object()const; construct_vector_d_object()const;
/*! /*!
*/ */
Compute_squared_distance_d Compute_squared_distance_d
compute_squared_distance_d_object() const; compute_squared_distance_d_object() const;
/*! /*!
*/ */
Construct_null_matrix_d Construct_null_matrix_d
construct_null_matrix_d_object() const; construct_null_matrix_d_object() const;
/*! /*!
*/ */
Construct_scaling_matrix_d Construct_scaling_matrix_d
construct_scaling_matrix_d_object() const; construct_scaling_matrix_d_object() const;
/*! /*!
*/ */
Construct_sum_matrix_d Construct_sum_matrix_d
construct_sum_matrix_d_object() const; construct_sum_matrix_d_object() const;
/*! /*!
*/ */
Construct_outer_product_d Construct_outer_product_d
construct_outer_product_d_object() const; construct_outer_product_d_object() const;
/// @} /// @}

View File

@ -4,80 +4,80 @@ namespace CGAL {
/*! /*!
\ingroup PkgInterpolation2Interpolation \ingroup PkgInterpolation2Interpolation
`Interpolation_traits_2` is a model for the concept `Interpolation_traits_2` is a model for the concept
`InterpolationTraits` and can be used to instantiate the `InterpolationTraits` and can be used to instantiate the
geometric traits class of interpolation methods applied on a geometric traits class of interpolation methods applied on a
bivariate function over a two-dimensional domain. The traits class bivariate function over a two-dimensional domain. The traits class
is templated by a kernel class `K`. is templated by a kernel class `K`.
\cgalModels `InterpolationTraits` \cgalModels `InterpolationTraits`
\sa `InterpolationTraits` \sa `InterpolationTraits`
\sa `GradientFittingTraits` \sa `GradientFittingTraits`
\sa `CGAL::Interpolation_gradient_fitting_traits_2<K>` \sa `CGAL::Interpolation_gradient_fitting_traits_2<K>`
*/ */
template< typename K > template< typename K >
class Interpolation_traits_2 { class Interpolation_traits_2 {
public: public:
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
*/ */
typedef K::FT FT; typedef K::FT FT;
/*! /*!
*/ */
typedef K::Point_2 Point_d; typedef K::Point_2 Point_d;
/*! /*!
*/ */
typedef K::Vector_2 Vector_d; typedef K::Vector_2 Vector_d;
/*! /*!
*/ */
typedef K::Construct_vector_2 Construct_vector_d; typedef K::Construct_vector_2 Construct_vector_d;
/*! /*!
*/ */
typedef K::Construct_scaled_vector_2 typedef K::Construct_scaled_vector_2
Construct_scaled_vector_d; Construct_scaled_vector_d;
/*! /*!
*/ */
typedef K::Compute_squared_distance_2 typedef K::Compute_squared_distance_2
Compute_squared_distance_d; Compute_squared_distance_d;
/// @} /// @}
/// \name Operations /// \name Operations
/// @{ /// @{
/*! /*!
*/ */
Construct_scaled_vector_d Construct_scaled_vector_d
construct_scaled_vector_d_object() const; construct_scaled_vector_d_object() const;
/*! /*!
*/ */
Construct_vector_d Construct_vector_d
construct_vector_d_object()const; construct_vector_d_object()const;
/*! /*!
*/ */
Compute_squared_distance_d Compute_squared_distance_d
compute_squared_distance_d_object() const; compute_squared_distance_d_object() const;
/// @} /// @}

View File

@ -4,25 +4,25 @@ namespace CGAL {
/*! /*!
\ingroup PkgInterpolation2SurfaceNeighbor \ingroup PkgInterpolation2SurfaceNeighbor
`Voronoi_intersection_2_traits_3` is a model for the concept `Voronoi_intersection_2_traits_3` is a model for the concept
`RegularTriangulationTraits_2`. It can be used to instantiate the `RegularTriangulationTraits_2`. It can be used to instantiate the
geometric traits class of a two-dimensional regular triangulation. geometric traits class of a two-dimensional regular triangulation.
A three-dimensional plane is defined by a point and a vector that A three-dimensional plane is defined by a point and a vector that
are members of the traits class. The triangulation is defined on `3D` are members of the traits class. The triangulation is defined on `3D`
points. It is the regular triangulation of the input points points. It is the regular triangulation of the input points
projected onto the plane and each weighted with the negative squared projected onto the plane and each weighted with the negative squared
distance of the input point to the plane. It can be shown that it is distance of the input point to the plane. It can be shown that it is
dual to the power diagram obtained by intersecting the dual to the power diagram obtained by intersecting the
three-dimensional Voronoi diagram of the input points with the three-dimensional Voronoi diagram of the input points with the
plane. All predicates and constructions used in the computation of plane. All predicates and constructions used in the computation of
the regular triangulation are formulated on the three dimensional the regular triangulation are formulated on the three dimensional
points without explicitly constructing the projected points and the points without explicitly constructing the projected points and the
weights. This reduces the arithmetic demands. The traits class is weights. This reduces the arithmetic demands. The traits class is
templated by a kernel class `K` and inherits from it. templated by a kernel class `K` and inherits from it.
\cgalModels `RegularTriangulationTraits_2` \cgalModels `RegularTriangulationTraits_2`
\sa `CGAL::Regular_triangulation_2<Gt, Tds>` \sa `CGAL::Regular_triangulation_2<Gt, Tds>`
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3
@ -38,8 +38,8 @@ public:
/*! /*!
*/ */
typedef K::Point_3 Point_2; typedef K::Point_3 Point_2;
/*! /*!
@ -48,28 +48,28 @@ typedef K::Weighted_point_3 Weighted_point_2;
/*! /*!
*/ */
typedef K::Segment_3 Segment_2; typedef K::Segment_3 Segment_2;
/*! /*!
*/ */
typedef K::Triangle_3 Triangle_2; typedef K::Triangle_3 Triangle_2;
/*! /*!
*/ */
typedef K::Line_3 Line_2; typedef K::Line_3 Line_2;
/*! /*!
*/ */
typedef K::Ray_3 Ray_2; typedef K::Ray_3 Ray_2;
/*! /*!
*/ */
typedef K::Vector_3 Vector_2; typedef K::Vector_3 Vector_2;
/*! /*!
@ -103,13 +103,13 @@ typedef K::Construct_ray_3 Construct_ray_2;
/*! /*!
*/ */
typedef K::Construct_triangle_3 Construct_triangle_2; typedef K::Construct_triangle_3 Construct_triangle_2;
/*! /*!
*/ */
typedef K::Compare_distance_3 Compare_distance_2; typedef K::Compare_distance_3 Compare_distance_2;
/*! /*!
* Necessary for certificated coordinates / neighbors computation * Necessary for certificated coordinates / neighbors computation
@ -137,29 +137,29 @@ typedef K::Construct_circumcenter_3 Construct_circumcenter_2;
/// @{ /// @{
/*! /*!
An instance of this function object class computes the square An instance of this function object class computes the square
root of the result of `K::Compute_squared_area_3`. root of the result of `K::Compute_squared_area_3`.
If the number type `FT` does not support the square root If the number type `FT` does not support the square root
operation, the result is cast to `double` operation, the result is cast to `double`
before computing the square root. before computing the square root.
*/ */
typedef Compute_area_3<K> Compute_area_2; typedef Compute_area_3<K> Compute_area_2;
/*! /*!
*/ */
typedef Orientation_with_normal_plane_2_3<K> Orientation_2; typedef Orientation_with_normal_plane_2_3<K> Orientation_2;
/*! /*!
*/ */
typedef Side_of_plane_centered_sphere_2_3<K> Power_side_of_oriented_power_circle_2; typedef Side_of_plane_centered_sphere_2_3<K> Power_side_of_oriented_power_circle_2;
/*! /*!
*/ */
typedef Construct_plane_centered_circumcenter_3<K> typedef Construct_plane_centered_circumcenter_3<K>
Construct_weighted_circumcenter_2; Construct_weighted_circumcenter_2;
/*! /*!
@ -169,12 +169,12 @@ Construct_radical_axis_2;
/*! /*!
*/ */
typedef Compare_first_projection_3<K> Compare_x_2; typedef Compare_first_projection_3<K> Compare_x_2;
/*! /*!
*/ */
typedef Compare_second_projection_3<K> Compare_y_2; typedef Compare_second_projection_3<K> Compare_y_2;
/*! /*!
@ -190,13 +190,13 @@ typedef Compare_to_less<Compare_y_2> Compare_y_2;
/// @} /// @}
/// \name Creation /// \name Creation
/// @{ /// @{
/*! /*!
The plane associated to the traits class contains `point` and has as normal vector `normal`. The plane associated to the traits class contains `point` and has as normal vector `normal`.
The optional kernel parameter `k` is the base class of the traits class. The optional kernel parameter `k` is the base class of the traits class.
*/ */
Voronoi_intersection_2_traits_3(const typename K::Point_3& point = typename K::Point_3(), Voronoi_intersection_2_traits_3(const typename K::Point_3& point = typename K::Point_3(),
const typename K::Vector_3& normal = NULL_VECTOR, const typename K::Vector_3& normal = NULL_VECTOR,
const K& k = K()); const K& k = K());

View File

@ -4,56 +4,56 @@ namespace CGAL {
/*! /*!
\ingroup PkgInterpolation2 \ingroup PkgInterpolation2
The struct `Data_access` implements a functor that allows to retrieve The struct `Data_access` implements a functor that allows to retrieve
data from an associative container. The functor keeps a reference to data from an associative container. The functor keeps a reference to
the container. Given an instance of the container's key type, it the container. Given an instance of the container's key type, it
returns a pair of the container's value type and a Boolean indicating returns a pair of the container's value type and a Boolean indicating
whether the retrieval was successful. whether the retrieval was successful.
This class can be used to provide the values and gradients of the This class can be used to provide the values and gradients of the
interpolation functions. interpolation functions.
\cgalHeading{Parameters} \cgalHeading{Parameters}
The class The class
`Data_access` has the container type `Map` as template parameter. `Data_access` has the container type `Map` as template parameter.
*/ */
template< typename Map > template< typename Map >
struct Data_access : public CGAL::unary_function< typename Map::key_type, struct Data_access : public CGAL::unary_function< typename Map::key_type,
std::pair< typename Map::mapped_type, bool> > { std::pair< typename Map::mapped_type, bool> > {
public: public:
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
*/ */
typedef Map::mapped_type Data_type; typedef Map::mapped_type Data_type;
/*! /*!
*/ */
typedef Map::key_type Key_type; typedef Map::key_type Key_type;
/// @} /// @}
/// \name Creation /// \name Creation
/// @{ /// @{
/*! /*!
Introduces a `Data_access` to the container `map`. Introduces a `Data_access` to the container `map`.
*/ */
Data_access(const Map& map); Data_access(const Map& map);
/*! /*!
If If
there is an entry for `p` in the container `map`, then the there is an entry for `p` in the container `map`, then the
pair of `map.find(p)` and `true` is returned. Otherwise, the pair of `map.find(p)` and `true` is returned. Otherwise, the
Boolean value of the pair is `false`. Boolean value of the pair is `false`.
*/ */
std::pair< Data_type, bool> operator()(const Key_type& p); std::pair< Data_type, bool> operator()(const Key_type& p);
/// @} /// @}
@ -66,24 +66,24 @@ generates the interpolated function value computed by Farin's interpolant.
\pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range `[first, beyond)`. \pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range `[first, beyond)`.
\pre The range `[first, beyond)` contains either one or more than three elements. \pre The range `[first, beyond)` contains either one or more than three elements.
The function `farin_c1_interpolation()` interpolates the function values and the The function `farin_c1_interpolation()` interpolates the function values and the
gradients that are provided by functors using the method described in \cgalCite{f-sodt-90}. gradients that are provided by functors using the method described in \cgalCite{f-sodt-90}.
\cgalHeading{Parameters} \cgalHeading{Parameters}
The value type of `RandomAccessIterator` is a pair The value type of `RandomAccessIterator` is a pair
associating a point to a (non-normalized) barycentric coordinate. See associating a point to a (non-normalized) barycentric coordinate. See
`sibson_c1_interpolation()` for the other parameters. `sibson_c1_interpolation()` for the other parameters.
\cgalHeading{Requirements} \cgalHeading{Requirements}
Same requirements as for `sibson_c1_interpolation()` only the Same requirements as for `sibson_c1_interpolation()` only the
iterator must provide random access and `Traits::FT` does not need iterator must provide random access and `Traits::FT` does not need
to provide the square root operation. to provide the square root operation.
\sa `CGAL::Data_access<Map>` \sa `CGAL::Data_access<Map>`
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa PkgInterpolationSibsonGradientFitting \sa PkgInterpolationSibsonGradientFitting
\sa `CGAL::Interpolation_traits_2<K>` \sa `CGAL::Interpolation_traits_2<K>`
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
@ -105,26 +105,26 @@ Traits& traits);
/*! /*!
\ingroup PkgInterpolation2Interpolation \ingroup PkgInterpolation2Interpolation
The function `linear_interpolation()` computes the weighted sum of the function The function `linear_interpolation()` computes the weighted sum of the function
values which must be provided via a functor. values which must be provided via a functor.
\tparam ForwardIterator must have as value type a pair associating a point to a \tparam ForwardIterator must have as value type a pair associating a point to a
(non-normalized) barycentric coordinate, that is (non-normalized) barycentric coordinate, that is
`std::iterator_traits<ForwardIterator>::%value_type::first_type` is equivalent to a `std::iterator_traits<ForwardIterator>::%value_type::first_type` is equivalent to a
point and `std::iterator_traits<ForwardIterator>::%value_type::second_type` is a point and `std::iterator_traits<ForwardIterator>::%value_type::second_type` is a
field number type. field number type.
\tparam Functor The type `Functor::argument_type` must be equivalent to \tparam Functor The type `Functor::argument_type` must be equivalent to
`std::iterator_traits<ForwardIterator>::%value_type::first_type` and `std::iterator_traits<ForwardIterator>::%value_type::first_type` and
`Functor::result_type` is a pair of the function value type `Functor::result_type` is a pair of the function value type
and a Boolean value. The function value type must provide a and a Boolean value. The function value type must provide a
multiplication and addition operation with the field number type multiplication and addition operation with the field number type
`std::iterator_traits<ForwardIterator>::%value_type::second_type` and a constructor `std::iterator_traits<ForwardIterator>::%value_type::second_type` and a constructor
with argument `0`. with argument `0`.
A model of the functor is provided by the A model of the functor is provided by the
struct `Data_access`. It must be instantiated accordingly with struct `Data_access`. It must be instantiated accordingly with
an associative container (e.g. `std::map`) having the an associative container (e.g. `std::map`) having the
point type as `key_type` and the function value type as point type as `key_type` and the function value type as
`mapped_type`. `mapped_type`.
\param first,beyond are the iterator range for the weighted input points. \param first,beyond are the iterator range for the weighted input points.
@ -134,11 +134,11 @@ function value and a Boolean for a given point. The Boolean indicates whether th
function value could be retrieved correctly. This function generates function value could be retrieved correctly. This function generates
the interpolated function value as the weighted sum of the values the interpolated function value as the weighted sum of the values
corresponding to each point of the point/coordinate pairs in the corresponding to each point of the point/coordinate pairs in the
range `[first, beyond)`. range `[first, beyond)`.
`function_value(q).second == true` for all points `q` of the point/coordinate pairs in the range `[first, beyond)`. `function_value(q).second == true` for all points `q` of the point/coordinate pairs in the range `[first, beyond)`.
\sa `CGAL::Data_access<Map>` \sa `CGAL::Data_access<Map>`
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3
@ -157,20 +157,20 @@ norm, Functor function_values);
The function `quadratic_interpolation()` generates the The function `quadratic_interpolation()` generates the
interpolated function value as the weighted sum of the values plus a interpolated function value as the weighted sum of the values plus a
linear term in the gradient for each point of the point/coordinate linear term in the gradient for each point of the point/coordinate
pairs in the range `[first, beyond)`. pairs in the range `[first, beyond)`.
\cgalHeading{Parameters and Template Parameters} \cgalHeading{Parameters and Template Parameters}
The same as for `sibson_c1_interpolation()` only that `Traits::FT` does not need The same as for `sibson_c1_interpolation()` only that `Traits::FT` does not need
to provide the square root operation. to provide the square root operation.
\sa `InterpolationTraits` \sa `InterpolationTraits`
\sa `GradientFittingTraits` \sa `GradientFittingTraits`
\sa `CGAL::Data_access<Map>` \sa `CGAL::Data_access<Map>`
\sa PkgInterpolationSibsonGradientFitting \sa PkgInterpolationSibsonGradientFitting
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::Interpolation_traits_2<K>` \sa `CGAL::Interpolation_traits_2<K>`
\sa `CGAL::Interpolation_gradient_fitting_traits_2<K>` \sa `CGAL::Interpolation_gradient_fitting_traits_2<K>`
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3
@ -179,7 +179,7 @@ template < class ForwardIterator, class Functor, class
GradFunctor, class Traits> typename Functor::result_type GradFunctor, class Traits> typename Functor::result_type
quadratic_interpolation(ForwardIterator first, ForwardIterator quadratic_interpolation(ForwardIterator first, ForwardIterator
beyond, const typename std::iterator_traits<ForwardIterator>:: beyond, const typename std::iterator_traits<ForwardIterator>::
value_type::second_type& norm, value_type::second_type& norm,
const typename std::iterator_traits<ForwardIterator>::value_type:: const typename std::iterator_traits<ForwardIterator>::value_type::
first_type& p, Functor function_value, GradFunctor first_type& p, Functor function_value, GradFunctor
function_gradient,const Traits& traits); function_gradient,const Traits& traits);
@ -189,62 +189,62 @@ function_gradient,const Traits& traits);
\ingroup PkgInterpolation2Interpolation \ingroup PkgInterpolation2Interpolation
The function `sibson_c1_interpolation()` generates the interpolated The function `sibson_c1_interpolation()` generates the interpolated
function value at the point `p`, using functors for the function values function value at the point `p`, using functors for the function values
and the gradients, by applying Sibson's \f$ Z^1\f$ interpolant. and the gradients, by applying Sibson's \f$ Z^1\f$ interpolant.
If the functor `function_gradient` cannot supply the gradient of a If the functor `function_gradient` cannot supply the gradient of a
point, the function returns a pair where the Boolean is set to point, the function returns a pair where the Boolean is set to
`false`. If the interpolation was successful, the pair contains the `false`. If the interpolation was successful, the pair contains the
interpolated function value as first and `true` as second value. interpolated function value as first and `true` as second value.
\tparam Traits must be a model of `InterpolationTraits`. \tparam Traits must be a model of `InterpolationTraits`.
The number type `FT` provided by `Traits` must support The number type `FT` provided by `Traits` must support
the square root operation `sqrt()`. the square root operation `sqrt()`.
\tparam ForwardIterator must have as value type a pair associating a point to a \tparam ForwardIterator must have as value type a pair associating a point to a
(non-normalized) barycentric coordinate. (non-normalized) barycentric coordinate.
More precisely, `std::iterator_traits<ForwardIterator>::%value_type::first_type` is More precisely, `std::iterator_traits<ForwardIterator>::%value_type::first_type` is
equivalent to `Traits::Point_d` and equivalent to `Traits::Point_d` and
`std::iterator_traits<ForwardIterator>::%value_type::second_type` is equivalent to `std::iterator_traits<ForwardIterator>::%value_type::second_type` is equivalent to
`Traits::FT`. `Traits::FT`.
\tparam Functor must be a functor where `Functor::argument_type` must be equivalent to \tparam Functor must be a functor where `Functor::argument_type` must be equivalent to
`Traits::Point_d` and `Functor::result_type` is a pair of `Traits::Point_d` and `Functor::result_type` is a pair of
the function value type and a Boolean. The function value type must the function value type and a Boolean. The function value type must
provide a multiplication and addition operation with the type provide a multiplication and addition operation with the type
`Traits::FT` as well as a constructor with argument `0`. `Traits::FT` as well as a constructor with argument `0`.
\tparam GradFunctor must be a functor where `GradFunctor::argument_type` must be equivalent to \tparam GradFunctor must be a functor where `GradFunctor::argument_type` must be equivalent to
`Traits::Point_d` and `Functor::result_type` is a pair of `Traits::Point_d` and `Functor::result_type` is a pair of
the function's gradient type and a Boolean. The the function's gradient type and a Boolean. The
function gradient type must provide a multiplication operation with function gradient type must provide a multiplication operation with
`Traits::Vector_d`. `Traits::Vector_d`.
A model of the functor types `Functor` (resp. A model of the functor types `Functor` (resp.
`GradFunctor`) is provided by the struct `Data_access`. It `GradFunctor`) is provided by the struct `Data_access`. It
must be instantiated accordingly with an associative container must be instantiated accordingly with an associative container
(e.g. `std::map`) having the point type as `key_type` (e.g. `std::map`) having the point type as `key_type`
and the function value type (resp. function gradient type) as and the function value type (resp. function gradient type) as
`mapped_type`. `mapped_type`.
\param first,beyond is the iterator range of the barycentric \param first,beyond is the iterator range of the barycentric
coordinates for the query point `p`. coordinates for the query point `p`.
\param norm is the normalization factor. `norm` \f$ \neq0\f$. \param norm is the normalization factor. `norm` \f$ \neq0\f$.
\param p is the point at which the interpolated function value is generated \param p is the point at which the interpolated function value is generated
\param function_value is a functor that allows to access the value of the interpolated \param function_value is a functor that allows to access the value of the interpolated
function given a point. `function_value(q).second == true` for all points function given a point. `function_value(q).second == true` for all points
`q` of the point/coordinate pairs in the range `[first, beyond)` `q` of the point/coordinate pairs in the range `[first, beyond)`
\param function_gradient is a functor that allows to access the \param function_gradient is a functor that allows to access the
function gradient given a point. function gradient given a point.
\param traits is an instance of the traits class \param traits is an instance of the traits class
\sa `InterpolationTraits` \sa `InterpolationTraits`
\sa `GradientFittingTraits` \sa `GradientFittingTraits`
\sa `CGAL::Data_access<Map>` \sa `CGAL::Data_access<Map>`
\sa PkgInterpolationSibsonGradientFitting \sa PkgInterpolationSibsonGradientFitting
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::Interpolation_traits_2<K>` \sa `CGAL::Interpolation_traits_2<K>`
\sa `CGAL::Interpolation_gradient_fitting_traits_2<K>` \sa `CGAL::Interpolation_gradient_fitting_traits_2<K>`
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3

View File

@ -4,44 +4,44 @@ namespace CGAL {
\defgroup PkgInterpolationNaturalNeighborCoordinates2 CGAL::natural_neighbor_coordinates_2() \defgroup PkgInterpolationNaturalNeighborCoordinates2 CGAL::natural_neighbor_coordinates_2()
\ingroup PkgInterpolation2NatNeighbor \ingroup PkgInterpolation2NatNeighbor
The functions `natural_neighbor_coordinates_2()` compute natural neighbor coordinates, also The functions `natural_neighbor_coordinates_2()` compute natural neighbor coordinates, also
called Sibson's coordinates, for `2D` points provided a two-dimensional called Sibson's coordinates, for `2D` points provided a two-dimensional
triangulation and a query point in the convex hull of the vertices triangulation and a query point in the convex hull of the vertices
of the triangulation. of the triangulation.
\cgalHeading{Requirements} \cgalHeading{Requirements}
<OL> <OL>
<LI>`Dt` are equivalent to the class <LI>`Dt` are equivalent to the class
`Delaunay_triangulation_2<Traits, Tds>`. `Delaunay_triangulation_2<Traits, Tds>`.
<LI>The traits class `Traits` of `Dt` is a model of the <LI>The traits class `Traits` of `Dt` is a model of the
concept `DelaunayTriangulationTraits_2`. concept `DelaunayTriangulationTraits_2`.
Only the following members of this traits class are used: Only the following members of this traits class are used:
<UL> <UL>
<LI>`Construct_circumcenter_2` <LI>`Construct_circumcenter_2`
<LI>`FT` <LI>`FT`
<LI>`Point_2` <LI>`Point_2`
<LI>`construct_circumcenter_2_object` <LI>`construct_circumcenter_2_object`
<LI>Additionally, `Traits` must meet the requirements for <LI>Additionally, `Traits` must meet the requirements for
the traits class of the `polygon_area_2()` function. the traits class of the `polygon_area_2()` function.
</UL> </UL>
<LI>The value type of `OutputIterator` is equivalent to <LI>The value type of `OutputIterator` is equivalent to
`std::pair<Dt::Point_2, Dt::Geom_traits::FT>`, i.e., a pair `std::pair<Dt::Point_2, Dt::Geom_traits::FT>`, i.e., a pair
associating a point and its natural neighbor coordinate. associating a point and its natural neighbor coordinate.
</OL> </OL>
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function computes the area of the sub-cells This function computes the area of the sub-cells
stolen from the Voronoi cells of the points in `dt` when inserting stolen from the Voronoi cells of the points in `dt` when inserting
`p`. The total area of the Voronoi cell of `p` is also `p`. The total area of the Voronoi cell of `p` is also
computed and returned by the function. If `p` lies outside the computed and returned by the function. If `p` lies outside the
convex hull, the coordinate values cannot be computed and the third convex hull, the coordinate values cannot be computed and the third
value of the result triple is set to `false`. value of the result triple is set to `false`.
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
@ -50,9 +50,9 @@ value of the result triple is set to `false`.
/*! /*!
computes the natural neighbor coordinates for `p` with respect to the computes the natural neighbor coordinates for `p` with respect to the
points in the two-dimensional Delaunay triangulation `dt`. points in the two-dimensional Delaunay triangulation `dt`.
\tparam Dt must be of type `Delaunay_triangulation_2<Traits, Tds>`. \tparam Dt must be of type `Delaunay_triangulation_2<Traits, Tds>`.
\tparam OutputIterator must have the value type `std::pair<Dt::Point_2, Dt::Geom_traits::FT>`. \tparam OutputIterator must have the value type `std::pair<Dt::Point_2, Dt::Geom_traits::FT>`.
The sequence of point/coordinate pairs The sequence of point/coordinate pairs
@ -65,7 +65,7 @@ the coordinate computation was successful.
template < class Dt, class OutputIterator > CGAL::Triple< template < class Dt, class OutputIterator > CGAL::Triple<
OutputIterator, typename Dt::Geom_traits::FT, bool > OutputIterator, typename Dt::Geom_traits::FT, bool >
natural_neighbor_coordinates_2( natural_neighbor_coordinates_2(
const Dt& dt, const typename Dt::Geom_traits::Point_2& p, const Dt& dt, const typename Dt::Geom_traits::Point_2& p,
OutputIterator out, typename Dt::Face_handle start = typename Dt::Face_handle()); OutputIterator out, typename Dt::Face_handle start = typename Dt::Face_handle());
/*! /*!
@ -76,9 +76,9 @@ the triangulation. It is the result of the function
`dt.get_boundary_of_conflicts(p,std::back_inserter(hole), start)`\endlink. `dt.get_boundary_of_conflicts(p,std::back_inserter(hole), start)`\endlink.
*/ */
template <class Dt, class OutputIterator, template <class Dt, class OutputIterator,
class EdgeIterator > CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT, class EdgeIterator > CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT,
bool > natural_neighbor_coordinates_2( bool > natural_neighbor_coordinates_2(
const Dt& dt, const typename Dt::Geom_traits::Point_2& p, const Dt& dt, const typename Dt::Geom_traits::Point_2& p,
OutputIterator out, EdgeIterator hole_begin, EdgeIterator hole_end); OutputIterator out, EdgeIterator hole_begin, EdgeIterator hole_end);
/*! /*!
@ -86,8 +86,8 @@ computes the natural neighbor coordinates of the point
`vh->point()` with respect to the vertices of `dt` excluding `vh->point()` with respect to the vertices of `dt` excluding
`vh->point()`. The same as above for the remaining parameters. `vh->point()`. The same as above for the remaining parameters.
*/ */
template <class Dt, class OutputIterator> template <class Dt, class OutputIterator>
CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT, bool > CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT, bool >
natural_neighbor_coordinates_2(const Dt& dt, typename Dt::Vertex_handle vh, OutputIterator out); natural_neighbor_coordinates_2(const Dt& dt, typename Dt::Vertex_handle vh, OutputIterator out);
/// @} /// @}

View File

@ -4,35 +4,35 @@ namespace CGAL {
\defgroup PkgInterpolationRegularNeighborCoordinates2 CGAL::regular_neighbor_coordinates_2() \defgroup PkgInterpolationRegularNeighborCoordinates2 CGAL::regular_neighbor_coordinates_2()
\ingroup PkgInterpolation2NatNeighbor \ingroup PkgInterpolation2NatNeighbor
The functions `regular_neighbor_coordinates_2()` compute natural neighbor coordinates, also The functions `regular_neighbor_coordinates_2()` compute natural neighbor coordinates, also
called Sibson's coordinates, for weighted `2D` points provided a called Sibson's coordinates, for weighted `2D` points provided a
two-dimensional regular triangulation and a (weighted) query point two-dimensional regular triangulation and a (weighted) query point
inside the convex hull of the vertices of the triangulation. We call these inside the convex hull of the vertices of the triangulation. We call these
coordinates regular neighbor coordinates. coordinates regular neighbor coordinates.
\cgalHeading{Requirements} \cgalHeading{Requirements}
<OL> <OL>
<LI>`Rt` are equivalent to the class <LI>`Rt` are equivalent to the class
`Regular_triangulation_2<Traits, Tds>`. `Regular_triangulation_2<Traits, Tds>`.
<LI>The traits class `Traits` of `Rt` is a model of the <LI>The traits class `Traits` of `Rt` is a model of the
concept `RegularTriangulationTraits_2`. It provides the number concept `RegularTriangulationTraits_2`. It provides the number
type `FT` which is a model for `FieldNumberType` and it must type `FT` which is a model for `FieldNumberType` and it must
meet the requirements for the traits class of the meet the requirements for the traits class of the
`polygon_area_2()` function. All CGAL kernels are models of this concept. `polygon_area_2()` function. All CGAL kernels are models of this concept.
<LI>The value type of `OutputIterator` is equivalent to <LI>The value type of `OutputIterator` is equivalent to
`std::pair<Rt::Weighted_point, Rt::Geom_traits::FT>`, i.e.\ a pair `std::pair<Rt::Weighted_point, Rt::Geom_traits::FT>`, i.e.\ a pair
associating a point and its regular neighbor coordinate. associating a point and its regular neighbor coordinate.
</OL> </OL>
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function computes the areas stolen from the This function computes the areas stolen from the
Voronoi cells of points in `rt` by the insertion of `p`. The Voronoi cells of points in `rt` by the insertion of `p`. The
total area of the Voronoi cell of `p` is also computed and total area of the Voronoi cell of `p` is also computed and
returned by the function. If `p` lies outside the convex hull, the returned by the function. If `p` lies outside the convex hull, the
coordinate values cannot be computed and the third value of the result coordinate values cannot be computed and the third value of the result
triple is set to `false`. triple is set to `false`.
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
@ -42,20 +42,20 @@ triple is set to `false`.
/*! /*!
computes the regular neighbor coordinates for `p` with respect computes the regular neighbor coordinates for `p` with respect
to the weighted points in the two-dimensional regular triangulation to the weighted points in the two-dimensional regular triangulation
`rt`. `rt`.
\tparam Rt must be a `Regular_triangulation_2<Traits, Tds>`. \tparam Rt must be a `Regular_triangulation_2<Traits, Tds>`.
\tparam OutputIterator must have the value type \tparam OutputIterator must have the value type
`std::pair<Rt::Weighted_point, Rt::Geom_traits::FT>`. The sequence of `std::pair<Rt::Weighted_point, Rt::Geom_traits::FT>`. The sequence of
point/coordinate pairs that is computed by the function is placed point/coordinate pairs that is computed by the function is placed
starting at `out`. starting at `out`.
The function returns a triple with an The function returns a triple with an
iterator that is placed past-the-end of the resulting sequence of iterator that is placed past-the-end of the resulting sequence of
point/coordinate pairs, the normalization factor of the coordinates point/coordinate pairs, the normalization factor of the coordinates
and a Boolean value which is set to `true`, iff the coordinate and a Boolean value which is set to `true`, iff the coordinate
computation was successful, i.e., if `p` lies inside the computation was successful, i.e., if `p` lies inside the
convex hull of the points in `rt`. convex hull of the points in `rt`.
*/ */
template < class Rt, class OutputIterator > CGAL::Triple< template < class Rt, class OutputIterator > CGAL::Triple<
OutputIterator, typename Rt::Geom_traits::FT, bool > OutputIterator, typename Rt::Geom_traits::FT, bool >
@ -64,9 +64,9 @@ Rt::Weighted_point& p, OutputIterator out, typename
Rt::Face_handle start = typename Rt::Face_handle()); Rt::Face_handle start = typename Rt::Face_handle());
/*! /*!
The same as above. The iterator range `[hole_begin, hole_end)` determines The same as above. The iterator range `[hole_begin, hole_end)` determines
the boundary edges of the conflict zone of `p` in the triangulation `rt`. the boundary edges of the conflict zone of `p` in the triangulation `rt`.
\link Regular_triangulation_2::hidden_vertices_begin() `rt.hidden_vertices_begin()`\endlink and \link Regular_triangulation_2::hidden_vertices_begin() `rt.hidden_vertices_begin()`\endlink and
\link Regular_triangulation_2::hidden_vertices_end() `rt.hidden_vertices_end()`\endlink \link Regular_triangulation_2::hidden_vertices_end() `rt.hidden_vertices_end()`\endlink
determines the iterator range over the hidden vertices of the conflict determines the iterator range over the hidden vertices of the conflict
zone of `p` in`rt`. It is the result of the function zone of `p` in`rt`. It is the result of the function

View File

@ -14,25 +14,25 @@ coordinates.
\cgalHeading{Requirements} \cgalHeading{Requirements}
<OL> <OL>
<LI>The value type of `ForwardIterator` is a pair of point/coordinate <LI>The value type of `ForwardIterator` is a pair of point/coordinate
value, thus `std::iterator_traits<ForwardIterator>::%value_type::first_type` is value, thus `std::iterator_traits<ForwardIterator>::%value_type::first_type` is
equivalent to a point and equivalent to a point and
`std::iterator_traits<ForwardIterator>::%value_type::second_type` is a `std::iterator_traits<ForwardIterator>::%value_type::second_type` is a
number type. number type.
<LI>`Functor::argument_type` must be equivalent to <LI>`Functor::argument_type` must be equivalent to
`std::iterator_traits<ForwardIterator>::%value_type::first_type` and `std::iterator_traits<ForwardIterator>::%value_type::first_type` and
`Functor::result_type` is the function value type. It must `Functor::result_type` is the function value type. It must
provide a multiplication and addition operation with the type provide a multiplication and addition operation with the type
`std::iterator_traits<ForwardIterator>::%value_type::second_type`. `std::iterator_traits<ForwardIterator>::%value_type::second_type`.
<LI>`Traits` is a model of the concept <LI>`Traits` is a model of the concept
`GradientFittingTraits`. `GradientFittingTraits`.
</OL> </OL>
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa `CGAL::farin_c1_interpolation()` \sa `CGAL::farin_c1_interpolation()`
\sa `CGAL::quadratic_interpolation()` \sa `CGAL::quadratic_interpolation()`
\sa `CGAL::Interpolation_gradient_fitting_traits_2<K>` \sa `CGAL::Interpolation_gradient_fitting_traits_2<K>`
\sa `PkgInterpolationNaturalNeighborCoordinates2` \sa `PkgInterpolationNaturalNeighborCoordinates2`
\sa `PkgInterpolationRegularNeighborCoordinates2` \sa `PkgInterpolationRegularNeighborCoordinates2`
@ -40,9 +40,9 @@ provide a multiplication and addition operation with the type
\cgalHeading{Implementation} \cgalHeading{Implementation}
This function implements Sibson's gradient This function implements Sibson's gradient
estimation method based on natural neighbor coordinates estimation method based on natural neighbor coordinates
\cgalCite{s-bdnni-81}. \cgalCite{s-bdnni-81}.
*/ */
/// @{ /// @{

View File

@ -4,15 +4,15 @@ namespace CGAL {
\defgroup PkgInterpolationSurfaceNeighborCoordinates3 3D Surface Neighbor Coordinates Functions \defgroup PkgInterpolationSurfaceNeighborCoordinates3 3D Surface Neighbor Coordinates Functions
\ingroup PkgInterpolation2SurfaceNeighbor \ingroup PkgInterpolation2SurfaceNeighbor
The functions `surface_neighbor_coordinates_3()` compute natural neighbor coordinates for The functions `surface_neighbor_coordinates_3()` compute natural neighbor coordinates for
surface points associated to a finite set of sample points issued from surface points associated to a finite set of sample points issued from
the surface. The coordinates are computed from the intersection of the the surface. The coordinates are computed from the intersection of the
Voronoi cell of the query point `p` with the tangent plane to the Voronoi cell of the query point `p` with the tangent plane to the
surface at `p`. If the sampling is sufficiently dense, the surface at `p`. If the sampling is sufficiently dense, the
coordinate system meets the properties described in the manual pages coordinate system meets the properties described in the manual pages
and in \cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}. The query and in \cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}. The query
point `p` needs to lie inside the convex hull of the projection of point `p` needs to lie inside the convex hull of the projection of
the sample points onto the tangent plane at `p`. the sample points onto the tangent plane at `p`.
The functions `surface_neighbor_coordinates_certified_3()` return, in The functions `surface_neighbor_coordinates_certified_3()` return, in
addition, a second Boolean value (the fourth value of the quadruple) addition, a second Boolean value (the fourth value of the quadruple)
@ -25,28 +25,28 @@ whether the neighborhood which has been considered is large enough.
\cgalHeading{Requirements} \cgalHeading{Requirements}
<OL> <OL>
<LI>`Dt` is equivalent to the class <LI>`Dt` is equivalent to the class
`Delaunay_triangulation_3`. `Delaunay_triangulation_3`.
<LI>The value type of `OutputIterator` is equivalent to <LI>The value type of `OutputIterator` is equivalent to
`std::pair<Dt::Point_3, Dt::Geom_traits::FT>`, i.e.\ a pair `std::pair<Dt::Point_3, Dt::Geom_traits::FT>`, i.e.\ a pair
associating a point and its natural neighbor coordinate. associating a point and its natural neighbor coordinate.
<LI>`ITraits` is equivalent to the class `Voronoi_intersection_2_traits_3<K>`. <LI>`ITraits` is equivalent to the class `Voronoi_intersection_2_traits_3<K>`.
</OL> </OL>
\sa `CGAL::linear_interpolation()` \sa `CGAL::linear_interpolation()`
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa `CGAL::farin_c1_interpolation()` \sa `CGAL::farin_c1_interpolation()`
\sa `CGAL::Voronoi_intersection_2_traits_3<K>` \sa `CGAL::Voronoi_intersection_2_traits_3<K>`
\sa PkgInterpolationSurfaceNeighbors3 \sa PkgInterpolationSurfaceNeighbors3
\cgalHeading{Implementation} \cgalHeading{Implementation}
This functions construct the regular triangulation of the input points This functions construct the regular triangulation of the input points
instantiated with `Voronoi_intersection_2_traits_3<Kernel>` or `ITraits` if provided. instantiated with `Voronoi_intersection_2_traits_3<Kernel>` or `ITraits` if provided.
They return the result of the function call They return the result of the function call
`PkgInterpolationRegularNeighborCoordinates2` `PkgInterpolationRegularNeighborCoordinates2`
with the regular triangulation and `p` as arguments. with the regular triangulation and `p` as arguments.
*/ */
/// @{ /// @{
@ -58,7 +58,7 @@ The value type of `InputIterator` is the point type
`Kernel::Point_3`. The tangent plane is defined by the point `Kernel::Point_3`. The tangent plane is defined by the point
`p` and the vector `normal`. The parameter `K` `p` and the vector `normal`. The parameter `K`
determines the kernel type that will instantiate determines the kernel type that will instantiate
the template parameter of `Voronoi_intersection_2_traits_3<K>`. the template parameter of `Voronoi_intersection_2_traits_3<K>`.
The natural neighbor coordinates for `p` are computed in the The natural neighbor coordinates for `p` are computed in the
power diagram that results from the intersection of the `3D` Voronoi power diagram that results from the intersection of the `3D` Voronoi
@ -150,11 +150,11 @@ of the conflict zone. It may be the result of the call
`dt.locate(p)`. This function instantiates the template parameter `dt.locate(p)`. This function instantiates the template parameter
`ITraits` to be `Voronoi_intersection_2_traits_3<Dt::Geom_traits>`. `ITraits` to be `Voronoi_intersection_2_traits_3<Dt::Geom_traits>`.
This function allows to filter some potential neighbors of the This function allows to filter some potential neighbors of the
query point `p` from \f$ \mathcal{P}\f$ via its three-dimensional query point `p` from \f$ \mathcal{P}\f$ via its three-dimensional
Delaunay triangulation. All surface neighbors of `p` are Delaunay triangulation. All surface neighbors of `p` are
necessarily neighbors in the Delaunay triangulation of \f$ \mathcal{P} necessarily neighbors in the Delaunay triangulation of \f$ \mathcal{P}
\cup \{p\}\f$. \cup \{p\}\f$.
*/ */
template < class Dt, class OutputIterator > template < class Dt, class OutputIterator >
CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT, bool > CGAL::Triple< OutputIterator, typename Dt::Geom_traits::FT, bool >

View File

@ -4,16 +4,16 @@ namespace CGAL {
\defgroup PkgInterpolationSurfaceNeighbors3 3D Surface Neighbors Functions \defgroup PkgInterpolationSurfaceNeighbors3 3D Surface Neighbors Functions
\ingroup PkgInterpolation2SurfaceNeighbor \ingroup PkgInterpolation2SurfaceNeighbor
Given a set of sample points issued from a surface and a query point Given a set of sample points issued from a surface and a query point
`p`, the functions `surface_neighbors_3()` compute the neighbors of `p` on `p`, the functions `surface_neighbors_3()` compute the neighbors of `p` on
the surface within the sample points. If the sampling is sufficiently the surface within the sample points. If the sampling is sufficiently
dense, the neighbors are provably close to the point `p` on the dense, the neighbors are provably close to the point `p` on the
surface (cf. the manual pages and surface (cf. the manual pages and
\cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}). They are defined to \cgalCite{bf-lcss-02},\cgalCite{cgal:f-csapc-03}). They are defined to
be the neighbors of `p` in the regular triangulation dual be the neighbors of `p` in the regular triangulation dual
to the power diagram which is equivalent to the intersection of the to the power diagram which is equivalent to the intersection of the
Voronoi cell of the query point `p` with the tangent plane to the Voronoi cell of the query point `p` with the tangent plane to the
surface at `p`. surface at `p`.
The functions \c surface_neighbors_certified_3() also return, in The functions \c surface_neighbors_certified_3() also return, in
addition, a Boolean value that certifies whether or not, the Voronoi addition, a Boolean value that certifies whether or not, the Voronoi
@ -26,30 +26,30 @@ been considered.
\cgalHeading{Requirements} \cgalHeading{Requirements}
<OL> <OL>
<LI>`Dt` is equivalent to the class <LI>`Dt` is equivalent to the class
`Delaunay_triangulation_3`. `Delaunay_triangulation_3`.
<LI>`OutputIterator::value_type` is equivalent to <LI>`OutputIterator::value_type` is equivalent to
`Dt::Point_3`, i.e.\ a point type. `Dt::Point_3`, i.e.\ a point type.
<LI>`ITraits` is equivalent to the class `Voronoi_intersection_2_traits_3<K>`. <LI>`ITraits` is equivalent to the class `Voronoi_intersection_2_traits_3<K>`.
</OL> </OL>
\sa `CGAL::Voronoi_intersection_2_traits_3<K>` \sa `CGAL::Voronoi_intersection_2_traits_3<K>`
\sa PkgInterpolationSurfaceNeighborCoordinates3 \sa PkgInterpolationSurfaceNeighborCoordinates3
\cgalHeading{Implementation} \cgalHeading{Implementation}
These functions compute the regular triangulation of These functions compute the regular triangulation of
the sample points and the point `p` using a traits class the sample points and the point `p` using a traits class
equivalent to `Voronoi_intersection_2_traits_3<K>`. They determine equivalent to `Voronoi_intersection_2_traits_3<K>`. They determine
the neighbors of `p` in this triangulation. The functions which the neighbors of `p` in this triangulation. The functions which
certify the result need to compute, in addition, the Voronoi vertices certify the result need to compute, in addition, the Voronoi vertices
of the cell of `p` in this diagram. of the cell of `p` in this diagram.
*/ */
/// @{ /// @{
/*! /*!
The sample points \f$ \mathcal{P}\f$ are provided in the range The sample points \f$ \mathcal{P}\f$ are provided in the range
`[first, beyond)`. `[first, beyond)`.
`InputIterator::value_type` is the point type `Kernel::Point_3`. The `InputIterator::value_type` is the point type `Kernel::Point_3`. The
tangent plane is defined by the point `p` and the vector `normal`. The tangent plane is defined by the point `p` and the vector `normal`. The
@ -78,7 +78,7 @@ the user. `ITraits` must be equivalent to
template <class OutputIterator, class InputIterator, class template <class OutputIterator, class InputIterator, class
ITraits> OutputIterator ITraits> OutputIterator
surface_neighbors_3(InputIterator first, InputIterator beyond, surface_neighbors_3(InputIterator first, InputIterator beyond,
const typename ITraits::Point_2& p,OutputIterator out, const typename ITraits::Point_2& p,OutputIterator out,
const ITraits& traits); const ITraits& traits);
/*! /*!
@ -142,11 +142,11 @@ for the search of the conflict zone. It may be the result of the call
`dt.locate(p)`. This function instantiates the template parameter `dt.locate(p)`. This function instantiates the template parameter
`ITraits` to be `Voronoi_intersection_2_traits_3<Dt::Geom_traits>`. `ITraits` to be `Voronoi_intersection_2_traits_3<Dt::Geom_traits>`.
This function allows to filter some potential neighbors of the This function allows to filter some potential neighbors of the
query point `p` from \f$ \mathcal{P}\f$ via its three-dimensional query point `p` from \f$ \mathcal{P}\f$ via its three-dimensional
Delaunay triangulation. All surface neighbors of `p` are Delaunay triangulation. All surface neighbors of `p` are
necessarily neighbors in the Delaunay triangulation of \f$ \mathcal{P} necessarily neighbors in the Delaunay triangulation of \f$ \mathcal{P}
\cup \{p\}\f$. \cup \{p\}\f$.
*/ */
template < class Dt, class OutputIterator > template < class Dt, class OutputIterator >
OutputIterator OutputIterator
@ -161,7 +161,7 @@ the geometric traits class. Its type `ITraits` must be
equivalent to `Voronoi_intersection_2_traits_3<K>`. equivalent to `Voronoi_intersection_2_traits_3<K>`.
*/ */
template < class Dt, class OutputIterator, template < class Dt, class OutputIterator,
class ITraits> class ITraits>
OutputIterator surface_neighbors_3(const Dt& dt, OutputIterator surface_neighbors_3(const Dt& dt,
const typename ITraits::Point_2& p, OutputIterator out, const typename ITraits::Point_2& p, OutputIterator out,
const ITraits& traits, typename Dt::Cell_handle start = typename const ITraits& traits, typename Dt::Cell_handle start = typename

View File

@ -3,38 +3,38 @@
\ingroup PkgInterpolation2Concepts \ingroup PkgInterpolation2Concepts
\cgalConcept \cgalConcept
\ref PkgInterpolationSibsonGradientFitting are parameterized by a \ref PkgInterpolationSibsonGradientFitting are parameterized by a
traits class that defines the primitives used by the algorithm. The traits class that defines the primitives used by the algorithm. The
concept `GradientFittingTraits` defines this common set of requirements. concept `GradientFittingTraits` defines this common set of requirements.
\cgalHasModel `CGAL::Interpolation_gradient_fitting_traits_2<K>` \cgalHasModel `CGAL::Interpolation_gradient_fitting_traits_2<K>`
\sa `InterpolationTraits` \sa `InterpolationTraits`
\sa `CGAL::Interpolation_traits_2<K>` \sa `CGAL::Interpolation_traits_2<K>`
\sa \ref PkgInterpolationSibsonGradientFitting \sa \ref PkgInterpolationSibsonGradientFitting
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa `CGAL::farin_c1_interpolation()` \sa `CGAL::farin_c1_interpolation()`
\sa `CGAL::quadratic_interpolation()` \sa `CGAL::quadratic_interpolation()`
*/ */
class GradientFittingTraits { class GradientFittingTraits {
public: public:
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
The number type must follow the model The number type must follow the model
`FieldNumberType`. `FieldNumberType`.
*/ */
typedef unspecified_type FT; typedef unspecified_type FT;
/*! /*!
The point type on The point type on
which the function is defined and interpolated. which the function is defined and interpolated.
*/ */
typedef unspecified_type Point_d; typedef unspecified_type Point_d;
/*! /*!
The weighted point type. The weighted point type.
@ -42,23 +42,23 @@ The weighted point type.
typedef unspecified_type Weighted_point_d; typedef unspecified_type Weighted_point_d;
/*! /*!
The corresponding vector type. The corresponding vector type.
*/ */
typedef unspecified_type Vector_d; typedef unspecified_type Vector_d;
/*! /*!
defines a defines a
matrix type. matrix type.
Must provide the following member functions : Must provide the following member functions :
`Aff_transformation tr.inverse ()` which gives the inverse `Aff_transformation tr.inverse ()` which gives the inverse
transformation, and transformation, and
`Aff_transformation tr.transform( Vector v)` which returns the `Aff_transformation tr.transform( Vector v)` which returns the
multiplication of `tr` with `v`. multiplication of `tr` with `v`.
*/ */
typedef unspecified_type Aff_transformation_d; typedef unspecified_type Aff_transformation_d;
/*! /*!
A constructor object for `Point_d`. A constructor object for `Point_d`.
@ -71,108 +71,108 @@ Provides :
typedef unspecified_type Construct_point_d; typedef unspecified_type Construct_point_d;
/*! /*!
A constructor object for A constructor object for
`Vector_d`. `Vector_d`.
Provides : Provides :
`Vector_d operator() (Point_d a, Point_d b)` which produces the `Vector_d operator() (Point_d a, Point_d b)` which produces the
vector `b - a` and vector `b - a` and
`Vector_d operator() (Null_vector NULL_VECTOR)` which introduces `Vector_d operator() (Null_vector NULL_VECTOR)` which introduces
the null vector. the null vector.
*/ */
typedef unspecified_type Construct_vector_d; typedef unspecified_type Construct_vector_d;
/*! /*!
Constructor object for Constructor object for
`Vector_d`. `Vector_d`.
Provides : 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`. vector `v` scaled by a factor `scale`.
*/ */
typedef unspecified_type Construct_scaled_vector_d; typedef unspecified_type Construct_scaled_vector_d;
/*! /*!
Constructor object for Constructor object for
`Aff_transformation_d`. Provides : `Aff_transformation_d`. Provides :
`Aff_transformation_d operator()()` which introduces an affine `Aff_transformation_d operator()()` which introduces an affine
transformation whose matrix has only zero entries. transformation whose matrix has only zero entries.
*/ */
typedef unspecified_type Construct_null_matrix_d; typedef unspecified_type Construct_null_matrix_d;
/*! /*!
Constructor object for Constructor object for
`Aff_transformation_d`. Provides : `Aff_transformation_d`. Provides :
`Aff_transformation_d operator()(FT scale)` which introduces a `Aff_transformation_d operator()(FT scale)` which introduces a
scaling by a scale factor `scale`. scaling by a scale factor `scale`.
*/ */
typedef unspecified_type Construct_scaling_matrix_d; typedef unspecified_type Construct_scaling_matrix_d;
/*! /*!
Constructor object for Constructor object for
`Aff_transformation_d`. Provides : `Aff_transformation_d`. Provides :
`Aff_transformation_d operator()(Aff_transformation_d tr1, Aff_transformation_d tr2)` which returns the sum of the two matrices `Aff_transformation_d operator()(Aff_transformation_d tr1, Aff_transformation_d tr2)` which returns the sum of the two matrices
representing `tr1` and `tr2`. representing `tr1` and `tr2`.
*/ */
typedef unspecified_type Construct_sum_matrix_d; typedef unspecified_type Construct_sum_matrix_d;
/*! /*!
Constructor object for Constructor object for
`Aff_transformation_d`. Provides : `Aff_transformation_d`. Provides :
`Aff_transformation_d operator()(Vector v)` which returns the `Aff_transformation_d operator()(Vector v)` which returns the
outer product, i.e.\ the quadratic matrix `v`\f$ ^t\f$`v`. outer product, i.e.\ the quadratic matrix `v`\f$ ^t\f$`v`.
*/ */
typedef unspecified_type Construct_outer_product_d; typedef unspecified_type Construct_outer_product_d;
/// @} /// @}
/// \name Creation /// \name Creation
/// @{ /// @{
/*! /*!
default constructor. default constructor.
*/ */
GradientFittingTraits(); GradientFittingTraits();
/// @} /// @}
/// \name Operations /// \name Operations
/// The following functions that create instances of the above /// The following functions that create instances of the above
/// constructor object types must exist. /// constructor object types must exist.
/// @{ /// @{
/*! /*!
*/ */
Construct_vector_d construct_vector_d_object(); Construct_vector_d construct_vector_d_object();
/*! /*!
*/ */
Construct_scaled_vector_d Construct_scaled_vector_d
construct_scaled_vector_d_object(); construct_scaled_vector_d_object();
/*! /*!
*/ */
Construct_null_matrix_d construct_null_matrix_d_object(); Construct_null_matrix_d construct_null_matrix_d_object();
/*! /*!
*/ */
Construct_sum_matrix_d Construct_sum_matrix_d
construct_sum_matrix_d_object(); construct_sum_matrix_d_object();
/*! /*!
*/ */
Construct_outer_product_d Construct_outer_product_d
construct_outer_product_d_object(); construct_outer_product_d_object();
/// @} /// @}

View File

@ -3,14 +3,14 @@
\ingroup PkgInterpolation2Concepts \ingroup PkgInterpolation2Concepts
\cgalConcept \cgalConcept
Most interpolation functions are parameterized by a traits class that Most interpolation functions are parameterized by a traits class that
defines the primitives used in the interpolation algorithms. The concept defines the primitives used in the interpolation algorithms. The concept
`InterpolationTraits` defines this common set of requirements. `InterpolationTraits` defines this common set of requirements.
\cgalHasModel `CGAL::Interpolation_traits_2<K>` \cgalHasModel `CGAL::Interpolation_traits_2<K>`
\cgalHasModel `CGAL::Interpolation_gradient_fitting_traits_2<K>` \cgalHasModel `CGAL::Interpolation_gradient_fitting_traits_2<K>`
\sa `GradientFittingTraits` \sa `GradientFittingTraits`
\sa `CGAL::sibson_c1_interpolation()` \sa `CGAL::sibson_c1_interpolation()`
\sa \ref PkgInterpolationSibsonGradientFitting \sa \ref PkgInterpolationSibsonGradientFitting
\sa `CGAL::farin_c1_interpolation()` \sa `CGAL::farin_c1_interpolation()`
@ -20,84 +20,84 @@ defines the primitives used in the interpolation algorithms. The concept
class InterpolationTraits { class InterpolationTraits {
public: public:
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
The number type must follow the model The number type must follow the model
`FieldNumberType`. `FieldNumberType`.
*/ */
typedef unspecified_type FT; typedef unspecified_type FT;
/*! /*!
The point type on The point type on
which the function is defined and interpolated. which the function is defined and interpolated.
*/ */
typedef unspecified_type Point_d; typedef unspecified_type Point_d;
/*! /*!
The corresponding vector type. The corresponding vector type.
*/ */
typedef unspecified_type Vector_d; typedef unspecified_type Vector_d;
/*! /*!
A constructor object for A constructor object for
`Vector_d`. `Vector_d`.
Provides : Provides :
`Vector_d operator() (Point_d a, Point_d b)` which produces the `Vector_d operator() (Point_d a, Point_d b)` which produces the
vector `b - a` and vector `b - a` and
`Vector_d operator() (Null_vector NULL_VECTOR)` which introduces `Vector_d operator() (Null_vector NULL_VECTOR)` which introduces
the null vector. the null vector.
*/ */
typedef unspecified_type Construct_vector_d; typedef unspecified_type Construct_vector_d;
/*! /*!
Constructor object for Constructor object for
`Vector_d`. `Vector_d`.
Provides : 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`. vector `v` scaled by a factor `scale`.
*/ */
typedef unspecified_type Construct_scaled_vector_d; typedef unspecified_type Construct_scaled_vector_d;
/*! /*!
Constructor Constructor
object for `FT`. Provides the operator: object for `FT`. Provides the operator:
`FT operator() (Point_d a, Point_d b)` returning the squared `FT operator() (Point_d a, Point_d b)` returning the squared
distance between `a` and `b`. distance between `a` and `b`.
*/ */
typedef unspecified_type Compute_squared_distance_d; typedef unspecified_type Compute_squared_distance_d;
/*! /*!
default constructor. default constructor.
*/ */
InterpolationTraits(); InterpolationTraits();
/// @} /// @}
/// \name Construction objects /// \name Construction objects
/// The following functions that create instances of the above /// The following functions that create instances of the above
/// constructor object types must exist. /// constructor object types must exist.
/// @{ /// @{
/*! /*!
*/ */
Construct_vector_d construct_vector_d_object(); Construct_vector_d construct_vector_d_object();
/*! /*!
*/ */
Construct_scaled_vector_d construct_scaled_vector_d_object(); Construct_scaled_vector_d construct_scaled_vector_d_object();
/*! /*!
*/ */
Compute_squared_distance_d compute_squared_distance_d_object(); Compute_squared_distance_d compute_squared_distance_d_object();
/// @} /// @}