A doubly-connected edge-list (DCEL for short) data-structure. It consists of three containers of records: vertices , halfedges , and faces . It maintains the incidence relation among them. The halfedges are ordered in pairs sometimes referred to as twins, such that each halfedge pair represent an edge.
A model of the ArrangementDcel concept must provide the following types and operations. (In addition to the requirements here, the local types Vertex,Halfedge, Face Hole and Isolated_vertex must be models of the concepts ArrangementDcelVertex, ArrangementDcelHalfedge, ArrangementDcelFace, ArrangementDcelHole and ArrangementDcelIsolatedVertex respectively.)
| |
the vertex type.
| |
| |
the halfedge type.
| |
| |
the face type.
| |
| |
the hole type.
| |
| |
the isolated vertex type.
| |
| |
used to represent size values (e.g., size_t).
| |
| |
a bidirectional iterator over the
vertices. Its value-type is Vertex.
| |
| |
a bidirectional iterator over the
halfedges. Its value-type is Halfedge.
| |
| |
a bidirectional iterator over the
faces. Its value-type is Face.
|
The non-mutable iterators Vertex_const_iterator, Halfedge_const_iterator and Face_const_iterator are also defined.
| |
constructs an empty DCEL with one unbouned face.
|
|
| |
assigns the contents of the other DCEL whose unbounded face is given by uf, to dcel. The function returns a pointer to the unbounded face of dcel after the assignment. |
The following operations have an equivalent const operations that return the corresponding non-mutable iterators:
The following operations allocate a new element of the respective type. Halfedges are always allocated in pairs of opposite halfedges. The and their opposite pointers are automatically set.
Arr_dcel_base<V,H,F>
Arr_default_dcel<Traits>
Arr_face_extended_dcel<Traits,FData,V,H,F>
Arr_extended_dcel<Traits,VData,HData,FData,V,H,F>