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.
 
A type for sizes.
 
 
A type for the geometric traits associated
with the Delaunay graph.
 
 
A type for the underlying
triangulation data structure. It must be a model of the concept
TriangulationDataStructure_2.
 
 
A type for the vertices of the Delaunay graph.
 
 
A type for the faces of the Delaunay graph.

 
 The type of the edges of the Delaunay graph. 
 
Handle to the vertices of the Delaunay graph.
 
 
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.
 
A type for an iterator over all edges of
the Delaunay graph. Its value type must be Edge.
 
 
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 all faces of
the Delaunay graph. Its value type must be Face.
 
 
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 all
vertices of the Delaunay graph. Its value type must be Vertex.
 
 
A type for an iterator over
the finite vertices of the Delaunay graph. Its value type must be
Vertex.
 
 
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 a circulator over the
adjacent vertices of a vertex 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.

 
Constructor that takes an instance of the geometric traits.
 
 
 
Constructor that takes an iterator range. The value type of the
iterator must be the type of the sites of the Delaunay graph.
 
 
 
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.

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.
The following iterators must allow, respectively, to visit finite faces, finite edges and finite vertices of the Delaunay graph. These iterators must be nonmutable, bidirectional and their value types are respectively Face, Edge and Vertex.
The following iterators must allow, respectively, to visit all (both finite and infinite) faces, edges and vertices of the Delaunay graph. These iterators are nonmutable, bidirectional and their value types are respectively Face, Edge and Vertex.
A model of the DelaunayGraph_2 concept must also provide circulators that allow to visit, respectively, all faces or edges incident to a given vertex or all vertices adjacent to a given vertex. These circulators are nonmutable and bidirectional. The operator operator++ must move the circulator counterclockwise around the vertex while the operator must move the circulator clockwise.

 
Checks the validity of the Delaunay graph. If verbose is true a short message is sent to std::cerr. 