CGAL 4.5 - Planar Parameterization of Triangulated Surface Meshes
|
ParameterizationMesh_3
is a concept for a 3D surface mesh. Its main purpose is to allow the parameterization methods to access meshes in a uniform manner.
A ParameterizationMesh_3
surface consists of vertices, facets and an incidence relation on them. No notion of edge is requested. Vertices represent points in 3d-space. Facets are planar polygons without holes defined by the circular sequence of vertices along their border. The surface itself can have holes. The vertices along the border of a hole are called border vertices. A surface is closed if it contains no border vertices.
The surface must be an oriented 2-manifold with border vertices, i.e. the neighborhood of each point on the surface is either homeomorphic to a disc or to a half disc, except for vertices where many holes and surfaces with border can join.
ParameterizationMesh_3
defines the types, data and methods that a mesh must implement to allow surface parameterization. Among other things, this concept defines accessors to fields specific to parameterizations methods: index, u
, v
, is_parameterized
.
ParameterizationMesh_3
meshes can have any genus, arity or number of components. On the other hand, as parameterization methods deal only with topological disks, ParameterizationMesh_3
defines an interface oriented towards topological disks.
ParameterizationMesh_3
is an Adaptor [6] : it changes the interface of a 3D mesh to match the interface expected by the parameterization methods.
Construction and destruction are undefined.
We provide 2 models of this concept:
CGAL::Parameterization_polyhedron_adaptor_3<Polyhedron_3_>
CGAL::Parameterization_mesh_patch_3<ParameterizationPatchableMesh_3>
ParameterizationPatchableMesh_3
Types | |
The following mutable handles, iterators, and circulators have appropriate non-mutable counterparts, i.e. The mutable types are assignable to their non-mutable counterparts. Both circulators are assignable to the | |
typedef unspecified_type | NT |
Number type to represent coordinates. | |
typedef unspecified_type | Point_2 |
2D point that represents (u, v) coordinates computed by parameterization methods. More... | |
typedef unspecified_type | Point_3 |
3D point that represents vertices coordinates. More... | |
typedef unspecified_type | Vector_2 |
2D vector. More... | |
typedef unspecified_type | Vector_3 |
3D vector. More... | |
typedef unspecified_type | Facet |
Opaque type representing a facet of the 3D mesh. More... | |
typedef unspecified_type | Facet_handle |
Handle to a facet. More... | |
typedef unspecified_type | Facet_const_handle |
typedef unspecified_type | Facet_iterator |
Iterator over all mesh facets. More... | |
typedef unspecified_type | Facet_const_iterator |
typedef unspecified_type | Vertex |
Opaque type representing a vertex of the 3D mesh. More... | |
typedef unspecified_type | Vertex_handle |
Handle to a vertex. More... | |
typedef unspecified_type | Vertex_const_handle |
typedef unspecified_type | Vertex_iterator |
Iterator over all vertices of a mesh. More... | |
typedef unspecified_type | Vertex_const_iterator |
typedef unspecified_type | Border_vertex_iterator |
Iterator over vertices of the mesh main border. More... | |
typedef unspecified_type | Border_vertex_const_iterator |
typedef unspecified_type | Vertex_around_facet_circulator |
Counter-clockwise circulator over a facet's vertices. More... | |
typedef unspecified_type | Vertex_around_facet_const_circulator |
typedef unspecified_type | Vertex_around_vertex_circulator |
Clockwise circulator over the vertices incident to a vertex. More... | |
typedef unspecified_type | Vertex_around_vertex_const_circulator |
Operations | |
The following mutable methods returning a handle, iterator, or circulator have appropriate non-mutable counterpart methods, i.e. | |
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. | |
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. | |
Border_vertex_const_iterator | mesh_main_border_vertices_end () const |
std::list< Vertex_handle > | get_border (Vertex_handle seed_vertex) |
Return the border containing seed_vertex . More... | |
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. More... | |
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. More... | |
void | set_vertex_parameterized (Vertex_handle vertex, bool parameterized) |
int | get_vertex_index (Vertex_const_handle vertex) const |
Get/set vertex index. More... | |
void | set_vertex_index (Vertex_handle vertex, int index) |
int | get_vertex_tag (Vertex_const_handle vertex) const |
Get/set vertex' all purpose tag. More... | |
void | set_vertex_tag (Vertex_handle vertex, int tag) |
bool | is_vertex_on_border (Vertex_const_handle vertex) const |
Return true if a vertex belongs to ANY mesh's border. | |
bool | is_vertex_on_main_border (Vertex_const_handle vertex) const |
Return true if a vertex belongs to the UNIQUE mesh's main border. | |
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 |
Iterator over vertices of the mesh main border.
Model of the ForwardIterator
concept.
Opaque type representing a facet of the 3D mesh.
No methods are expected.
Iterator over all mesh facets.
Model of the ForwardIterator
concept.
2D point that represents (u, v) coordinates computed by parameterization methods.
Must provide x()
and y()
methods.
3D point that represents vertices coordinates.
Must provide x()
, y()
and z()
methods.
2D vector.
Must provide x()
and y()
methods.
3D vector.
Must provide x()
, y()
and z()
methods.
Opaque type representing a vertex of the 3D mesh.
No methods are expected.
Counter-clockwise circulator over a facet's vertices.
Model of the BidirectionalCirculator
concept.
Clockwise circulator over the vertices incident to a vertex.
Model of the BidirectionalCirculator
concept.
Iterator over all vertices of a mesh.
Model of the ForwardIterator
concept.
std::list<Vertex_handle> ParameterizationMesh_3::get_border | ( | Vertex_handle | seed_vertex) |
Return the border containing seed_vertex
.
Return an empty list if not found.
int ParameterizationMesh_3::get_vertex_index | ( | Vertex_const_handle | vertex) | const |
Get/set vertex index.
Default value is undefined.
int ParameterizationMesh_3::get_vertex_tag | ( | Vertex_const_handle | vertex) | const |
Get/set vertex' all purpose tag.
Default value is undefined.
Point_2 ParameterizationMesh_3::get_vertex_uv | ( | Vertex_const_handle | vertex) | const |
Get/set the 2D position (u/v pair) of a vertex.
Default value is undefined.
bool ParameterizationMesh_3::is_vertex_parameterized | ( | Vertex_const_handle | vertex) | const |
Get/set is parameterized field of vertex.
Default value is undefined.
Vertex_around_vertex_circulator ParameterizationMesh_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.