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:

#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
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Point_2
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Point_3
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vector_2
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vector_3
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Facet
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Facet_handle
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Facet_const_handle
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Facet_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Facet_const_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_handle
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_const_handle
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_const_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Border_vertex_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Border_vertex_const_iterator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_facet_circulator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_facet_const_circulator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_vertex_circulator
[protected]

Parameterizer_traits_3<ParameterizationMesh_3>::Vertex_around_vertex_const_circulator
[protected]

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.

Enumeration 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)
[pure virtual]
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)
[static]
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>