CGAL 5.4 - 2D and Surface Function Interpolation
|
The first function implements Sibson's gradient estimation method based on natural neighbor coordinates [9].
Further functions are provided to fit the gradient for all data points that lie inside the convex hull of the data points. One function exists for each type of neighbor coordinates (natural and regular).
Output Format
The output format of the functions CGAL::sibson_gradient_fitting_nn_2()
and CGAL::sibson_gradient_fitting_rn_2()
can be customized using the functor parameter of type OutputFunctor
: this functor must have argument type std::pair<Tr::Vertex_handle, Traits::Vector_d>
(where Tr
and Traits
are the types of the triangulation and traits passed in arguments) but its result type is set as desired by the user.
See also natural neighbor coordinates functions, which use the same mechanism to allow flexible output.
CGAL::Interpolation_gradient_fitting_traits_2<K>
CGAL::natural_neighbor_coordinates_2()
CGAL::regular_neighbor_coordinates_2()
3D Surface Neighbor Coordinates Functions
Interpolation Functions
Functions | |
template<class CoordinateInputIterator , class ValueFunctor , class Traits , class Point > | |
Traits::Vector_d | CGAL::sibson_gradient_fitting (CoordinateInputIterator first, CoordinateInputIterator beyond, const typename std::iterator_traits< CoordinateInputIterator >::value_type::second_type &norm, const Point &p, ValueFunctor value_function, const typename ValueFunctor::result_type::first_type fn, const Traits &traits) |
Estimates the gradient of a function at a query point. More... | |
template<class Dt , class GradientOutputIterator , class OutputFunctor , class ValueFunctor , class Traits > | |
GradientOutputIterator | CGAL::sibson_gradient_fitting_nn_2 (const Dt &dt, GradientOutputIterator out, OutputFunctor fct, ValueFunctor value_function, const Traits &traits) |
Estimates the function gradients at all vertices of the Delaunay triangulation dt that lie inside the convex hull, using the coordinates computed by the function CGAL::natural_neighbor_coordinates_2(). More... | |
template<class Rt , class GradientOutputIterator , class OutputFunctor , class ValueFunctor , class Traits > | |
GradientOutputIterator | CGAL::sibson_gradient_fitting_rn_2 (const Rt &rt, GradientOutputIterator out, OutputFunctor fct, ValueFunctor value_function, const Traits &traits) |
Estimates the function gradients at all vertices of rt that lie inside the convex hull using the coordinates computed by the functions CGAL::regular_neighbor_coordinates_2(). More... | |
Traits::Vector_d CGAL::sibson_gradient_fitting | ( | CoordinateInputIterator | first, |
CoordinateInputIterator | beyond, | ||
const typename std::iterator_traits< CoordinateInputIterator >::value_type::second_type & | norm, | ||
const Point & | p, | ||
ValueFunctor | value_function, | ||
const typename ValueFunctor::result_type::first_type | fn, | ||
const Traits & | traits | ||
) |
#include <CGAL/sibson_gradient_fitting.h>
Estimates the gradient of a function at a query point.
CoordinateInputIterator | must be a model of ForwardIterator and must have as value type a pair associating an entity to a (non-normalized) barycentric coordinate. More precisely, std::iterator_traits<CoordinateInputIterator>::value_type::first_type can be of the following types:
std::iterator_traits<CoordinateInputIterator>::value_type::second_type must be equivalent to Traits::FT . |
ValueFunctor | must be a functor where ValueFunctor::argument_type must be equivalent to std::iterator_traits<CoordinateInputIterator>::value_type::first_type and ValueFunctor::result_type is a pair of the function value type and a Boolean. The function value type must provide a multiplication and addition operation with the type Traits::FT as well as a constructor with argument 0 . |
Traits | must be a model of the concept GradientFittingTraits . |
Point | must be equivalent to Traits::Point_d or Traits::Weighted_point_d . |
An example of compatible types for CoordinateInputIterator
and ValueFunctor
is a forward iterator with value type std::pair<Vertex_handle, Traits::FT>
and a functor with argument type Vertex_handle
.
first,beyond | is the iterator range of the neighbor coordinates for the query point p . |
norm | is the normalization factor. |
p | is the query point |
value_function | is a functor that allows to access values of the interpolated function. |
fn | is the value of the function at p . |
traits | is an instance of the gradient fitting traits class. |
p
. GradientOutputIterator CGAL::sibson_gradient_fitting_nn_2 | ( | const Dt & | dt, |
GradientOutputIterator | out, | ||
OutputFunctor | fct, | ||
ValueFunctor | value_function, | ||
const Traits & | traits | ||
) |
#include <CGAL/sibson_gradient_fitting.h>
Estimates the function gradients at all vertices of the Delaunay triangulation dt
that lie inside the convex hull, using the coordinates computed by the function CGAL::natural_neighbor_coordinates_2().
Dt | must be of type Delaunay_triangulation_2<Dt_Traits, Tds> . Dt_Traits must be a model of the concepts DelaunayTriangulationTraits_2 and PolygonTraits_2 . |
GradientOutputIterator | must be a model of OutputIterator with value type OutputFunctor::result_type . |
OutputFunctor | must be a functor with argument type std::pair<Dt::Vertex_handle, Traits::Vector_d> . Note that the result type of the functor is not specified and is chosen by users to fit their needs. |
ValueFunctor | must be a functor where:
|
Traits | must be a model of GradientFittingTraits . |
dt | is the Delaunay triangulation. |
out | is an object of type GradientOutputIterator . |
fct | is an object of type OutputFunctor . |
value_function | is a functor of type ValueFunctor that gives access to the values of the function at points of the triangulation. |
traits | is an instance of the gradient fitting traits class. |
OutputFunctor::result_type
. The sequence is written starting at out
. The function returns an iterator that is placed past-the-end of the resulting sequence. GradientOutputIterator CGAL::sibson_gradient_fitting_rn_2 | ( | const Rt & | rt, |
GradientOutputIterator | out, | ||
OutputFunctor | fct, | ||
ValueFunctor | value_function, | ||
const Traits & | traits | ||
) |
#include <CGAL/sibson_gradient_fitting.h>
Estimates the function gradients at all vertices of rt
that lie inside the convex hull using the coordinates computed by the functions CGAL::regular_neighbor_coordinates_2().
Rt | must be of type Regular_triangulation_2<Rt_Traits, Tds> . Rt_Traits must be a model of the concepts RegularTriangulationTraits_2 and PolygonTraits_2 . |
GradientOutputIterator | must be a model of OutputIterator with value type OutputFunctor::result_type . |
OutputFunctor | must be a functor with argument type std::pair<Rt::Vertex_handle, Traits::Vector_d> . Note that the result type of the functor is not specified and is chosen by users to fit their needs. |
ValueFunctor | must be a functor where:
|
Traits | must be a model of GradientFittingTraits . |
rt | is the regular triangulation. |
out | is an object of type GradientOutputIterator . |
fct | is an object of type OutputFunctor . |
value_function | is a functor of type ValueFunctor that gives access to the values of the function at points of the triangulation. |
traits | is an instance of the gradient fitting traits class. |
OutputFunctor::result_type
. The sequence is written starting at out
. The function returns an iterator that is placed past-the-end of the resulting sequence.