\( \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.8 - Planar Parameterization of Triangulated Surface Meshes

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
ParameterizationPatchableMesh_3 Concept Reference
Concepts

## 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.