cgal/Surface_mesher/doc_tex/Surface_mesher_ref/intro.tex

69 lines
2.4 KiB
TeX

\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<Tr>} \\
\ccRefIdfierPage{CGAL::Surface_mesh_vertex_base_3<Gt,Vb>} \\
\ccRefIdfierPage{CGAL::Surface_mesh_cell_base_3<Gt,Cb>} \\
\ccRefIdfierPage{CGAL::Surface_mesh_default_criteria<FT>} \\
\ccRefIdfierPage{CGAL::Surface_mesh_traits_generator_3<Surface>} \\
\ccRefIdfierPage{CGAL::Implicit_surface_3<Traits,Func>} \\
\ccRefIdfierPage{CGAL::Gray_level_image_3<Traits>}
\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}}