CGAL 4.7 - 2D Regularized Boolean Set-Operations
|
A doubly-connected edge-list (Dcel for short) data-structure. It consists of three containers of records: vertices \( V\), halfedges \( E\), and faces \( F\). 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 GeneralPolygonSetDcel
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
, GeneralPolygonSetDcelFace
, ArrangementDcelHole
, and ArrangementDcelIsolatedVertex
respectively.) Notice that this concept differs from the concept ArrangemenDcel
only in the type Face
.
CGAL::Arr_dcel_base<V,H,F>
CGAL::Arr_default_dcel<Traits>
CGAL::Arr_face_extended_dcel<Traits,FData,V,H,F>
CGAL::Arr_extended_dcel<Traits,VData,HData,FData,V,H,F>
Types | |
typedef unspecified_type | Vertex |
the vertex type. More... | |
typedef unspecified_type | Halfedge |
the halfedge type. More... | |
typedef unspecified_type | Face |
the face type. More... | |
typedef unspecified_type | Hole |
the hole type. More... | |
typedef unspecified_type | Isolated_vertex |
the isolated vertex type. More... | |
typedef unspecified_type | Size |
used to represent size values (e.g., size_t ). More... | |
Iterators | |
The non-mutable iterators | |
typedef unspecified_type | Vertex_iterator |
a bidirectional iterator over the vertices. More... | |
typedef unspecified_type | Halfedge_iterator |
a bidirectional iterator over the halfedges. More... | |
typedef unspecified_type | Face_iterator |
a bidirectional iterator over the faces. More... | |
Creation | |
Arr_dcel () | |
constructs an empty Dcel with one unbounded face. More... | |
Face * | assign (const Self &other, const Face *uf) |
assigns the contents of the other Dcel whose unbounded face is given by uf , to dcel . More... | |
Access Functions | |
Size | size_of_vertices () const |
returns the number of vertices. More... | |
Size | size_of_halfedges () const |
returns the number of halfedges (always even). More... | |
Size | size_of_faces () const |
returns the number of faces. More... | |
Size | size_of_holes () const |
returns the number of holes (the number of connected components). More... | |
Size | size_of_isolated_vertices () const |
returns the number of isolated vertices. More... | |
Iterator Access | |
The following operations have an equivalent | |
Vertex_iterator | vertices_begin () |
returns a begin-iterator of the vertices in dcel . More... | |
Vertex_iterator | vertices_end () |
returns a past-the-end iterator of the vertices in dcel . More... | |
Halfedge_iterator | halfedges_begin () |
returns a begin-iterator of the halfedges in dcel . More... | |
Halfedge_iterator | halfedges_end () |
returns a past-the-end iterator of the halfedges in dcel . More... | |
Vertex_iterator | faces_begin () |
returns a begin-iterator of the faces in dcel . More... | |
Vertex_iterator | faces_end () |
returns a past-the-end iterator of the faces in dcel . More... | |
Modifiers | |
The following operations allocate a new element of the respective type. Halfedges are always allocated in pairs of opposite halfedges. The halfedges and their opposite pointers are automatically set. | |
Vertex * | new_vertex () |
creates a new vertex. More... | |
Halfedge * | new_edge () |
creates a new pair of twin halfedges. More... | |
Face * | new_face () |
creates a new face. More... | |
Hole * | new_hole () |
creates a new hole record. More... | |
Isolated_vertex * | new_isolated_vertex () |
creates a new isolated vertex record. More... | |
void | delete_vertex (Vertex *v) |
deletes the vertex v . More... | |
void | delete_edge (Halfedge *e) |
deletes the halfedge e as well as its twin. More... | |
void | delete_face (Face *f) |
deletes the face f . More... | |
void | delete_hole (Hole *ho) |
deletes the hole ho . More... | |
void | delete_isolated_vertex (Isolated_vertex *iv) |
deletes the isolated vertex iv . More... | |
the face type.
a bidirectional iterator over the faces.
Its value-type is Face
.
the halfedge type.
a bidirectional iterator over the halfedges.
Its value-type is Halfedge
.
the hole type.
the isolated vertex type.
used to represent size values (e.g., size_t
).
the vertex type.
a bidirectional iterator over the vertices.
Its value-type is Vertex
.
GeneralPolygonSetDcel::Arr_dcel | ( | ) |
constructs an empty Dcel with one unbounded 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.
void GeneralPolygonSetDcel::delete_edge | ( | Halfedge * | e | ) |
deletes the halfedge e
as well as its twin.
void GeneralPolygonSetDcel::delete_face | ( | Face * | f | ) |
deletes the face f
.
void GeneralPolygonSetDcel::delete_hole | ( | Hole * | ho | ) |
deletes the hole ho
.
void GeneralPolygonSetDcel::delete_isolated_vertex | ( | Isolated_vertex * | iv | ) |
deletes the isolated vertex iv
.
void GeneralPolygonSetDcel::delete_vertex | ( | Vertex * | v | ) |
deletes the vertex v
.
Vertex_iterator GeneralPolygonSetDcel::faces_begin | ( | ) |
returns a begin-iterator of the faces in dcel
.
Vertex_iterator GeneralPolygonSetDcel::faces_end | ( | ) |
returns a past-the-end iterator of the faces in dcel
.
Halfedge_iterator GeneralPolygonSetDcel::halfedges_begin | ( | ) |
returns a begin-iterator of the halfedges in dcel
.
Halfedge_iterator GeneralPolygonSetDcel::halfedges_end | ( | ) |
returns a past-the-end iterator of the halfedges in dcel
.
Halfedge* GeneralPolygonSetDcel::new_edge | ( | ) |
creates a new pair of twin halfedges.
Face* GeneralPolygonSetDcel::new_face | ( | ) |
creates a new face.
Hole* GeneralPolygonSetDcel::new_hole | ( | ) |
creates a new hole record.
Isolated_vertex* GeneralPolygonSetDcel::new_isolated_vertex | ( | ) |
creates a new isolated vertex record.
Vertex* GeneralPolygonSetDcel::new_vertex | ( | ) |
creates a new vertex.
Size GeneralPolygonSetDcel::size_of_faces | ( | ) | const |
returns the number of faces.
Size GeneralPolygonSetDcel::size_of_halfedges | ( | ) | const |
returns the number of halfedges (always even).
Size GeneralPolygonSetDcel::size_of_holes | ( | ) | const |
returns the number of holes (the number of connected components).
Size GeneralPolygonSetDcel::size_of_isolated_vertices | ( | ) | const |
returns the number of isolated vertices.
Size GeneralPolygonSetDcel::size_of_vertices | ( | ) | const |
returns the number of vertices.
Vertex_iterator GeneralPolygonSetDcel::vertices_begin | ( | ) |
returns a begin-iterator of the vertices in dcel
.
Vertex_iterator GeneralPolygonSetDcel::vertices_end | ( | ) |
returns a past-the-end iterator of the vertices in dcel
.