A class Tds<Vb,Fb> that satisfies the requirements for a triangulation traits class must provide the following types and operations.
|
| |
|
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, non mutable iterators.
|
| |
|
| |
|
|
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.
| |
|
| |
|
Introduces a triangulation data structure tds that is
initialized with a set of vertices and faces that are linked to
vertex v. If v has no incident face the triangulation
consists only of v. Otherwise v must be the vertex at
infinity.
| |
|
| |
|
Copy constructor. All the vertices and faces are duplicated.
| |
|
|
| Assignation. All the vertices and faces are duplicated. |
|
|
| |
| Swap tds and tds1. Should be preferred to tds= tds1 or tds(tds1) when tds1 is deleted after that. | ||
|
|
| Destructor. All vertices and faces are deleted. |
|
|
| The dimension of the convex hull. |
|
|
| |
| The number of finite vertices. | ||
|
|
| |
| true, iff vertex *v is the infinite_vertex. | ||
|
|
| |
| true, iff one of the vertices of *f is the infinite_vertex. | ||
|
|
| |
| true, iff one of the vertices cw(i) or ccw(i) of face *f is the infinite_vertex. | ||
|
|
| |
| true, iff one of the vertices of edge e is the infinite_vertex. | ||
|
|
| |
| true, iff one of the vertices of edge e is the infinite_vertex. | ||
|
|
| |
| true, iff one of the vertices of edge *ei is the infinite_vertex. | ||
|
|
| |
| A face incident to the infinite_vertex. | ||
|
|
| |
| The infinite vertex. | ||
|
|
| |
| A vertex different from the infinite_vertex. | ||
|
|
| |
|
|
| |
|
|
| |
The following modifier member functions guarantee the combinatorial validity of the resulting triangulation.
|
|
| |
| Exchange the edge incident to *f and f->neighbor(i) with the other diagonal of the quadrilateral formed by f and f->neighbor(i). | ||
|
|
| |
| Insert the first finite vertex . | ||
|
|
| |
| Insert the second finite vertex . | ||
|
|
| |
| Insert vertex v in face f. Face f is modified, two new faces are created | ||
|
|
| |||
| Insert vertex v in edge i of f* | ||||
|
|
| |||
| insert in a 1 dimensional triangulation a vertex which is collinear to the triangulation and outside the convex hull. loc->vertex(li) is the vertex of the triangulation closest to v. | ||||
|
|
| |||
|
remove 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. | ||||
|
|
| |||
| remove the before last finite vertex. | ||||
|
|
| |||
| remove the last finite vertex. | ||||
|
|
| Delete all faces and all finite vertices. | ||
|
|
|
|
|
|
|
|
|
|
| |
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
Returns modulo
3. Precondition: . |
|
|
|
Returns modulo
3. Precondition: . |
|
|
| |
| Returns the number of finite faces. | ||
|
|
| Check the combinatorial validity of the triangulation. |