|
CGAL 6.0 - 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::Triangulation_hierarchy_2<Tr> provided that Tr is a model of DelaunayGraph_2 CGAL::Delaunay_triangulation_2<Traits,Tds> CGAL::Regular_triangulation_2<Traits,Tds> 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. | |
| 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. | |
| typedef unspecified_type | Finite_edges_iterator |
| A type for an iterator over the finite edges of the Delaunay graph. | |
| typedef unspecified_type | All_faces_iterator |
| A type for an iterator over all faces of the Delaunay graph. | |
| typedef unspecified_type | Finite_faces_iterator |
| A type for an iterator over the finite faces of the Delaunay graph. | |
| typedef unspecified_type | All_vertices_iterator |
| A type for an iterator over all vertices of the Delaunay graph. | |
| typedef unspecified_type | Finite_vertices_iterator |
| A type for an iterator over the finite vertices of the Delaunay graph. | |
| typedef unspecified_type | Face_circulator |
| A type for a circulator over the adjacent faces of a vertex of the Delaunay graph. | |
| typedef unspecified_type | Vertex_circulator |
| A type for a circulator over the adjacent vertices of a vertex of the Delaunay graph. | |
| typedef unspecified_type | Edge_circulator |
| A type for a circulator over the adjacent edges of a vertex of the Delaunay graph. | |
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. | |
| 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. | |
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. | |
| 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. | |
| 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. | |
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. | |
Miscellaneous | |
| void | clear () |
| Clears all contents of the Delaunay graph. | |
| void | swap (DelaunayGraph_2 other) |
The Delaunay graphs other and dg are swapped. | |
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.