\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12 - Planar Parameterization of Triangulated Surface Meshes

The central functions, main entry point of the package.

Functions

template<class TriangleMesh , class Parameterizer , class HD , class VertexUVmap >
Error_code CGAL::Surface_mesh_parameterization::parameterize (TriangleMesh &mesh, Parameterizer parameterizer, HD bhd, VertexUVmap uvm)
 Compute a one-to-one mapping from a 3D triangle surface mesh to a simple 2D domain. More...
 
template<class TriangleMesh , class HD , class VertexUVmap >
Error_code CGAL::Surface_mesh_parameterization::parameterize (TriangleMesh &mesh, HD bhd, VertexUVmap uvm)
 Compute a one-to-one mapping from a 3D triangle surface mesh to a 2D circle, using Floater Mean Value Coordinates algorithm. More...
 

Function Documentation

◆ parameterize() [1/2]

template<class TriangleMesh , class Parameterizer , class HD , class VertexUVmap >
Error_code CGAL::Surface_mesh_parameterization::parameterize ( TriangleMesh &  mesh,
Parameterizer  parameterizer,
HD  bhd,
VertexUVmap  uvm 
)

#include <CGAL/Surface_mesh_parameterization/parameterize.h>

Compute a one-to-one mapping from a 3D triangle surface mesh to a simple 2D domain.

The mapping is piecewise linear on the triangle mesh. The result is a pair (u,v) of parameter coordinates for each vertex of the input mesh.

A one-to-one mapping may be guaranteed or not, depending on the chosen Parameterizer algorithm.

Template Parameters
TriangleMeshmust be a model of FaceGraph.
Parameterizermust be a model of Parameterizer_3.
HDmust be the halfedge_descriptor type corresponding to the graph traits of TriangleMesh.
VertexUVmapmust be a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and Point_2 (type deduced from TriangleMesh using Kernel_traits) as value type.
Parameters
mesha triangulated surface.
parameterizera parameterizer.
bhda halfedge descriptor on the boundary of mesh.
uvman instanciation of the class VertexUVmap.
Precondition
mesh must be a triangular mesh.
The mesh border must be mapped onto a convex polygon (for fixed border parameterizations).
The vertices must be indexed (vimap must be initialized).
Examples:
Surface_mesh_parameterization/discrete_authalic.cpp, Surface_mesh_parameterization/lscm.cpp, Surface_mesh_parameterization/seam_Polyhedron_3.cpp, Surface_mesh_parameterization/simple_parameterization.cpp, and Surface_mesh_parameterization/square_border_parameterizer.cpp.

◆ parameterize() [2/2]

template<class TriangleMesh , class HD , class VertexUVmap >
Error_code CGAL::Surface_mesh_parameterization::parameterize ( TriangleMesh &  mesh,
HD  bhd,
VertexUVmap  uvm 
)

#include <CGAL/Surface_mesh_parameterization/parameterize.h>

Compute a one-to-one mapping from a 3D triangle surface mesh to a 2D circle, using Floater Mean Value Coordinates algorithm.

A one-to-one mapping is guaranteed.

The mapping is piecewise linear on the input mesh triangles. The result is a (u,v) pair of parameter coordinates for each vertex of the input mesh.

Template Parameters
TriangleMeshmust be a model of FaceGraph.
HDmust be the halfedge_descriptor type corresponding to the graph traits of TriangleMesh.
VertexUVmapmust be a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and Point_2 (type deduced from TriangleMesh using Kernel_traits) as value type.
Parameters
mesha triangulated surface.
bhda halfedge descriptor on the boundary of mesh.
uvman instanciation of the class VertexUVmap.
Precondition
mesh must be a triangular mesh.
The vertices must be indexed (vimap must be initialized).