CGAL 4.3 - 2D Voronoi Diagram Adaptor
|
The concept DelaunayGraph_2
defines the requirements for the first template parameter of the Voronoi_diagram_2<DG,AT,AP>
class. The DelaunayGraph_2
concept essentially defines the requirements that a class representing a Delaunay graph must obey so that the Voronoi diagram adaptor can adapt it.
Traversal of the Delaunay graph
A model of the DelaunayGraph_2
concept must provide several iterators and circulators that allow to traverse it (completely or partially). All iterators and circulators must be convertible to the corresponding handles.
CGAL::Delaunay_triangulation_2<Traits,Tds>
CGAL::Regular_triangulation_2<Traits,Tds>
CGAL::Triangulation_hierarchy_2<Tr>
provided that Tr
is a model of DelaunayGraph_2
CGAL::Segment_Delaunay_graph_2<Gt,DS>
CGAL::Segment_Delaunay_graph_hierarchy_2<Gt,STag,DS>
CGAL::Apollonius_graph_2<Gt,Agds>
CGAL::Apollonius_graph_hierarchy_2<Gt,Agds>
AdaptationTraits_2
AdaptationPolicy_2
CGAL::Voronoi_diagram_2<DG,AT,AP>
Types | |
typedef unspecified_type | size_type |
A type for sizes. | |
typedef unspecified_type | Geom_traits |
A type for the geometric traits associated with the Delaunay graph. | |
typedef unspecified_type | Triangulation_data_structure |
A type for the underlying triangulation data structure. More... | |
typedef unspecified_type | Vertex |
A type for the vertices of the Delaunay graph. | |
typedef unspecified_type | Face |
A type for the faces of the Delaunay graph. | |
typedef std::pair< Face_handle, int > | Edge |
The type of the edges of the Delaunay graph. | |
typedef unspecified_type | Vertex_handle |
Handle to the vertices of the Delaunay graph. | |
typedef unspecified_type | Face_handle |
Handle to the faces of the Delaunay graph. | |
The following iterators and circulators must be defined. All iterators and circulators must be assignable and convertible to their corresponding handles. | |
typedef unspecified_type | All_edges_iterator |
A type for an iterator over all edges of the Delaunay graph. More... | |
typedef unspecified_type | Finite_edges_iterator |
A type for an iterator over the finite edges of the Delaunay graph. More... | |
typedef unspecified_type | All_faces_iterator |
A type for an iterator over all faces of the Delaunay graph. More... | |
typedef unspecified_type | Finite_faces_iterator |
A type for an iterator over the finite faces of the Delaunay graph. More... | |
typedef unspecified_type | All_vertices_iterator |
A type for an iterator over all vertices of the Delaunay graph. More... | |
typedef unspecified_type | Finite_vertices_iterator |
A type for an iterator over the finite vertices of the Delaunay graph. More... | |
typedef unspecified_type | Face_circulator |
A type for a circulator over the adjacent faces of a vertex of the Delaunay graph. More... | |
typedef unspecified_type | Vertex_circulator |
A type for a circulator over the adjacent vertices of a vertex of the Delaunay graph. More... | |
typedef unspecified_type | Edge_circulator |
A type for a circulator over the adjacent edges of a vertex of the Delaunay graph. More... | |
Creation | |
In addition to the default and copy constructors, as well as the assignment operator, the following constructors are required. | |
DelaunayGraph_2 (Geom_traits gt) | |
Constructor that takes an instance of the geometric traits. | |
template<class It > | |
DelaunayGraph_2 (It first, It beyond) | |
Constructor that takes an iterator range. More... | |
template<class It > | |
DelaunayGraph_2 (It first, It beyond, Geom_traits gt) | |
Constructor that takes an iterator range and an instance of the geometric traits. More... | |
Access methods | |
Triangulation_data_structure | tds () |
Returns a reference to the underlying triangulation data structure. | |
Geom_traits | geom_traits () |
Returns a reference to the geometric traits object. | |
Vertex_handle | infinite_vertex () |
Returns a handle to the infinite vertex. | |
Vertex_handle | finite_vertex () |
Returns a handle to a finite vertex, provided there exists one. | |
Face_handle | infinite_face () |
Returns a handle to a face incident to the infinite vertex. | |
int | dimension () |
Returns the dimension of the Delaunay graph. | |
size_type | number_of_vertices () |
Returns the number of finite vertices. | |
size_type | number_of_faces () |
Returns the number of faces (both finite and infinite). | |
Finite Face, Edge and Vertex Iterators | |
The following iterators must allow, respectively, to visit finite faces, finite edges and finite vertices of the Delaunay graph. These iterators must be non-mutable, bidirectional and their value types are respectively | |
Finite_vertices_iterator | finite_vertices_begin () |
Starts at an arbitrary finite vertex. | |
Finite_vertices_iterator | finite_vertices_end () |
Past-the-end iterator. | |
Finite_edges_iterator | finite_edges_begin () |
Starts at an arbitrary finite edge. | |
Finite_edges_iterator | finite_edges_end () |
Past-the-end iterator. | |
Finite_faces_iterator | finite_faces_begin () |
Starts at an arbitrary finite face. | |
Finite_faces_iterator | finite_faces_end () const |
Past-the-end iterator. | |
All Face, Edge and Vertex Iterators | |
The following iterators must allow, respectively, to visit all (both finite and infinite) faces, edges and vertices of the Delaunay graph. These iterators are non-mutable, bidirectional and their value types are respectively | |
All_vertices_iterator | all_vertices_begin () |
Starts at an arbitrary vertex. | |
All_vertices_iterator | all_vertices_end () |
Past-the-end iterator. | |
All_edges_iterator | all_edges_begin () |
Starts at an arbitrary edge. | |
All_edges_iterator | all_edges_end () |
Past-the-end iterator. | |
All_faces_iterator | all_faces_begin () |
Starts at an arbitrary face. | |
All_faces_iterator | all_faces_end () |
Past-the-end iterator. | |
Face, Edge and Vertex Circulators | |
A model of the These circulators are non-mutable and bidirectional. The operator | |
Face_circulator | incident_faces (Vertex_handle v) |
Starts at an arbitrary face incident to v . | |
Face_circulator | incident_faces (Vertex_handle v, Face_handle f) |
Starts at face f . More... | |
Edge_circulator | incident_edges (Vertex_handle v) |
Starts at an arbitrary edge incident to v . | |
Edge_circulator | incident_edges (Vertex_handle v, Face_handle f) |
Starts at the first edge of f incident to v , in counterclockwise order around v . More... | |
Vertex_circulator | incident_vertices (Vertex_handle v) |
Starts at an arbitrary vertex incident to v . | |
Vertex_circulator | incident_vertices (Vertex_handle v, Face_handle f) |
Starts at the first vertex of f adjacent to v in counterclockwise order around v . More... | |
Predicates | |
A model of the | |
bool | is_infinite (Vertex_handle v) |
true , iff v is the infinite_vertex . | |
bool | is_infinite (Face_handle f) |
true , iff face f is infinite. | |
bool | is_infinite (Face_handle f, int i) |
true , iff edge (f,i) is infinite. | |
bool | is_infinite (Edge e) |
true , iff edge e is infinite. | |
bool | is_infinite (Edge_circulator ec) |
true , iff edge *ec is infinite. | |
Validity check | |
bool | is_valid (bool verbose=false) |
Checks the validity of the Delaunay graph. More... | |
Miscellaneous | |
void | clear () |
Clears all contents of the Delaunay graph. | |
void | swap (DelaunayGraph_2 other) |
The Delaunay graphs other and dg are swapped. More... | |
A type for an iterator over all edges of the Delaunay graph.
Its value type must be Edge
.
A type for an iterator over all faces of the Delaunay graph.
Its value type must be Face
.
A type for an iterator over all vertices of the Delaunay graph.
Its value type must be Vertex
.
A type for a circulator over the adjacent edges of a vertex of the Delaunay graph.
Its value type must be Edge
.
A type for a circulator over the adjacent faces of a vertex of the Delaunay graph.
Its value type must be Face
.
A type for an iterator over the finite edges of the Delaunay graph.
Its value type must be Edge
.
A type for an iterator over the finite faces of the Delaunay graph.
Its value type must be Face
.
A type for an iterator over the finite vertices of the Delaunay graph.
Its value type must be Vertex
.
A type for the underlying triangulation data structure.
It must be a model of the concept TriangulationDataStructure_2.
A type for a circulator over the adjacent vertices of a vertex of the Delaunay graph.
Its value type must be Vertex
.
DelaunayGraph_2::DelaunayGraph_2 | ( | It | first, |
It | beyond | ||
) |
Constructor that takes an iterator range.
The value type of the iterator must be the type of the sites of the Delaunay graph.
DelaunayGraph_2::DelaunayGraph_2 | ( | It | first, |
It | beyond, | ||
Geom_traits | gt | ||
) |
Constructor that takes an iterator range and an instance of the geometric traits.
The value type of the iterator must be the type of the sites of the Delaunay graph.
Edge_circulator DelaunayGraph_2::incident_edges | ( | Vertex_handle | v, |
Face_handle | f | ||
) |
Starts at the first edge of f
incident to v
, in counterclockwise order around v
.
f
must be incident to vertex v
. Face_circulator DelaunayGraph_2::incident_faces | ( | Vertex_handle | v, |
Face_handle | f | ||
) |
Starts at face f
.
f
must be incident to vertex v
. Vertex_circulator DelaunayGraph_2::incident_vertices | ( | Vertex_handle | v, |
Face_handle | f | ||
) |
Starts at the first vertex of f
adjacent to v
in counterclockwise order around v
.
f
must be incident to vertex v
. bool DelaunayGraph_2::is_valid | ( | bool | verbose = false ) |
Checks the validity of the Delaunay graph.
If verbose
is true
a short message is sent to std::cerr
.
void DelaunayGraph_2::swap | ( | DelaunayGraph_2 | other) |
The Delaunay graphs other
and dg
are swapped.
dg
.swap(other)
should be preferred to dg
= other
or to dg
(other)
if other
is deleted afterwards.