CGAL::Parameterizer_traits_3<ParameterizationMesh_3>

Definition

The class Parameterizer_traits_3 is the base class of all parameterization methods. This class is a pure virtual class, thus cannot be instantiated.

This class doesn't do much. Its main goal is to ensure that subclasses will be proper models of the ParameterizerTraits_3 concept: Parameterizer_traits_3 defines the Error_code list of errors detected by this package. Parameterizer_traits_3 declares a pure virtual method parameterize().

#include <CGAL/Parameterizer_traits_3.h>

Is Model for the Concepts

Model of the ParameterizerTraits_3 concept (although you cannot instantiate this class).

Design Pattern

ParameterizerTraits_3 models are Strategies [GHJV95]: they implement a strategy of surface parameterization for models of ParameterizationMesh_3.

Parameters

The full template declaration is:

template<
class ParameterizationMesh_3>
class Parameterizer_traits_3;

Types

Parameterizer_traits_3<ParameterizationMesh_3>::Adaptor
Export ParameterizationMesh_3 template parameter.

Parameterizer_traits_3<ParameterizationMesh_3>::NT
Parameterizer_traits_3<ParameterizationMesh_3>::Point_2
Parameterizer_traits_3<ParameterizationMesh_3>::Point_3
Parameterizer_traits_3<ParameterizationMesh_3>::Vector_2
Parameterizer_traits_3<ParameterizationMesh_3>::Vector_3
Parameterizer_traits_3<ParameterizationMesh_3>::Facet
Parameterizer_traits_3<ParameterizationMesh_3>::Facet_handle
Parameterizer_traits_3<ParameterizationMesh_3>::Facet_const_handle
Parameterizer_traits_3<ParameterizationMesh_3>::Facet_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Facet_const_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_handle
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_const_handle
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_const_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Border_vertex_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Border_vertex_const_iterator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_facet_circulator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_facet_const_circulator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_vertex_circulator
Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_vertex_const_circulator

Constants

enum Error_code { OK,
ERROR_EMPTY_MESH,
ERROR_NON_TRIANGULAR_MESH,
ERROR_NO_TOPOLOGICAL_DISC,
ERROR_BORDER_TOO_SHORT,
ERROR_NON_CONVEX_BORDER,
ERROR_CANNOT_SOLVE_LINEAR_SYSTEM,
ERROR_NO_1_TO_1_MAPPING,
ERROR_OUT_OF_MEMORY,
ERROR_WRONG_PARAMETER};
List of errors detected by this package.
Values: 
OK: Success. ERROR_EMPTY_MESH: Input mesh is empty. ERROR_NON_TRIANGULAR_MESH: Input mesh is not triangular. ERROR_NO_TOPOLOGICAL_DISC: Input mesh is not a topological disc. ERROR_BORDER_TOO_SHORT: This border parameterization requires a longer border. ERROR_NON_CONVEX_BORDER: This parameterization method requires a convex border. ERROR_CANNOT_SOLVE_LINEAR_SYSTEM: Cannot solve linear system. ERROR_NO_1_TO_1_MAPPING: Parameterization failed: no one-to-one mapping. ERROR_OUT_OF_MEMORY: Not enough memory. ERROR_WRONG_PARAMETER: A method received an unexpected parameter.

Creation

Operations

virtual Error_code param.parameterize ( Adaptor& mesh)
Compute a one-to-one mapping from a 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: 
mesh must be a surface with one connected component. mesh must be a triangular mesh.
static const char* param.get_error_message ( int error_code)
Get message (in English) corresponding to an error code
Parameters: 
error_code: The code returned by parameterize().
Returns:  The string describing the error code

See Also

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