\( \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.1 - Planar Parameterization of Triangulated Surface Meshes
CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3< TriangleMesh_ > Class Template Reference

#include <CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h>

Definition

The class Two_vertices_parameterizer_3 parameterizes two extreme vertices of a 3D surface.

This kind of border parameterization is used by free border parameterizations.

Implementation note: To simplify the implementation, the border parameterizer knows only the TriangleMesh class and does not know the parameterization algorithm requirements or the kind of sparse linear system used.

Is Model Of:
Parameterizer_3
Template Parameters
TriangleMesh_must be a model of FaceGraph.

Public Types

typedef TriangleMesh_ TriangleMesh
 
typedef boost::graph_traits< TriangleMesh >::vertex_descriptor vertex_descriptor
 
typedef boost::graph_traits< TriangleMesh >::halfedge_descriptor halfedge_descriptor
 

Public Member Functions

 Two_vertices_parameterizer_3 ()
 Constructor.
 
 Two_vertices_parameterizer_3 (vertex_descriptor v1, vertex_descriptor v2)
 Constructor where fixed vertices are provided.
 
template<typename VertexContainer , typename VertexUVmap , typename VertexIndexMap , typename VertexParameterizedMap >
Error_code parameterize (const TriangleMesh &mesh, const VertexContainer &vertices, VertexUVmap uvmap, VertexIndexMap, VertexParameterizedMap vpmap)
 
template<typename VertexUVmap , typename VertexIndexMap , typename VertexParameterizedMap >
Error_code parameterize (const TriangleMesh &mesh, halfedge_descriptor bhd, VertexUVmap uvmap, VertexIndexMap vimap, VertexParameterizedMap vpmap)
 Map two extreme vertices of the 3D mesh and mark them as parameterized. More...
 
bool is_border_convex () const
 Indicate if the border's shape is convex. More...
 

Member Function Documentation

◆ is_border_convex()

template<typename TriangleMesh_ >
bool CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3< TriangleMesh_ >::is_border_convex ( ) const

Indicate if the border's shape is convex.

Meaningless for free border parameterization algorithms.

◆ parameterize()

template<typename TriangleMesh_ >
template<typename VertexUVmap , typename VertexIndexMap , typename VertexParameterizedMap >
Error_code CGAL::Surface_mesh_parameterization::Two_vertices_parameterizer_3< TriangleMesh_ >::parameterize ( const TriangleMesh &  mesh,
halfedge_descriptor  bhd,
VertexUVmap  uvmap,
VertexIndexMap  vimap,
VertexParameterizedMap  vpmap 
)

Map two extreme vertices of the 3D mesh and mark them as parameterized.

Template Parameters
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.
VertexIndexMapmust be a model of ReadablePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and a unique integer as value type.
VertexParameterizedMapmust be a model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and a Boolean as value type.
Parameters
mesha triangulated surface.
bhda halfedge descriptor on the boundary of mesh.
uvmapan instanciation of the class VertexUVmap.
vimapan instanciation of the class VertexIndexMap.
vpmapan instanciation of the class VertexParameterizedMap.
Precondition
mesh must be a triangular mesh.
The vertices must be indexed (vimap must be initialized).