%% Copyright (c) 2004  SciSoft.  All rights reserved.
%%
%% This file is part of CGAL (www.cgal.org); you may redistribute it under
%% the terms of the Q Public License version 1.0.
%% See the file LICENSE.QPL distributed with CGAL.
%%
%% Licensees holding a valid commercial license may use this file in
%% accordance with the commercial license agreement provided with the software.
%%
%% This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
%% WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
%%
%% 
%%
%% Author(s)     : Fernando Cacciola <fernando_cacciola@hotmail.com>

\ccDefGlobalScope{boost::} 
\begin{ccRefClass}{graph_traits< CGAL::Polyhedron_3<Traits> >}

%% add template arg's if necessary

%% \ccHtmlCrossLink{}     %% add further rules for cross referencing links
%% \ccHtmlIndexC[class]{} %% add further index entries
\ccDefinition

The class \ccRefName\ is a partial specialization of \ccc{boost::graph_traits}
for the class \ccc{Polyhedron_3}. It provides the types  associated 
to the 
\ccAnchor{http://www.boost.org/libs/graph/doc/graph_concepts.html}
{graph} concepts 
\ccAnchor{http://www.boost.org/libs/graph/doc/BidirectionalGraph.html}{\ccc{BidirectionalGraph}} and 
\ccAnchor{http://www.boost.org/libs/graph/doc/EdgeAndVertexListGraph.html}{\ccc{EdgeAndVertexListGraph}}.




\ccInclude{CGAL/boost/graph/graph_traits_Polyhedron_3.h}



\ccTypes
  \ccTypedef{typename CGAL::Polyhedron_3::Vertex_handle   vertex_descriptor;}
    {The vertex descriptor.}
  
  \ccTypedef{typename CGAL::Polyhedron_3::Halfedge_handle edge_descriptor;}
    {The edge descriptor.}
  
  \ccNestedType{vertex_iterator;}{An iterator corresponding to \ccc{CGAL::Polyhedron_3::Vertex_iterator},
    with the difference that its value type is a vertex descriptor and not \ccc{CGAL::Polyhedron_3::Vertex}.}{}
  
  \ccNestedType{edge_iterator;}{An iterator corresponding to  \ccc{CGAL::Polyhedron_3::Halfedge_iterator}
    with the difference that its value type is an edge descriptor and not \ccc{CGAL::Polyhedron_3::Halfedge}.}{}
  
  \ccNestedType{in_edge_iterator;}{An edge iterator which only iterates over 
  the incoming edges around a vertex. It corresponds to a
  \ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_circulator}
  with the difference that its value type is an edge descriptor and not \ccc{CGAL::Polyhedron_3::Halfedge}.}{}
  
  \ccNestedType{out_edge_iterator;}{An edge iterator which only iterates over 
  the outgoing halfedges around a vertex. It corresponds to a
  \ccc{CGAL::Polyhedron_3::Halfedge_around_vertex_circulator}
  with the difference that its value type is an edge descriptor and not \ccc{CGAL::Polyhedron_3::Halfedge}.}{}
  
  
  \ccTypedef{boost::disallow_parallel_edge_tag edge_parallel_category;}
  {Indicates that this graph does not support multiedges.}
  
  \ccTypedef{boost::bidirectional_graph_tag  traversal_category;}
    {Indicates that this graph is bidirectional.}
    
  \ccTypedef{typename Polyhedron_3::size_type vertices_size_type;}
    {The size tye of the vertex list.}
    
  \ccTypedef{typename Polyhedron_3::size_type edges_size_type;}
    {The size tye of the edge list.}
    
  \ccTypedef{typename Polyhedron_3::size_type degree_size_type;}
    {The size tye of the adjacency list.}

The const specialization, \ccc{boost::graph_traits< CGAL::Polyhedron_3<Traits> const>} 
is also defined, using the constant handles in the polyhedron.
     
\end{ccRefClass}
\ccDefGlobalScope{CGAL::} 
% +------------------------------------------------------------------------+
%%RefPage: end of main body, begin of footer
% EOF
% +------------------------------------------------------------------------+

