# 3D Surface Mesh Generation

*Reference Manual*

*Laurent Rineau
and Mariette Yvinec*

The surface mesh generation package offers a function template
which builds a triangular mesh approximating a surface.

The meshing algorithms requires to know the surface to be meshed
through an oracle that mainly can tell whether a
given segment, ray or line intersects the surface or not
and can compute the compute the
intersections point if any. The oracle is represented by a traits class
which can be passed to the meshing function
or automatically generated for certain types of surfaces.
The current implementation provides
traits classes
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 *SurfaceMeshCriteria_3*.

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.

## 35.6 Classified Reference Pages

### Concepts

*SurfaceMeshComplex_2InTriangulation_3*

*SurfaceMeshTraits_3*

*SurfaceMeshCriteria_3*

*SurfaceMeshCellBase_3*

*SurfaceMeshVertexBase_3*

*SurfaceMeshTriangulation_3*

*ImplicitFunction*

*ImplicitSurfaceTraits_3*

### Classes

*CGAL::Surface_mesh_complex_2_in_triangulation_3<Tr>*

*CGAL::Surface_mesh_vertex_base_3<Gt,Vb>*

*CGAL::Surface_mesh_cell_base_3<Gt,Cb>*

*CGAL::Surface_mesh_default_criteria_3<Tr>*

*CGAL::Surface_mesh_default_triangulation_3*

*CGAL::Surface_mesh_traits_generator_3<Surface>*

*CGAL::Implicit_surface_3<Traits, Function>*

*CGAL::Gray_level_image_3<FT, Point>*

### Tag Classes

*CGAL::Manifold_tag*

*CGAL::Manifold_with_boundary_tag*

*CGAL::Non_manifold_tag*

### Function Templates

*CGAL::make_surface_mesh*

## 35.7 Alphabetical List of Reference Pages