
namespace CGAL {

/*!
\ingroup PkgTriangulation3VertexCellClasses

The class `Triangulation_cell_base_with_info_3` is a model of the concept 
`TriangulationCellBase_3`, the base cell of a 3D-triangulation. 
It provides an easy way to add some user defined information in cells. 
Note that input/output operators discard this additional information. 


\tparam Info  is the information the user would like to add 
to a cell. It has to be `DefaultConstructible` and `Assignable`. 

\tparam TriangulationTraits_3  is the geometric traits class. 
It is actually not used by this class. 

\tparam TriangulationCellBase_3_ is a cell base class from which 
`Triangulation_cell_base_with_info_3` derives.
It must be a model of the `TriangulationCellBase_3` concept.
It has the default value 
`Triangulation_cell_base_3<TriangulationTraits_3>`. 

\cgalModels `TriangulationCellBase_3`
\cgalModels `TriangulationCellBaseWithInfo_3`

\sa `CGAL::Triangulation_cell_base_3` 
\sa `CGAL::Triangulation_vertex_base_with_info_3` 

*/
template< typename Info, typename TriangulationTraits_3, typename TriangulationCellBase_3_ >
class Triangulation_cell_base_with_info_3 : public TriangulationCellBase_3_ {
public:

/// \name Types 
/// @{

/*!

*/ 
typedef Info Info; 

/// @} 

/// \name Access Functions 
/// @{

/*!
Returns a const reference to the object of type `Info` stored in the cell. 
*/ 
const Info& info() const; 

/*!
Returns a reference to the object of type `Info` stored in the cell. 
*/ 
Info & info(); 

/// @}

}; /* end Triangulation_cell_base_with_info_3 */
} /* end namespace CGAL */
