\( \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.7 - Planar Parameterization of Triangulated Surface Meshes
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
ParameterizationPatchableMesh_3 Concept Reference

Definition

ParameterizationPatchableMesh_3 inherits from concept ParameterizationMesh_3, thus is a concept of a 3D surface mesh.

ParameterizationPatchableMesh_3 adds the ability to support patches and virtual seams. Patches are a subset of a 3D mesh. Virtual seams are the ability to behave exactly as if the surface was cut following a certain path.

This mainly means that: vertices can be tagged as inside or outside the patch to parameterize. the fields specific to parameterizations (index, u, v, is_parameterized) can be set per corner (aka half-edge).

The main purpose of this feature is to allow the Surface_mesh_parameterization package to parameterize any 3D surface by decomposing it as a list of topological disks.

Design Pattern

ParameterizationPatchableMesh_3 is an Adaptor [6] : it changes the interface of a 3D mesh to match the interface expected by class Parameterization_mesh_patch_3.

Refines:
ParameterizationMesh_3

Creation

Construction and destruction are undefined.

Has Models:
Adaptator for Polyhedron_3 is provided: CGAL::Parameterization_polyhedron_adaptor_3<Polyhedron_3_>
See Also
ParameterizationMesh_3

Operations

int get_vertex_seaming (Vertex_const_handle vertex) const
 Get vertex seaming flag. More...
 
void set_vertex_seaming (Vertex_handle vertex, int seaming)
 Set vertex seaming flag. More...
 
int get_halfedge_seaming (Vertex_const_handle source, Vertex_const_handle target) const
 Get oriented edge's seaming flag, i.e. position of the oriented edge w.r.t. to the UNIQUE main border.
 
void set_halfedge_seaming (Vertex_handle source, Vertex_handle target, int seaming)
 Set oriented edge's seaming flag, i.e. position of the oriented edge w.r.t. to the UNIQUE main border.
 
Point_2 get_corners_uv (Vertex_const_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex) const
 Get the 2D position (= (u, v) pair) of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
void set_corners_uv (Vertex_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex, const Point_2 &uv)
 Set the 2D position (= (u, v) pair) of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
bool are_corners_parameterized (Vertex_const_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex) const
 Get is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
void set_corners_parameterized (Vertex_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex, bool parameterized)
 Set is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
int get_corners_index (Vertex_const_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex) const
 Get index of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
void set_corners_index (Vertex_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex, int index)
 Set index of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
int get_corners_tag (Vertex_const_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex) const
 Get all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 
void set_corners_tag (Vertex_handle vertex, Vertex_const_handle prev_vertex, Vertex_const_handle next_vertex, int tag)
 Set all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line. More...
 

Member Function Documentation

bool ParameterizationPatchableMesh_3::are_corners_parameterized ( Vertex_const_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex 
) const

Get is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

int ParameterizationPatchableMesh_3::get_corners_index ( Vertex_const_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex 
) const

Get index of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

int ParameterizationPatchableMesh_3::get_corners_tag ( Vertex_const_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex 
) const

Get all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

Point_2 ParameterizationPatchableMesh_3::get_corners_uv ( Vertex_const_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex 
) const

Get the 2D position (= (u, v) pair) of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

int ParameterizationPatchableMesh_3::get_vertex_seaming ( Vertex_const_handle  vertex) const

Get vertex seaming flag.

Default value is undefined.

void ParameterizationPatchableMesh_3::set_corners_index ( Vertex_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex,
int  index 
)

Set index of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

void ParameterizationPatchableMesh_3::set_corners_parameterized ( Vertex_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex,
bool  parameterized 
)

Set is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

void ParameterizationPatchableMesh_3::set_corners_tag ( Vertex_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex,
int  tag 
)

Set all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

void ParameterizationPatchableMesh_3::set_corners_uv ( Vertex_handle  vertex,
Vertex_const_handle  prev_vertex,
Vertex_const_handle  next_vertex,
const Point_2 &  uv 
)

Set the 2D position (= (u, v) pair) of corners at the right of the prev_vertex -> vertex -> next_vertex line.

Default value is undefined.

void ParameterizationPatchableMesh_3::set_vertex_seaming ( Vertex_handle  vertex,
int  seaming 
)

Set vertex seaming flag.

Default value is undefined.