Parameterization_polyhedron_adaptor_3 is an adaptor class to access to a Polyhedron 3D mesh using the ParameterizationPatchableMesh_3 interface. Among other things, this concept defines the accessor to the (u, v) values computed by parameterizations methods.
Note that these interfaces are decorators that add on the fly the necessary fields to unmodified CGAL data structures (using STL maps). For performance reasons, it is recommended to use CGAL data structures enriched with the proper fields.
A ParameterizationMesh_3 surface consists of vertices, facets and an incidence relation on them. No notion of edge is requested.
ParameterizationMesh_3 meshes can have any genus, arity or number of components.
It can have have any number of borders. Its main border will be the mesh's longest border (if there is at least one border).
It has also 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.
#include <CGAL/Parameterization_polyhedron_adaptor_3.h>
Model of ParameterizationPatchableMesh_3 concept, whose purpose is to allow the Surface_mesh_parameterization package to access meshes in a uniform manner.
Parameterization_polyhedron_adaptor_3 is an Adaptor [GHJV95]: it changes the Polyhedron interface to match the ParameterizationPatchableMesh_3 concept.
The full template declaration is:
template<class Polyhedron_3_>
class Parameterization_polyhedron_adaptor_3;
The following mutable handles, iterators, and circulators have appropriate non-mutable counterparts, i.e. const_handle, const_iterator, and const_circulator. The mutable types are assignable to their non-mutable counterparts. Both circulators are assignable to the Vertex_iterator. The iterators are assignable to the respective handle types. Wherever the handles appear in function parameter lists, the corresponding iterators can be used as well.
| |
Create an adaptator for an existing Polyhedron_3 mesh. The input mesh can be of any genus. It can have have any number of borders. Its main border will be the mesh's longest border (if there is at least one border).
|
The following methods returning a mutable handle, iterator, or circulator have appropriate non-mutable counterpart methods, i.e. const, returning a const_handle, const_iterator, or const_circulator.
|
| Get the adapted mesh. | ||
|
|
|||
|
| |||
Get halfedge from source and target vertices. Will assert if such a halfedge doesn't exist. | ||||
|
| |||
|
| |||
Access to additional info attached to halfedges. | ||||
|
| |||
|
| |||
Access to additional info attached to vertices. | ||||
|
| |||
|
| Indicate if the mesh matches the ParameterizationMesh_3 concept. | ||
|
| Get iterator over first vertex of mesh. | ||
|
|
|||
|
| Get iterator over past-the-end vertex of mesh. | ||
|
|
|||
|
| Count the number of vertices of the mesh. | ||
|
|
|||
|
| |||
Get iterator over first vertex of mesh's main border. | ||||
|
| |||
|
| |||
Get iterator over past-the-end vertex of mesh's main border. | ||||
|
| |||
|
| |||
Return the border containing seed_vertex. Return an empty list if not found. | ||||
|
| Get iterator over first facet of mesh. | ||
|
|
|||
|
| Get iterator over past-the-end facet of mesh. | ||
|
|
|||
|
| Count the number of facets of the mesh. | ||
|
| Return true of all mesh's facets are triangles. | ||
|
| Count the number of halfedges of the mesh. | ||
|
| |||
Get circulator over facet's vertices. | ||||
| ||||
| ||||
|
| |||
Count the number of vertices of a facet. | ||||
|
| |||
Get the 3D position of a vertex. | ||||
|
| |||
Get/set the 2D position (u/v pair) of a vertex. Default value is undefined. (stored in halfedges sharing the same vertex). | ||||
|
| |||
|
| |||
Get/set is parameterized field of vertex. Default value is undefined. (stored in halfedges sharing the same vertex). | ||||
|
| |||
|
| |||
Get/set vertex index. Default value is undefined. (stored in Polyhedron vertex for debugging purpose). | ||||
|
| |||
|
| |||
Get/set vertex' all purpose tag. Default value is undefined. (stored in halfedges sharing the same vertex). | ||||
|
| |||
|
| |||
Return true if a vertex belongs to ANY mesh's border. | ||||
|
| |||
Return true if a vertex belongs to the UNIQUE mesh's main border, i.e. the mesh's LONGEST border. | ||||
|
| |||
Get circulator over the vertices incident to vertex. start_position defines the optional initial position of the circulator. | ||||
| ||||
| ||||
|
| |||
Get/set vertex seaming flag. Default value is undefined. | ||||
|
| |||
|
| |||
Get/set oriented edge's seaming flag, i.e. position of the oriented edge w.r.t. to the UNIQUE main border. | ||||
|
| |||
|
| |||
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. (stored in incident halfedges). | ||||
|
| |||
|
| |||
Get/set is parameterized field of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined. (stored in incident halfedges). | ||||
|
| |||
|
| |||
Get/set index of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined. (stored in incident halfedges). | ||||
|
| |||
|
| |||
Get/set all purpose tag of corners at the right of the prev_vertex -> vertex -> next_vertex line. Default value is undefined. (stored in incident halfedges). | ||||
|
|
CGAL::Parameterization_mesh_patch_3<ParameterizationPatchableMesh_3>
See Simple_parameterization.cpp example.