CGAL::Discrete_conformal_map_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>

Definition

The class Discrete_conformal_map_parameterizer_3 implements the Discrete Conformal Map (DCM) parameterization [EDD+95]. This algorithm is also called Discrete Conformal Parameterization (DCP), Discrete Harmonic Map or Fixed Conformal Parameterization by other authors.

This is a conformal parameterization, i.e. it attempts to preserve angles.

One-to-one mapping is guaranteed if surface's border is mapped onto a convex polygon.

This class is a Strategy [GHJV95] called by the main parameterization algorithm Fixed_border_parameterizer_3::parameterize(). Discrete_conformal_map_parameterizer_3:

#include <CGAL/Discrete_conformal_map_parameterizer_3.h>

Is Model for the Concepts

Model of the ParameterizerTraits_3 concept.

Design Pattern

Discrete_conformal_map_parameterizer_3<ParameterizationMesh_3, ...> class is a Strategy [GHJV95]: it implements a strategy of surface parameterization for models of ParameterizationMesh_3.

Parameters

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 Discrete_conformal_map_parameterizer_3;

Parameters:
ParameterizationMesh_3
3D surface mesh.
BorderParameterizer_3
Strategy to parameterize the surface border.
SparseLinearAlgebraTraits_d
Traits class to solve a sparse linear system. Note: the system is NOT symmetric because Fixed_border_parameterizer_3 does not remove (yet) border vertices from the system.

Types

Creation

Discrete_conformal_map_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d> param ( Border_param border_param = Border_param(),
Sparse_LA sparse_la = Sparse_LA());
Constructor.

Parameters:
border_param
Object that maps the surface's border to 2D space.
sparse_la
Traits object to access a sparse linear system.

Operations

virtual NT
param.compute_w_ij ( Adaptor mesh,
Vertex_const_handle main_vertex_v_i,
Vertex_around_vertex_const_circulator neighbor_vertex_v_j)
Compute w_ij = (i,j) coefficient of matrix A for j neighbor vertex of i.

See Also

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::LSCM_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>
CGAL::Mean_value_coordinates_parameterizer_3<ParameterizationMesh_3, BorderParameterizer_3, SparseLinearAlgebraTraits_d>