\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 3D Surface Mesh Generation

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Implicit_surface_3< Traits, Function > Class Template Reference
Mesh and Domain Classes

`#include <CGAL/Implicit_surface_3.h>`

## Definition

The class `Implicit_surface_3` implements a surface described as the zero level set of a function \( f : \mathbb{R}^3 \longrightarrow \mathbb{R}\).

For this type of surface, the library provides a partial specialization of the surface mesher traits generator: `Surface_mesh_traits_generator_3<Implicit_surface_3<Traits, Function> >`, that provides a traits class, model of the concept `SurfaceMeshTraits_3`, to be used by the surface mesher.

Template Parameters

  Traits | must be a geometric traits class that must be a model of `ImplicitSurfaceTraits_3`. That concept defines all the types, predicates and constructors that the `Traits` has to provide to implement the surface mesh traits `Surface_mesh_traits_generator_3<Implicit_surface_3<Traits, Function> >`.
  Function | must be a of the concept `ImplicitFunction`.

The number type `Function::FT` has to match the type `Traits::FT`.

Is Model Of:
  `Surface_3`

See Also
  `make_surface_mesh`
  `Surface_mesh_traits_generator_3<Surface>`
  `ImplicitSurfaceTraits_3`
  `ImplicitFunction`

Examples:
  Surface_mesher/mesh_a_3d_gray_image.cpp, and Surface_mesher/mesh_an_implicit_function.cpp.

## Creation
| Implicit_surface_3 (Function f, Sphere_3 bounding_sphere, FT error_bound=FT(1e-3))
| `f` is the object of type `Function` that represents the implicit surface. More...

## Constructor & Destructor Documentation

template<typename Traits , typename Function >

CGAL::Implicit_surface_3< Traits, Function >::Implicit_surface_3 | ( | Function | f,
|  | Sphere_3 | bounding_sphere,
|  | FT | error_bound = `FT(1e-3)`
| ) |  |

`f` is the object of type `Function` that represents the implicit surface.

`bounding_sphere` is a bounding sphere of the implicit surface. The evaluation of `f` at the center `c` of this sphere must be negative: \( f(c)<0\).

`error_bound` is a relative error bound used to compute intersection points between the implicit surface and query segments. This bound is used in the default generated traits class. In this traits class, the intersection points between the surface and segments/rays/line are constructed by dichotomy. The dichotomy is stopped when the size of the intersected segment is less than the product of `error_bound` by the radius of `bounding_sphere`.