CGAL 6.1 - 2D Arrangements
|
#include <Concepts/AosDcel.h>
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 AosDcel
concept must provide the following types and operations. (In addition to the requirements here, the local types Vertex
,Halfedge
, Face
, Outer_ccb
, Inner_ccb
, and Isolated_vertex
must be models of the concepts AosDcelVertex
, AosDcelHalfedge
, AosDcelFace
, AosDcelOuterCcb
, AosDcelInnerCcb
, and AosDcelIsolatedVertex
respectively.)
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. | |
typedef unspecified_type | Halfedge |
the halfedge type. | |
typedef unspecified_type | Face |
the face type. | |
typedef unspecified_type | Outer_ccb |
the Outer CCB type. | |
typedef unspecified_type | Inner_ccb |
the Inner CCB type. | |
typedef unspecified_type | Hole |
the hole (i.e., Inner_ccb) type. | |
typedef unspecified_type | Isolated_vertex |
the isolated vertex type. | |
typedef unspecified_type | Size |
used to represent size values (e.g., std::size_t ). | |
typedef unspecified_type | Vertex_iterator |
a bidirectional iterator over the vertices. Its value-type is Vertex . | |
typedef unspecified_type | Vertex_const_iterator |
a bidirectional iterator over the vertices. Its value-type is Vertex . | |
typedef unspecified_type | Halfedge_iterator |
a bidirectional iterator over the halfedges. Its value-type is Halfedge . | |
typedef unspecified_type | Halfedge_const_iterator |
a bidirectional iterator over the halfedges. Its value-type is Halfedge . | |
typedef unspecified_type | Face_iterator |
a bidirectional iterator over the faces. Its value-type is Face . | |
typedef unspecified_type | Face_const_iterator |
a bidirectional iterator over the faces. Its value-type is Face . | |
Creation | |
Arr_dcel () | |
constructs an empty DCEL with one unbounded face. | |
Face * | assign (const Self &other, const Face *uf) |
assigns the contents of the other DCEL whose unbounded face is given by uf , to dcel . | |
Access Functions | |
Size | size_of_vertices () const |
obtains the number of vertices. | |
Size | size_of_halfedges () const |
obtains the number of halfedges (always even). | |
Size | size_of_faces () const |
obtains the number of faces. | |
Size | size_of_outer_ccbs () const |
obtains the number of outer CCBs. | |
Size | size_of_inner_ccbs () const |
obtains the number of inner CCBs. | |
Size | size_of_holes () const |
obtains the number of holes (i.e., inner CCBs). | |
Size | size_of_isolated_vertices () const |
obtains the number of isolated vertices. | |
Vertex_iterator | vertices_begin () |
obtains a begin-iterator of the vertices in dcel . | |
Vertex_iterator | vertices_end () |
obtains a past-the-end iterator of the vertices in dcel . | |
unspecified_type | vertex_handles () |
obtains a range over handles of the vertices in dcel . | |
Vertex_const_iterator | vertices_begin () const |
obtains a begin-iterator of the vertices in dcel . | |
Vertex_const_iterator | vertices_end () const |
obtains a past-the-end iterator of the vertices in dcel . | |
unspecified_type | vertex_handles () const |
obtains a const range (model of ConstRange ) over handles of the vertices in dcel . | |
Halfedge_iterator | halfedges_begin () |
obtains a begin-iterator of the halfedges in dcel . | |
Halfedge_iterator | halfedges_end () |
obtains a past-the-end iterator of the halfedges in dcel . | |
unspecified_type | halfedge_handles () |
obtains a range over handles of the halfedges in dcel . | |
Halfedge_const_iterator | halfedges_begin () const |
obtains a begin-iterator of the halfedges in dcel . | |
Halfedge_const_iterator | halfedges_end () const |
obtains a past-the-end iterator of the halfedges in dcel . | |
unspecified_type | halfedge_handles () const |
obtains a const range (model of ConstRange ) over handles of the halfedges in dcel . | |
Face_iterator | faces_begin () |
obtains a begin-iterator of the faces in dcel . | |
Face_iterator | faces_end () |
obtains a past-the-end iterator of the faces in dcel . | |
unspecified_type | face_handles () |
obtains a range over handles of the faces in dcel . | |
Face_const_iterator | faces_begin () const |
obtains a begin-iterator of the faces in dcel . | |
Face_const_iterator | faces_end () const |
obtains a past-the-end iterator of the faces in dcel . | |
unspecified_type | face_handles () const |
obtains a const range (model of ConstRange ) over handles of the faces in dcel . | |
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. | |
Halfedge * | new_edge () |
creates a new pair of twin halfedges. | |
Face * | new_face () |
creates a new face. | |
Hole * | new_outer_ccb () |
creates a new outer CCB record. | |
Hole * | new_inner_ccb () |
creates a new inner CCB record. | |
Hole * | new_hole () |
creates a new hole (i.e., inner CCB) record. | |
Isolated_vertex * | new_isolated_vertex () |
creates a new isolated vertex record. | |
void | delete_vertex (Vertex *v) |
deletes a given vertex v . | |
void | delete_edge (Halfedge *e) |
deletes a given halfedge e as well as its twin. | |
void | delete_face (Face *f) |
deletes a given face f . | |
void | delete_outer_ccb (Outer_ccb *oc) |
deletes a given outer CCB oc . | |
void | delete_inner_ccb (Inner_ccb *oc) |
deletes a given inner CCB ic . | |
void | delete_hole (Hole *ho) |
deletes a given hole (i.e., inner CCB) ho . | |
void | delete_isolated_vertex (Isolated_vertex *iv) |
deletes a given isolated vertex iv . | |
typedef unspecified_type AosDcel::Face |
the face type.
a bidirectional iterator over the faces. Its value-type is Face
.
a bidirectional iterator over the faces. Its value-type is Face
.
typedef unspecified_type AosDcel::Halfedge |
the halfedge type.
a bidirectional iterator over the halfedges. Its value-type is Halfedge
.
a bidirectional iterator over the halfedges. Its value-type is Halfedge
.
typedef unspecified_type AosDcel::Hole |
the hole (i.e., Inner_ccb) type.
typedef unspecified_type AosDcel::Inner_ccb |
the Inner CCB type.
the isolated vertex type.
typedef unspecified_type AosDcel::Outer_ccb |
the Outer CCB type.
typedef unspecified_type AosDcel::Size |
used to represent size values (e.g., std::size_t
).
typedef unspecified_type AosDcel::Vertex |
the vertex type.
a bidirectional iterator over the vertices. Its value-type is Vertex
.
a bidirectional iterator over the vertices. Its value-type is Vertex
.
AosDcel::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 AosDcel::delete_edge | ( | Halfedge * | e | ) |
deletes a given halfedge e
as well as its twin.
void AosDcel::delete_face | ( | Face * | f | ) |
deletes a given face f
.
void AosDcel::delete_hole | ( | Hole * | ho | ) |
deletes a given hole (i.e., inner CCB) ho
.
void AosDcel::delete_inner_ccb | ( | Inner_ccb * | oc | ) |
deletes a given inner CCB ic
.
void AosDcel::delete_isolated_vertex | ( | Isolated_vertex * | iv | ) |
deletes a given isolated vertex iv
.
void AosDcel::delete_outer_ccb | ( | Outer_ccb * | oc | ) |
deletes a given outer CCB oc
.
void AosDcel::delete_vertex | ( | Vertex * | v | ) |
deletes a given vertex v
.
unspecified_type AosDcel::face_handles | ( | ) |
obtains a range over handles of the faces in dcel
.
unspecified_type AosDcel::face_handles | ( | ) | const |
obtains a const range (model of ConstRange
) over handles of the faces in dcel
.
Face_iterator AosDcel::faces_begin | ( | ) |
obtains a begin-iterator of the faces in dcel
.
Face_const_iterator AosDcel::faces_begin | ( | ) | const |
obtains a begin-iterator of the faces in dcel
.
Face_iterator AosDcel::faces_end | ( | ) |
obtains a past-the-end iterator of the faces in dcel
.
Face_const_iterator AosDcel::faces_end | ( | ) | const |
obtains a past-the-end iterator of the faces in dcel
.
unspecified_type AosDcel::halfedge_handles | ( | ) |
obtains a range over handles of the halfedges in dcel
.
unspecified_type AosDcel::halfedge_handles | ( | ) | const |
obtains a const range (model of ConstRange
) over handles of the halfedges in dcel
.
Halfedge_iterator AosDcel::halfedges_begin | ( | ) |
obtains a begin-iterator of the halfedges in dcel
.
Halfedge_const_iterator AosDcel::halfedges_begin | ( | ) | const |
obtains a begin-iterator of the halfedges in dcel
.
Halfedge_iterator AosDcel::halfedges_end | ( | ) |
obtains a past-the-end iterator of the halfedges in dcel
.
Halfedge_const_iterator AosDcel::halfedges_end | ( | ) | const |
obtains a past-the-end iterator of the halfedges in dcel
.
Halfedge * AosDcel::new_edge | ( | ) |
creates a new pair of twin halfedges.
Face * AosDcel::new_face | ( | ) |
creates a new face.
Hole * AosDcel::new_hole | ( | ) |
creates a new hole (i.e., inner CCB) record.
Hole * AosDcel::new_inner_ccb | ( | ) |
creates a new inner CCB record.
Isolated_vertex * AosDcel::new_isolated_vertex | ( | ) |
creates a new isolated vertex record.
Hole * AosDcel::new_outer_ccb | ( | ) |
creates a new outer CCB record.
Vertex * AosDcel::new_vertex | ( | ) |
creates a new vertex.
Size AosDcel::size_of_faces | ( | ) | const |
obtains the number of faces.
Size AosDcel::size_of_halfedges | ( | ) | const |
obtains the number of halfedges (always even).
Size AosDcel::size_of_holes | ( | ) | const |
obtains the number of holes (i.e., inner CCBs).
Size AosDcel::size_of_inner_ccbs | ( | ) | const |
obtains the number of inner CCBs.
Size AosDcel::size_of_isolated_vertices | ( | ) | const |
obtains the number of isolated vertices.
Size AosDcel::size_of_outer_ccbs | ( | ) | const |
obtains the number of outer CCBs.
Size AosDcel::size_of_vertices | ( | ) | const |
obtains the number of vertices.
unspecified_type AosDcel::vertex_handles | ( | ) |
obtains a range over handles of the vertices in dcel
.
unspecified_type AosDcel::vertex_handles | ( | ) | const |
obtains a const range (model of ConstRange
) over handles of the vertices in dcel
.
Vertex_iterator AosDcel::vertices_begin | ( | ) |
obtains a begin-iterator of the vertices in dcel
.
Vertex_const_iterator AosDcel::vertices_begin | ( | ) | const |
obtains a begin-iterator of the vertices in dcel
.
Vertex_iterator AosDcel::vertices_end | ( | ) |
obtains a past-the-end iterator of the vertices in dcel
.
Vertex_const_iterator AosDcel::vertices_end | ( | ) | const |
obtains a past-the-end iterator of the vertices in dcel
.