\( \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.4 - 3D Mesh Generation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Implicit_mesh_domain_3< Function, BGT > Class Template Reference

#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
Functionprovides 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.
BGTis 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.