The class Fixed_border_parameterizer_3 is the base class of fixed border parameterization methods (Tutte, Floater, ...).
One-to-one mapping is guaranteed if surface's border is mapped onto a convex polygon.
This class is a pure virtual class, thus cannot be instantiated. Anyway, it implements most of the parameterization algorithm parameterize(). Subclasses are Strategies [GHJV95] that modify the behavior of this algorithm:
#include <CGAL/Fixed_border_parameterizer_3.h>
Model of the ParameterizerTraits_3 concept (although you cannot instantiate this class).
Fixed_border_parameterizer_3<ParameterizationMesh_3, ...> class is a Strategy [GHJV95]: it implements (part of) 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 Fixed_border_parameterizer_3;
| |
Export BorderParameterizer_3 template parameter.
| |
| |
Export SparseLinearAlgebraTraits_d template parameter.
|
| |||
Constructor.
|
| ||||
| ||||
Compute a one-to-one mapping from a triangular 3D surface 'mesh' to a piece of the 2D space. The mapping is linear by pieces (linear in each triangle). The result is the (u,v) pair image of each vertex of the 3D surface.
Preconditions:
| ||||
| ||||
| ||||
Check parameterize() preconditions:
| ||||
|
| |||
Initialize A, Bu and Bv after border parameterization. Fill the border vertices' lines in both linear systems: u = constant and v = constant.
Preconditions:
| ||||
|
| |||
Compute w_ij = (i, j) coefficient of matrix A for j neighbor vertex of i. Implementation note: Subclasses must at least implement compute_w_ij(). | ||||
| ||||
| ||||
Compute the line i of matrix A for i inner vertex:
| ||||
|
| |||
Copy Xu and Xv coordinates into the (u,v) pair of each surface vertex. | ||||
| ||||
| ||||
Check parameterize() postconditions:
| ||||
|
| |||
Check if 3D - 2D mapping is one-to-one. The default implementation checks each normal. | ||||
|
| Get the object that maps the surface's border onto a 2D space. | ||
|
| |||
Get the sparse linear algebra (traits object to access the linear system). |
CGAL::Parameterizer_traits_3<ParameterizationMesh_3>
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>
CGAL::Mean_value_coordinates_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>