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

#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
Traitsmust 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> >.
Functionmust 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.