\chapter{Surface mesher} \ccChapterAuthor{Andreas Fabri, Steve Oudot, David Rey, Laurent Rineau and Mariette Yvinec} The surface mesher package offers a global function to build a triangular mesh approximating a surface. The surface is described through an oracle that mainly can tell whether a given segment, ray or line intersects the surface or not, and that can compute the intersections point if any. Several implementations of the oracle are provided. They allow to mesh implicit surfaces as well as surfaces described as a gray level in a three dimensional image. The output mesh conforms to some size and shape criteria which are customizable. The criteria are passed to the mesher through a parameter whose type is a model of the concept \ccc{SurfaceMeshCriteria}. The meshing algorithm is a Delaunay refinement process which is mainly guided by the criteria. The output mesh may offer some guarantees, as being manifold, homeomorphic to the surface or within a given Hausdorff distance. However, these guarantees depend on the quality of the input surface (smoothness, with or without boundary, manifold or not), the type and values of the given criteria. The behavior of the refinement process can also be influenced through a tag, which allows for instance to enforce the manifold property of the output mesh while avoiding an over-refinement of the mesh. \subsection*{Concepts} \ccRefConceptPage{SurfaceMeshComplex_2InTriangulation_3}\\ \ccRefConceptPage{SurfaceMeshTraits_3} \\ \ccRefConceptPage{SurfaceMeshCriteria} \\ \ccRefConceptPage{SurfaceMeshCellBase_3} \\ \ccRefConceptPage{SurfaceMeshVertexBase_3} \\ \ccRefConceptPage{ImplicitFunction} \\ \ccRefConceptPage{ImplicitSurfaceTraits_3} \subsection*{Classes} \ccRefIdfierPage{CGAL::Surface_mesh_complex_2_in_triangulation_3} \\ \ccRefIdfierPage{CGAL::Surface_mesh_vertex_base_3} \\ \ccRefIdfierPage{CGAL::Surface_mesh_cell_base_3} \\ \ccRefIdfierPage{CGAL::Surface_mesh_default_criteria} \\ \ccRefIdfierPage{CGAL::Surface_mesh_traits_generator_3} \\ \ccRefIdfierPage{CGAL::Implicit_surface_3} \\ \ccRefIdfierPage{CGAL::Gray_level_image_3} \subsection*{Tag classes} \ccRefIdfierPage{CGAL::Manifold_tag} \\ \ccRefIdfierPage{CGAL::Manifold_with_boundary_tag} \\ \ccRefIdfierPage{CGAL::Non_manifold_tag} \\ \subsection*{Global Functions} \ccRefIdfierPage{CGAL::make_surface_mesh} %\subsection*{Enums} \lcHtml{\subsection*{Links to the Reference Sections}}