% +------------------------------------------------------------------------+
% | Reference manual page: Interpolation/intro.tex
% +------------------------------------------------------------------------+
% | August 2003  Julia Floetotto
% | Package:  Interpolation
% | 
% |
% +------------------------------------------------------------------------+

%\clearpage 
%\section{Reference Pages for Interpolation class}
\chapter{Interpolation}
\label{chap:Interpolation}
\ccChapterAuthor{Julia Fl{\"o}totto}

Scattered data interpolation solves the following problem: given
measures of a function on a set of discrete data points, the task is
to interpolate this function on an arbitrary query point.

If the function is a linear function and given barycentric coordinates
that allow to express the query point as the convex combination of
some data points, the function can be exactly interpolated. If the
function gradients are known, we can exactly interpolate quadratic
functions given barycentric coordinates. Any further properties of
these interpolation functions depend on the properties of the
barycentric coordinates. They are provided in this package under the
name \ccc{linear_interpolation} and
\ccc{quadratic_interpolation}.\medskip

\subsubsection{Natural neighbor interpolation} Natural neighbor
coordinates are defined by Sibson in 1980 and are based on the Voronoi
diagram of the data points. Interpolation methods based on natural
neighbor coordinates are particularly interesting because they adapt
easily to non-uniform and highly anisotropic data.  This package
contains Sibson's $C^1$ continuous interpolation method which
interpolates exactly spherical quadrics (of the form $\Phi(\mathbf{x})
=a + \mathbf{b}^t \mathbf{x} +\gamma\ \mathbf{x}^t\mathbf{x}$) and
Farin's $C^1$ continuous interpolation method based on
Bernstein-B\'ezier techniques and interpolating exactly quadratic
functions -- assuming that the function gradient is known. In
addition, Sibson defines a method to approximate the function
gradients for data points that are in the interior of the convex hull.
This
method is exact for spherical quadrics.% and provided in this package
%under the name \ccc{sibson_gradient_fitting}.

This \cgal\ package implements Sibson's and Farin's interpolation
functions as well as Sibson's function gradient fitting method.
Furthermore, it provides functions to compute the natural neighbor
coordinates with respect to a two-dimensional Voronoi diagram (i. e., 
from the Delaunay triangulation of the data points) and to a
two-dimensional power diagram for weighted points (i. e., from their
regular triangulation).  Natural neighbor coordinates on closed and
well-sampled surfaces can also be computed if the normal to the
surface at the query point is known. The latter coordinates are only
approximately barycentric, see \cite{bf-lcss-02}.

For a more thorough introduction see the user manual.

\ccHeading{Concepts}
\ccRefConceptPage{InterpolationTraits}\\
\ccRefConceptPage{GradientFittingTraits}\\

\ccHeading{Interpolation Functions}

\ccRefIdfierPage{CGAL::linear_interpolation} \\
\ccRefIdfierPage{CGAL::sibson_c1_interpolation} \\
\ccRefIdfierPage{CGAL::farin_c1_interpolation} \\
\ccRefIdfierPage{CGAL::quadratic_interpolation} \\
\ccRefIdfierPage{CGAL::sibson_gradient_fitting} \\

\ccRefIdfierPage{CGAL::Interpolation_traits_2<K>} \\
\ccRefIdfierPage{CGAL::Interpolation_gradient_fitting_traits_2<K>} \\

\ccHeading{Natural neighbor coordinate computation}
\ccRefIdfierPage{CGAL::natural_neighbor_coordinates_2} \\
\ccRefIdfierPage{CGAL::regular_neighbor_coordinates_2} \\

\ccHeading{Surface neighbor and surface neighbor coordinate computation}
\ccRefIdfierPage{CGAL::Voronoi_intersection_2_traits_3<K>}\\
\ccRefIdfierPage{CGAL::surface_neighbor_coordinates_3} \\
\ccRefIdfierPage{CGAL::surface_neighbors_3} 
\clearpage

\lcHtml{\ccHeading{Alphabetical Listing of Reference Pages}}
