The class Mean_value_coordinates_parameterizer_3 implements Floater Mean Value Coordinates parameterization [Flo03a]. This method is sometimes called simply Floater parameterization.
This is a conformal parameterization, i.e. it attempts to preserve angles.
One-to-one mapping is guaranteed if the surface's border is mapped to a convex polygon.
This class is a Strategy [GHJV95] called by the main parameterization algorithm Fixed_border_parameterizer_3::parameterize(). Mean_value_coordinates_parameterizer_3:
#include <CGAL/Mean_value_coordinates_parameterizer_3.h>
Model of the ParameterizerTraits_3 concept.
Mean_value_coordinates_parameterizer_3<ParameterizationMesh_3, ...>class is a Strategy [GHJV95]: it implements a strategy of surface parameterization for models of ParameterizationMesh_3.
The full template declaration is:
template
class ParameterizationMesh_3,
class BorderParameterizer_3 = Circular_border_arc_length_parameterizer_3<ParameterizationMesh_3>,
class SparseLinearAlgebraTraits_d = OpenNL::DefaultLinearSolverTraits<typename ParameterizationMesh_3::NT>
class Mean_value_coordinates_parameterizer_3;
| |||
Constructor.
|
|
| |||
Compute w_ij = (i, j) coefficient of matrix A for j neighbor vertex of i. | ||||
|
| |||
Check if 3D - 2D mapping is one-to-one. Theorem: one-to-one mapping is guaranteed if all w_ij coefficients are 0 (for j vertex neighbor of i) and if the surface border is mapped onto a 2D convex polygon. Floater formula above implies that w_ij 0 (for j vertex neighbor of i), thus mapping is guaranteed if the surface border is mapped onto a 2D convex polygon. |
CGAL::Parameterizer_traits_3<ParameterizationMesh_3>
CGAL::Fixed_border_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Barycentric_mapping_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Discrete_authalic_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Discrete_conformal_map_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::LSCM_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
See Simple_parameterization.cpp example.