title: CGAL: Iterate over all vertices of all faces
body: <p>I have a SurfaceMesh in CGAL:</p>
  
  <p><a href="https://doc.cgal.org/latest/Surface_mesh/index.html" rel="nofollow noreferrer">https://doc.cgal.org/latest/Surface_mesh/index.html</a></p>
  
  <p>I understand how to iterate over each face, as is shown in the examples:</p>
  
  <pre><code>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
  typedef Kernel::Point_3                    Point;
  typedef CGAL::Surface_mesh&lt;Point&gt;          Surface_mesh;
  BOOST_FOREACH(boost::graph_traits&lt;Surface_mesh&gt;::face_descriptor fit, faces(mesh)){
    //do something here
  }
  </code></pre>
  
  <p>Here, mesh is a Surface_mesh.  What is not at all clear to me is what a face_descriptor is, and how to use it.  How can one go about accessing the half-edges and vertices of a face when one has a face_descriptor?  In particular, how might one iterate over all vertices of a half-edge, and get their coordinates?</p>