/// \defgroup PkgPolyhedronRef Reference Manual
/// \defgroup PkgPolyhedronConcepts Concepts
/// \ingroup PkgPolyhedronRef

/// \defgroup PkgPolyhedronIOFunc I/O Functions
/// \ingroup PkgPolyhedronRef

/*!
\cgalInclude{CGAL/draw_polyhedron.h}
*/
/// \defgroup PkgDrawPolyhedron Draw a Polyhedron 3
/// \ingroup PkgPolyhedronRef

/*!
\addtogroup PkgPolyhedronRef
\cgalPkgDescriptionBegin{3D Polyhedral Surface,PkgPolyhedron}
\cgalPkgPicture{Polyhedron-teaser-small.png}
\cgalPkgSummaryBegin
\cgalPkgAuthor{Lutz Kettner}
\cgalPkgDesc{Polyhedral surfaces in three dimensions are composed of vertices, edges, facets and an incidence relationship on them. The organization beneath is a halfedge data structure, which restricts the class of representable surfaces to orientable 2-manifolds - with and without boundary. If the surface is closed we call it a polyhedron.}
\cgalPkgManuals{Chapter_3D_Polyhedral_Surfaces,PkgPolyhedronRef}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{1.0}
\cgalPkgDependsOn{\ref PkgHalfedgeDS}
\cgalPkgBib{cgal:k-ps}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{CGAL Lab,CGALlab.zip}
\cgalPkgShortInfoEnd
\cgalPkgDescriptionEnd

Polyhedral surfaces in three dimensions are composed of vertices,
edges, facets and an incidence relationship on them. The organization
beneath is a halfedge data structure, which restricts the class of
representable surfaces to orientable 2-manifolds - with and without
boundary. If the surface is closed we call it a <I>polyhedron</I>.

The polyhedral surface is realized as a container class managing
vertices, halfedges, facets with their incidences, and maintaining the
combinatorial integrity of them. Its local types for the vertices,
halfedges and facets are documented separately.  A default traits
class, a default items class and an incremental builder conclude the
references. The polyhedral surface is based on the highly flexible
design of the halfedge data structure, see the reference for
`HalfedgeDS` in Chapter  \ref Chapter_Halfedge_Data_Structures "Halfedge Data Structures"
or \cgalCite{k-ugpdd-99}, but the default instantiation of the polyhedral
surface can be used without knowing the halfedge data structure.

\cgalClassifedRefPages

\cgalCRPSection{Concepts}
- `PolyhedronTraits_3`
- `PolyhedronItems_3`

\cgalCRPSection{Classes}
- `CGAL::Polyhedron_3<Traits>`
- \link CGAL::Polyhedron_3::Vertex `CGAL::Polyhedron_3<Traits>::Vertex` \endlink
- \link CGAL::Polyhedron_3::Halfedge `CGAL::Polyhedron_3<Traits>::Halfedge` \endlink
- \link CGAL::Polyhedron_3::Facet `CGAL::Polyhedron_3<Traits>::Facet` \endlink
- `CGAL::Polyhedron_traits_3<Kernel>`
- `CGAL::Polyhedron_traits_with_normals_3<Kernel>`
- `CGAL::Polyhedron_items_3`
- `CGAL::Polyhedron_min_items_3`
- `CGAL::Polyhedron_incremental_builder_3<HDS>`

\cgalCRPSection{I/O Functions}
- \link PkgPolyhedronIOFunc `CGAL::operator<<()` \endlink
- \link PkgPolyhedronIOFunc `CGAL::operator>>()` \endlink
- \link PkgPolyhedronIOFunc `write_OFF()` \endlink
- \link PkgPolyhedronIOFunc `read_OFF()` \endlink

\cgalCRPSection{Draw a Polyhedron 3}
- \link PkgDrawPolyhedron CGAL::draw<POLY>() \endlink

*/

