/// \defgroup PkgPolyhedron 3D Polyhedral Surface  Reference
/// \defgroup PkgPolyhedronConcepts Concepts
/// \ingroup PkgPolyhedron

/// \defgroup PkgPolyhedronIOFunc I/O Functions
/// \ingroup PkgPolyhedron
/*!
\addtogroup PkgPolyhedron
\todo check generated documentation
\cgalPkgDescriptionBegin{3D Polyhedral Surface,PkgPolyhedronSummary}
\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,PkgPolyhedron}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{1.0}
\cgalPkgDependsOn{\ref PkgHDSSummary}
\cgalPkgBib{cgal:k-ps}
\cgalPkgLicense{\ref licensesGPL "GPL"}
\cgalPkgDemo{Operations on Polyhedra,polyhedron_3.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

## Concepts ##
- `PolyhedronTraits_3`
- `PolyhedronItems_3`

## 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>`

## Functions ##
- \link PkgPolyhedronIOFunc `CGAL::operator<<()` \endlink
- \link PkgPolyhedronIOFunc `CGAL::operator>>()` \endlink
                
*/

