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 [GHJV95]: it changes the interface of a 3D mesh to match the interface expected by the parameterization methods.
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.
| |
Number type to represent coordinates.
| |
| |
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() and Y() methods.
| |
| |
2D vector. Must provide X() and Y() methods.
| |
| |
3D vector. Must provide X() and Y() methods.
| |
| |
Opaque type representing a facet of the 3D mesh. No methods are expected.
| |
| |
Handle to a facet. Model of the Handle concept.
| |
| |
| |
Iterator over all mesh facets. Model of the ForwardIterator concept.
| |
| |
| |
Opaque type representing a vertex of the 3D mesh. No methods are expected.
| |
| |
Handle to a vertex. Model of the Handle concept.
| |
| |
| |
Iterator over all vertices of a mesh. Model of the ForwardIterator concept.
| |
| |
| |
Iterator over vertices of the mesh main border. Model of the ForwardIterator concept.
| |
| |
| |
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.
| |
|
Construction and destruction are undefined.
The following mutable methods returning a handle, iterator, or circulator have appropriate non-mutable counterpart methods, i.e. const, returning a const_handle, const_iterator, or const_circulator.
|
| |||
Get iterator over first vertex of mesh. | ||||
| ||||
| ||||
|
| |||
Get iterator over past-the-end vertex of mesh. | ||||
| ||||
| ||||
|
| |||
Count the number of vertices of the mesh. | ||||
|
| |||
Index vertices of the mesh from 0 to count_mesh_vertices()-1. | ||||
| ||||
| ||||
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. | ||||
|
| |||
|
| |||
Get/set is parameterized field of vertex. Default value is undefined. | ||||
|
| |||
|
| |||
Get/set vertex index. Default value is undefined. | ||||
|
| |||
|
| |||
Get/set vertex' all purpose tag. Default value is undefined. | ||||
|
| |||
|
| |||
Return true if a vertex belongs to ANY mesh's border. | ||||
|
| |||
Return true if a vertex belongs to the UNIQUE mesh's main border. | ||||
| ||||
| ||||
Get circulator over the vertices incident to 'vertex'. 'start_position' defines the optional initial position of the circulator. | ||||
| ||||
|
Parameterization_polyhedron_adaptor_3<Polyhedron_3_>
Parameterization_mesh_patch_3<ParameterizationPatchableMesh_3>
ParameterizationPatchableMesh_3