/// \defgroup PkgVoronoiDiagram2Ref 2D Voronoi Diagram Adaptor Reference
/// \defgroup PkgVoronoiDiagram2Concepts Concepts
/// \ingroup PkgVoronoiDiagram2Ref

/// \defgroup PkgVoronoiDiagram2Points Voronoi Diagram of Points
/// \ingroup PkgVoronoiDiagram2Ref


/// \defgroup PkgVoronoiDiagram2Segments Voronoi Diagram of Segments
/// \ingroup PkgVoronoiDiagram2Ref

/// \defgroup PkgVoronoiDiagram2Disks Voronoi Diagram of Disks
/// \ingroup PkgVoronoiDiagram2Ref

/*!
\cgalInclude{CGAL/draw_voronoi_diagram_2.h}
*/
/// \defgroup PkgDrawVoronoiDiagram2 Draw a 2D Voronoi Diagram
/// \ingroup PkgVoronoiDiagram2Ref

/*!
\addtogroup PkgVoronoiDiagram2Ref
\todo check generated documentation
\cgalPkgDescriptionBegin{2D Voronoi Diagram Adaptor,PkgVoronoiDiagram2}
\cgalPkgPicture{voronoi.png}
\cgalPkgSummaryBegin
\cgalPkgAuthor{Menelaos Karavelas}
\cgalPkgDesc{The 2D Voronoi diagram adaptor package provides an adaptor that adapts a 2-dimensional triangulated Delaunay graph to the corresponding Voronoi diagram, represented as a doubly connected edge list (DCEL) data structure. The adaptor has the ability to automatically eliminate, in a consistent manner, degenerate features of the Voronoi diagram, that are artifacts of the requirement that Delaunay graphs should be triangulated even in degenerate configurations. Depending on the type of operations that the underlying Delaunay graph supports, the adaptor allows for the incremental or dynamic construction of Voronoi diagrams and can support point location queries. }
\cgalPkgManuals{Chapter_2D_Voronoi_Diagram_Adaptor,PkgVoronoiDiagram2Ref}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{3.2}
\cgalPkgBib{cgal:k-vda2}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{2D Point Voronoi Diagram ,delaunay_triangulation_2.zip,2D Disk Voronoi Diagram,apollonius_graph_2.zip,2D Segment Voronoi Diagram,segment_voronoi_diagram_2.zip}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

\cgal provides the class `CGAL::Voronoi_diagram_2<DG,AT,AP>` for
adapting the various (triangulated) Delaunay graphs to Voronoi
diagrams according to some adaptation policy.
In particular, the class `CGAL::Voronoi_diagram_2<DG,AT,AP>`
provides an API for the duals of (triangulated) Delaunay graphs, that
makes them look like planar subdivisions. The adaptation policy is
responsible for deciding which edges and faces of these duals should
be eliminated. This is especially important when, for instance, we
want to eliminate degenerate features in the Voronoi diagram that are
the result of the fact that Delaunay graphs are always triangulated
and are due to degenerate configurations in the generating data.

The three template parameters must be models of the
`DelaunayGraph_2`, `AdaptationTraits_2` and
`AdaptationPolicy_2` concepts, respectively.
The first concept is related to the Delaunay graphs that are to be
adapted, whereas the second one is responsible for
manipulating/accessing in a unified way the geometry of a specific
Voronoi diagram as well as for performing nearest site queries.
The third template parameter corresponds to the chosen adaptation
policy and provides the necessary types and functors needed for
performing this adaptation.

\cgalClassifedRefPages

\cgalCRPSection{Concepts}

- `DelaunayGraph_2`
- `AdaptationTraits_2`
- `AdaptationPolicy_2`

\cgalCRPSection{Classes}

- `CGAL::Voronoi_diagram_2<DG,AT,AP>`
- \link CGAL::Voronoi_diagram_2::Halfedge `CGAL::Voronoi_diagram_2<DG,AT,AP>::Halfedge` \endlink
- \link CGAL::Voronoi_diagram_2::Vertex `CGAL::Voronoi_diagram_2<DG,AT,AP>::Vertex` \endlink
- \link CGAL::Voronoi_diagram_2::Face `CGAL::Voronoi_diagram_2<DG,AT,AP>::Face` \endlink
- `CGAL::Apollonius_graph_adaptation_traits_2<AG2>`
- `CGAL::Delaunay_triangulation_adaptation_traits_2<DT2>`
- `CGAL::Regular_triangulation_adaptation_traits_2<RT2>`
- `CGAL::Segment_Delaunay_graph_adaptation_traits_2<SDG2>`
- `CGAL::Identity_policy_2<DG,AT>`
- `CGAL::Apollonius_graph_degeneracy_removal_policy_2<AG2>`
- `CGAL::Apollonius_graph_caching_degeneracy_removal_policy_2<AG2>`
- `CGAL::Delaunay_triangulation_degeneracy_removal_policy_2<DT2>`
- `CGAL::Delaunay_triangulation_caching_degeneracy_removal_policy_2<DT2>`
- `CGAL::Regular_triangulation_degeneracy_removal_policy_2<RT2>`
- `CGAL::Regular_triangulation_caching_degeneracy_removal_policy_2<RT2>`
- `CGAL::Segment_Delaunay_graph_degeneracy_removal_policy_2<SDG2>`
- `CGAL::Segment_Delaunay_graph_caching_degeneracy_removal_policy_2<SDG2>`

\cgalCRPSection{Draw Voronoi Diagram}

- \link PkgDrawVoronoiDiagram2 CGAL::draw<VD>() \endlink
- `GraphicsSceneOptionsVoronoiDiagram2`
- `CGAL::Graphics_scene_options_voronoi_2`

*/
