\( \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 Mesh Generation

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

`#include <CGAL/Implicit_mesh_domain_3.h>`

## Definition

The class `Implicit_mesh_domain_3` implements a domain whose bounding surface is described implicitly as the zero level set of a function.

The domain to be discretized is assumed to be the domain where the function has negative values. This class is a model of the concept `MeshDomain_3`.

Template Parameters

  Function | provides the definition of the function. This parameter stands for a model of the concept `ImplicitFunction` described in the surface mesh generation package. The number types `Function::FT` and `BGT::FT` are required to match.
  BGT | is a geometric traits which provides the basic operations to implement intersection tests and computations through a bisection method. This parameter must be instantiated with a model of the concept `BisectionGeometricTraits_3`.

The constructor of `Implicit_mesh_domain_3` takes as argument a bounding sphere which is required to circumscribe the surface and to have its center inside the domain. This domain constructs intersection points between the surface and segments/rays/lines by bisection. It needs an `error_bound` such that the bisection process is stopped when the query segment is smaller than the error bound. The `error_bound` passed as argument to the domain constructor is a relative error bound expressed as a ratio to the bounding sphere radius.

Is Model Of:
  `MeshDomain_3`

See Also
  `BisectionGeometricTraits_3`
  `CGAL::make_mesh_3()`.

Examples:
  Mesh_3/mesh_implicit_ellipsoid.cpp, Mesh_3/mesh_implicit_sphere.cpp, Mesh_3/mesh_implicit_sphere_variable_size.cpp, and Mesh_3/mesh_two_implicit_spheres_with_balls.cpp.

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

## Constructor & Destructor Documentation

template<typename Function , typename BGT >

CGAL::Implicit_mesh_domain_3< Function, BGT >::Implicit_mesh_domain_3 | ( | Function | f,
|  | BGT::Sphere_3 | bounding_sphere,
|  | BGT::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 value of `f` at the sphere center `c` must be negative: \( f(c)<0\).

`error_bound` is the relative error bound used to compute intersection points between the implicit surface and query segments. The bisection is stopped when the length of the intersected segment is less than the product of `error_bound` by the radius of `bounding_sphere`.