/// \defgroup PkgPeriodic3Triangulation3Ref Reference Manual

/// \defgroup PkgPeriodic3Triangulation3Concepts Concepts
/// \ingroup PkgPeriodic3Triangulation3Ref

/// \defgroup PkgPeriodic3Triangulation3MainClasses Main Classes
/// \ingroup PkgPeriodic3Triangulation3Ref

/// \defgroup PkgPeriodic3Triangulation3TraitsClasses Traits Classes
/// \ingroup PkgPeriodic3Triangulation3Ref

/*!
\addtogroup PkgPeriodic3Triangulation3Ref

\cgalPkgDescriptionBegin{3D Periodic Triangulations,PkgPeriodic3Triangulation3}
\cgalPkgPicture{p3Delaunay3_small.jpg}
\cgalPkgSummaryBegin
\cgalPkgAuthors{Manuel Caroli, Aymeric Pellé, Mael Rouxel-Labbé, and Monique Teillaud}
\cgalPkgDesc{This package allows to build and handle triangulations of point sets
in the three dimensional flat torus. Triangulations are built incrementally and
can be modified by insertion or removal of vertices. They offer point location
facilities. The package provides Delaunay and regular triangulations and offers
nearest neighbor queries and primitives to build the dual Voronoi diagrams.}
\cgalPkgManuals{Chapter_3D_Periodic_Triangulations,PkgPeriodic3Triangulation3Ref}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{3.5}
\cgalPkgDependsOn{\ref PkgTDS3}
\cgalPkgBib{cgal:ct-pt3}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{3D Periodic Delaunay Triangulation,periodic_3_triangulation_3.zip,3D Periodic Lloyd,periodic_3_lloyd.zip}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

The main classes of the 3D Periodic Triangulation package are
`CGAL::Periodic_3_triangulation_3`,
`CGAL::Periodic_3_Delaunay_triangulation_3`,
and `CGAL::Periodic_3_regular_triangulation_3`.
 They contain functionality
to access triangulations and to run queries on
them. `CGAL::Periodic_3_Delaunay_triangulation_3` can construct and
modify Delaunay triangulations, while
`CGAL::Periodic_3_regular_triangulation_3` can do it for weighted Delaunay
triangulations. They take the geometric traits as well
as the triangulation data structure as template parameters.

The geometric traits class of each triangulation class must be a model
of its associated concept, i.e., it must contain all
predicates and constructions that are needed by the
triangulation class.

The package uses `CGAL::Triangulation_data_structure_3` to represent the
triangulation.
A triangulation is stored as a collection of vertices and cells that
are linked together through incidence and adjacency relations. Each
cell gives access to its four incident vertices and to its four
adjacent cells. Each vertex gives access to one of its incident
cells.

The four vertices of a cell are indexed with 0, 1, 2 and 3 in positive
orientation, the positive orientation being defined by the orientation
of the underlying space \f$ \mathbb T_c^3\f$. The neighbors of a cell are
also indexed with 0, 1, 2, 3 in such a way that the neighbor indexed
by \f$ i\f$ is opposite to the vertex with the same index. See
\cgalFigureRef{P3Triangulation3figorient}.

In order to be able to specify the tetrahedra that contain vertices
both inside and outside the original domain we store an additional
offset information in each vertex of a cell. These offsets are models
of the concept `Periodic_3Offset_3`.

\cgalClassifedRefPages

\cgalCRPSection{Concepts}

- `Periodic_3TriangulationTraits_3`
- `Periodic_3DelaunayTriangulationTraits_3`

- `Periodic_3RegularTriangulationTraits_3`

- `TriangulationDataStructure_3`
- `Periodic_3TriangulationDSVertexBase_3`
- `Periodic_3TriangulationDSCellBase_3`

- `Periodic_3RegularTriangulationDSCellBase_3`
- `Periodic_3RegularTriangulationDSVertexBase_3`

- `Periodic_3Offset_3`

\cgalCRPSection{Classes}

\cgalCRPSubsection{Main Classes}

- `CGAL::Periodic_3_triangulation_3<PT,TDS>`
- `CGAL::Periodic_3_Delaunay_triangulation_3<PT,TDS>`

- `CGAL::Periodic_3_regular_triangulation_3<PT,TDS>`

- `CGAL::Periodic_3_triangulation_hierarchy_3<PTr>`
- `CGAL::Periodic_3_triangulation_ds_vertex_base_3<>`
- `CGAL::Periodic_3_triangulation_ds_cell_base_3<>`
- `CGAL::Periodic_3_offset_3`

\cgalCRPSubsection{Traits Classes}

- `CGAL::Periodic_3_triangulation_traits_3<Traits,Periodic_3Offset_3>`
- `CGAL::Periodic_3_Delaunay_triangulation_traits_3<Traits,Periodic_3Offset_3>`
- `CGAL::Periodic_3_regular_triangulation_traits_3<Traits,Periodic_3Offset_3>`

\cgalCRPSection{Enums}

- `CGAL::Periodic_3_triangulation_3::Iterator_type`
- `CGAL::Periodic_3_triangulation_3::Locate_type`

*/

