Concept

ParameterizationPatchableMesh_3

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 [GHJV95]: it changes the interface of a 3D mesh to match the interface expected by class Parameterization_mesh_patch_3.

Refines

ParameterizationMesh_3

In addition to the requirements described in the concept ParameterizationMesh_3, ParameterizationPatchableMesh_3 provides the following:

Creation

Construction and destruction are undefined.

Operations

int mesh.get_vertex_seaming ( Vertex_const_handle vertex) const
Get/set vertex seaming flag. Default value is undefined.
void mesh.set_vertex_seaming ( Vertex_handle vertex, int seaming)
int mesh.get_halfedge_seaming ( Vertex_const_handle source, Vertex_const_handle target) const
Get/set oriented edge's seaming flag, i.e. position of the oriented edge w.r.t. to the UNIQUE main border.
void mesh.set_halfedge_seaming ( Vertex_handle source, Vertex_handle target, int seaming)
Point_2
mesh.get_corners_uv ( Vertex_const_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex)
const
Get/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
mesh.set_corners_uv ( Vertex_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex,
Point_2 uv)
bool
mesh.are_corners_parameterized ( Vertex_const_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex)
const
Get/set is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined.
void
mesh.set_corners_parameterized ( Vertex_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex,
bool parameterized)
int
mesh.get_corners_index ( Vertex_const_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex)
const
Get/set index of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined.
void
mesh.set_corners_index ( Vertex_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex,
int index)
int
mesh.get_corners_tag ( Vertex_const_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex)
const
Get/set all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined.
void
mesh.set_corners_tag ( Vertex_handle vertex,
Vertex_const_handle prev_vertex,
Vertex_const_handle next_vertex,
int tag)

Has Models

Adaptator for Polyhedron_3 is provided.

CGAL::Parameterization_polyhedron_adaptor_3<Polyhedron_3_>

See Also

ParameterizationMesh_3