CGAL 5.0.2 - 3D Surface Mesh Generation
3D Surface Mesh Generation Reference
Laurent Rineau and Mariette Yvinec
This package provides functions to generate surface meshes that interpolate smooth surfaces. The meshing algorithm is based on Delaunay refinement and provides some guarantees on the resulting mesh: the user is able to control the size and shape of the mesh elements and the accuracy of the surface approximation. There is no restriction on the topology and number of components of input surfaces. The surface mesh generator may also be used for non smooth surfaces but without guarantee. Currently, implementations are provided for implicit surfaces described as the zero level set of some function and surfaces described as a gray level set in a three-dimensional image.
Introduced in: CGAL 3.2
Depends on: 3D Triangulations
BibTeX: cgal:ry-smg-20a
Windows Demo: Surface Mesh Generator
Common Demo Dlls: dlls

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 SurfaceMeshFacetsCriteria_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.

## Concepts

• SurfaceMeshComplex_2InTriangulation_3
• SurfaceMeshTraits_3
• SurfaceMeshFacetsCriteria_3
• SurfaceMeshCellBase_3
• SurfaceMeshVertexBase_3
• SurfaceMeshTriangulation_3
• ImplicitFunction
• ImplicitSurfaceTraits_3

## Classes

• CGAL::Surface_mesh_complex_2_in_triangulation_3<Tr, Edge_info = void>
• 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()
• CGAL::output_surface_facets_to_polyhedron()
• CGAL::facets_in_complex_2_to_triangle_mesh()

## Modules

Concepts

Mesh and Domain Classes

Tag Classes

Functions