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

#include <CGAL/Parameterization_mesh_patch_3.h>

Definition

Parameterization_mesh_patch_3 is a Decorator class to virtually cut a patch in a ParameterizationPatchableMesh_3 3D surface.

Only the patch is exported, making the 3D surface look like a topological disk.

The input mesh can be of any genus, but it has to come with a seam that describes the border of a topological disc. This border may be an actual border of the mesh or a virtual border.

Is Model Of:
ParameterizationMesh_3
Template Parameters
ParameterizationPatchableMesh_33D surface mesh.
Examples:
Surface_mesh_parameterization/Complete_parameterization_example.cpp, Surface_mesh_parameterization/Mesh_cutting_parameterization.cpp, and Surface_mesh_parameterization/polyhedron_ex_parameterization.cpp.

Public Types

typedef
ParameterizationPatchableMesh_3 
Adaptor
 Export template parameter.
 

Public Member Functions

template<class InputIterator >
 Parameterization_mesh_patch_3 (Adaptor &mesh, InputIterator first_seam_vertex, InputIterator end_seam_vertex)
 Create a Decorator for an existing ParameterizationPatchableMesh_3 mesh. More...
 
Adaptorget_decorated_mesh ()
 
const Adaptorget_decorated_mesh () const
 

Public Attributes

Adaptorm_mesh_adaptor
 The decorated mesh.
 

Methods implementing the ParameterizationMesh_3 interface

bool is_valid () const
 Indicate if the mesh matches the ParameterizationMesh_3 concept.
 
Vertex_iterator mesh_vertices_begin ()
 Get iterator over first vertex of mesh.
 
Vertex_const_iterator mesh_vertices_begin () const
 
Vertex_iterator mesh_vertices_end ()
 Get iterator over past-the-end vertex of mesh.
 
Vertex_const_iterator mesh_vertices_end () const
 
int count_mesh_vertices () const
 Count the number of vertices of the mesh.
 
void index_mesh_vertices ()
 Index vertices of the mesh from 0 to count_mesh_vertices()-1.
 
Border_vertex_iterator mesh_main_border_vertices_begin ()
 Get iterator over first vertex of mesh's main border (aka seam).
 
Border_vertex_const_iterator mesh_main_border_vertices_begin () const
 
Border_vertex_iterator mesh_main_border_vertices_end ()
 Get iterator over past-the-end vertex of mesh's main border (aka seam).
 
Border_vertex_const_iterator mesh_main_border_vertices_end () const
 
std::list< Vertex_handle > get_border (Vertex_handle seed_vertex)
 
Facet_iterator mesh_facets_begin ()
 Get iterator over first facet of mesh.
 
Facet_const_iterator mesh_facets_begin () const
 
Facet_iterator mesh_facets_end ()
 Get iterator over past-the-end facet of mesh.
 
Facet_const_iterator mesh_facets_end () const
 
int count_mesh_facets () const
 Count the number of facets of the mesh.
 
bool is_mesh_triangular () const
 Return true of all mesh's facets are triangles.
 
int count_mesh_halfedges () const
 Count the number of halfedges of the mesh.
 
Vertex_around_facet_circulator facet_vertices_begin (Facet_handle facet)
 Get circulator over facet's vertices.
 
Vertex_around_facet_const_circulator facet_vertices_begin (Facet_const_handle facet) const
 
int count_facet_vertices (Facet_const_handle facet) const
 Count the number of vertices of a facet.
 
Point_3 get_vertex_position (Vertex_const_handle vertex) const
 Get the 3D position of a vertex.
 
Point_2 get_vertex_uv (Vertex_const_handle vertex) const
 Get/set the 2D position (u/v pair) of a vertex. Default value is undefined.
 
void set_vertex_uv (Vertex_handle vertex, const Point_2 &uv)
 
bool is_vertex_parameterized (Vertex_const_handle vertex) const
 Get/set "is parameterized" field of vertex. Default value is undefined.
 
void set_vertex_parameterized (Vertex_handle vertex, bool parameterized)
 
int get_vertex_index (Vertex_const_handle vertex) const
 Get/set vertex index. Default value is undefined.
 
void set_vertex_index (Vertex_handle vertex, int index)
 
int get_vertex_tag (Vertex_const_handle vertex) const
 Get/set vertex' all purpose tag. Default value is undefined.
 
void set_vertex_tag (Vertex_handle vertex, int tag)
 
bool is_vertex_on_border (Vertex_const_handle vertex) const
 Return true if vertex belongs to the border of any mesh.
 
bool is_vertex_on_main_border (Vertex_const_handle vertex) const
 Return true if vertex belongs to the UNIQUE mesh's main border set by the constructor. More...
 
Vertex_around_vertex_circulator vertices_around_vertex_begin (Vertex_handle vertex, Vertex_handle start_position=Vertex_handle())
 Get circulator over the vertices incident to vertex. More...
 
Vertex_around_vertex_const_circulator vertices_around_vertex_begin (Vertex_const_handle vertex, Vertex_const_handle start_position=Vertex_const_handle()) const
 

Constructor & Destructor Documentation

template<class ParameterizationPatchableMesh_3 >
template<class InputIterator >
CGAL::Parameterization_mesh_patch_3< ParameterizationPatchableMesh_3 >::Parameterization_mesh_patch_3 ( Adaptor mesh,
InputIterator  first_seam_vertex,
InputIterator  end_seam_vertex 
)

Create a Decorator for an existing ParameterizationPatchableMesh_3 mesh.

The input mesh can be of any genus, but it has to come with a seam that describes the border of a topological disc. This border may be an actual border of the mesh or a virtual border.

Precondition
first_seam_vertex -> end_seam_vertex defines the outer seam, i.e. Parameterization_mesh_patch_3 will export the right of the seam.
The seam is given as a container of Adaptor::Vertex_handle elements.
The seam is implicitely a loop. The first vertex must not be duplicated at the end.

Member Function Documentation

template<class ParameterizationPatchableMesh_3 >
std::list<Vertex_handle> CGAL::Parameterization_mesh_patch_3< ParameterizationPatchableMesh_3 >::get_border ( Vertex_handle  seed_vertex)
Returns
the border containing seed_vertex (or an empty list if not found).
Parameters
seed_vertexa border vertex.
template<class ParameterizationPatchableMesh_3 >
Adaptor& CGAL::Parameterization_mesh_patch_3< ParameterizationPatchableMesh_3 >::get_decorated_mesh ( )
Returns
the decorated mesh.
template<class ParameterizationPatchableMesh_3 >
bool CGAL::Parameterization_mesh_patch_3< ParameterizationPatchableMesh_3 >::is_vertex_on_main_border ( Vertex_const_handle  vertex) const

Return true if vertex belongs to the UNIQUE mesh's main border set by the constructor.

template<class ParameterizationPatchableMesh_3 >
Vertex_around_vertex_circulator CGAL::Parameterization_mesh_patch_3< ParameterizationPatchableMesh_3 >::vertices_around_vertex_begin ( Vertex_handle  vertex,
Vertex_handle  start_position = Vertex_handle() 
)

Get circulator over the vertices incident to vertex.

start_position defines the optional initial position of the circulator.