To be a model of triangulation data structure the class Tds<Vb,Fb> is required to provide the following types and operations.
|
| self |
|
| the Vertex_base |
|
| the Face_base |
| |
requirement for this type are described in section .
| |
| |
requirements for this type are described in
described .
|
The following iterators allow to visit all the vertices, edges and faces of the triangulation data structure. They are all bidirectional and non mutable.
| |
| |
|
The following circulators allow to visit all the vertices, edges and faces incident to a given vertex. They are all bidirectional and non mutable.
| |
| |
|
| |
A default constructor.
| |
| |
Copy constructor. All the vertices and faces are duplicated.
|
|
| Assignation. All the vertices and faces are duplicated. |
|
| |
Swaps tds and tds1. Should be preferred to tds=tds1 or tds(tds1) when tds1 is deleted after that. | ||
|
| Deletes all faces and all finite vertices. |
|
| Destructor. All vertices and faces are deleted. |
|
| The dimension of the triangulation. |
|
| |
The number of vertices in the data structure. | ||
|
| |
The number of two dimensional faces in the data structure. | ||
|
| |
The number of edges in the triangulation data structure. | ||
|
| |
The number of full dimensional faces, i.e. faces of dimension equal to the dimension of the triangulation. This is the actual number of faces stored in the triangulation data structure. |
|
| |
|
|
|
| |
exchanges the edge incident to f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i). |
|
| |
creates the first vertex and returns a pointer to it. | ||
|
| |
creates the second finite vertex and returns a pointer to it. | ||
|
| |
adds a vertex v splitting edge i of face f. Return a pointer to v. | ||
|
| |
adds a vertex v splitting face f in three. Face f is modified, two new faces are created. Return a pointer to v | ||
|
| |
adds a vertex v, increasing by one the dimension of the triangulation. Vertex v and the existing vertex w are linked to all the vertices of the triangulation. The boolean orient decides the final orientation of all faces. A pointer to vertex v is returned. |
|
| |
removes a vertex of degree 3. Two of the incident faces are destroyed,
the third one is modified.
If parameter f is specified, it has to be a face incident to v
and will be the modified face. Precondition: Vertex v is a finite vertex with degree 3 and, if specified, face f is incident to v. | ||
|
| |
removes the before last vertex. | ||
|
| |
removes the last vertex. | ||
|
| |
removes vertex v incident to all other vertices
and decreases by one the dimension of the triangulation. Precondition: if the dimension is 2, the number of vertices is more than 3, if the dimension is 1, the number of vertices is 2. |
|
| visits all faces |
|
|
|
|
| |
visits all vertices | ||
|
| |
|
| visits all edges |
|
|
|
|
returns modulo 3. Precondition: . |
|
|
returns modulo 3. Precondition: . |
|
| checks the combinatorial validity of the triangulation: call the is_valid() member function for each vertex and each face, checks the number of vertices and the Euler relation between numbers of vertices, faces and edges. |