/// \defgroup PkgTriangulation2Ref Reference Manual
/// \defgroup PkgTriangulation2Concepts Concepts
/// \ingroup PkgTriangulation2Ref

/// \defgroup PkgTriangulation2TriangulationClasses Triangulation Classes
/// \ingroup PkgTriangulation2Ref


/// \defgroup PkgTriangulation2VertexFaceClasses Vertex and Face Classes
/// \ingroup PkgTriangulation2Ref


/// \defgroup PkgTriangulation2Miscellaneous Miscellaneous
/// \ingroup PkgTriangulation2Ref

/*!
\cgalInclude{CGAL/draw_triangulation_2.h}
*/
/// \defgroup PkgDrawTriangulation2 Draw a Triangulation 2
/// \ingroup PkgTriangulation2Ref

/*!
\cgalInclude{CGAL/draw_constrained_triangulation_2.h}
*/
/// \defgroup PkgDrawConstrainedTriangulation2 Draw a Constrained Triangulation 2
/// \ingroup PkgTriangulation2Ref

/*!
\addtogroup PkgTriangulation2Ref
\cgalPkgDescriptionBegin{2D Triangulations,PkgTriangulation2}
\cgalPkgPicture{cdt2d-small.png}
\cgalPkgSummaryBegin
\cgalPkgAuthor{Mariette Yvinec}
\cgalPkgDesc{This package  allows to build and handle various triangulations for point sets two dimensions. Any \cgal triangulation covers the convex hull of its vertices. Triangulations are built incrementally  and can be modified by insertion  or removal  of vertices.  They offer point location facilities.  The package provides plain triangulation (whose faces depend on the insertion order of the vertices) and Delaunay triangulations. Regular triangulations are also provided for sets of weighted points. Delaunay and regular triangulations offer nearest neighbor queries and primitives to build the dual Voronoi and power diagrams.   Finally, constrained and Delaunay constrained triangulations allows to force some constrained segments to appear as edges of the triangulation.  Several versions of constrained and Delaunay constrained triangulations are provided: some of them handle intersections between input constraints segment while others do not. }
\cgalPkgManuals{Chapter_2D_Triangulations,PkgTriangulation2Ref}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{0.9}
\cgalPkgDependsOn{\ref PkgTDS2}
\cgalPkgBib{cgal:y-t2}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{Delaunay Triangulation,delaunay_triangulation_2.zip,Regular Triangulation,regular_triangulation_2.zip,Constrained Delaunay Triangulation,constrained_delaunay_triangulation_2.zip}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

A triangulation is a 2-dimensional simplicial complex which is pure
connected and without singularities. Thus a triangulation
can be viewed as a collection of triangular faces,
such that two faces either have an empty intersection or share an edge or a vertex.

The basic elements of the representation are vertices and faces.
Each triangular face gives access to its three incident vertices
and to its three adjacent faces.
Each vertex gives access to one of its incident faces
and through that face to the circular list of its incident faces.
The edges are not explicitly represented, they are only represented
through the adjacency relations of two faces.

The triangulation classes of \cgal depend on two template parameters.
The first template parameter stands for
 a geometric traits class which is assumed to provide
the geometric objects (points, segments and triangles)
forming  the triangulation and the geometric predicates on those objects.
The second template parameter stands for a model
of  triangulation data
structure acting as a container for faces and vertices
while  taking care of the combinatorial aspects of the triangulation.
The concepts and models relative to the triangulation data structure
are described in Chapter \ref PkgTDS2Ref "2D Triangulation Data Structure".

\cgalClassifedRefPages

\cgalCRPSection{Concepts}
- `TriangulationTraits_2`
- `DelaunayTriangulationTraits_2`
- `RegularTriangulationTraits_2`
- `ConstrainedTriangulationTraits_2`
- `ConstrainedDelaunayTriangulationTraits_2`

- `TriangulationFaceBase_2`
- `TriangulationVertexBase_2`
- `ConstrainedTriangulationFaceBase_2`
- `RegularTriangulationFaceBase_2`
- `RegularTriangulationVertexBase_2`
- `TriangulationHierarchyVertexBase_2`
- `TriangulationVertexBaseWithInfo_2`

\cgalCRPSection{Classes}

- `CGAL::Triangulation_2<Traits,Tds>`
- `CGAL::Delaunay_triangulation_2<Traits,Tds>`
- `CGAL::Regular_triangulation_2<Traits,Tds>`
- `CGAL::Constrained_triangulation_2<Traits,Tds,Itag>`
- `CGAL::Constrained_Delaunay_triangulation_2<Traits,Tds,Itag>`
- `CGAL::Constrained_triangulation_plus_2<Tr>`
- `CGAL::Triangulation_hierarchy_2<Tr>`

- `CGAL::Triangulation_face_base_2<Traits,Fb>`
- `CGAL::Triangulation_vertex_base_2<Traits,Vb>`
- `CGAL::Regular_triangulation_face_base_2<Traits,Fb>`
- `CGAL::Regular_triangulation_vertex_base_2<Traits,Vb>`
- `CGAL::Constrained_triangulation_face_base_2<Traits,Fb>`
- `CGAL::Triangulation_vertex_base_with_info_2<Info,Traits,Vb>`
- `CGAL::Triangulation_face_base_with_info_2<Info,Traits,Fb>`
- `CGAL::Triangulation_hierarchy_vertex_base_2<Vb>`

- `CGAL::Triangulation_cw_ccw_2`

\cgalCRPSection{Functions}

- `CGAL::mark_domain_in_triangulation()`

\cgalCRPSection{Enum}
- \link CGAL::Triangulation_2::Locate_type `CGAL::Triangulation_2<Traits,Tds>::Locate_type` \endlink

\cgalCRPSection{Draw a Triangulation 2}
- \link PkgDrawTriangulation2 CGAL::draw<T2>() \endlink

*/

