\( \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_multi_domain_to_labeling_function_wrapper< Function > Class Template Reference
Domain Classes

`#include <CGAL/Implicit_to_labeling_function_wrapper.h>`

## Definition

The class `Implicit_multi_domain_to_labeling_function_wrapper` is an helping class to get a function with integer values labeling the components of a multi-domain.

The multidomain is described through a set of functions {fi(p), i=1, ...n}. Each component corresponds to a sign vector [s1, s2, ..., sn] where si is the sign of the function fi(p) at a point p of the component. This wrapper class can be passed to `Labeled_mesh_domain_3` as first template parameter.

Example
  For example, the multidomain described by the three functions [f1,f2,f3] and the two sign vectors [-,-,+] and [+,-,+] includes two components.
  The first one matches the locus of points satisfying f1(p)<0 and f2(p)<0 and f3(p)>0.
  The second one matches the locus of points satisfying f1(p)>0 and f2(p)<0 and f3(p)>0.

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.

See Also
  `Implicit_mesh_domain_3`.

Examples:
  Mesh_3/mesh_implicit_domains.cpp, and Mesh_3/mesh_implicit_domains_2.cpp.

## Types
typedef std::vector< Function * > | Function_vector
typedef Function::Point | Point_3

## Creation
| Implicit_multi_domain_to_labeling_function_wrapper (const Function_vector &implicit_functions)
| Construction from a vector of implicit functions. More...
| Implicit_multi_domain_to_labeling_function_wrapper (const Function_vector &implicit_functions, const std::vector< std::vector< Sign > > &position_vectors)
| Construction from a vector of implicit functions and a vector of vector of signs. More...
| Implicit_multi_domain_to_labeling_function_wrapper (const Function_vector &implicit_functions, const std::vector< std::string > &position_strings)
| Construction from a vector of implicit functions and a vector of strings. More...

## Constructor & Destructor Documentation

template<class Function >

CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function >::Implicit_multi_domain_to_labeling_function_wrapper | ( | const Function_vector & | implicit_functions) |  |

Construction from a vector of implicit functions.

Parameters

  implicit_functions | the vector of implicit functions.

Position vectors are built automatically so that the union of components equals the union of the functions.

template<class Function >

CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function >::Implicit_multi_domain_to_labeling_function_wrapper | ( | const Function_vector & | implicit_functions,
|  | const std::vector< std::vector< Sign > > & | position_vectors
| ) |  |

Construction from a vector of implicit functions and a vector of vector of signs.

Parameters

  implicit_functions | the vector of implicit functions.
  position_vectors | the vector of vector of signs. Each vector of positions describes a component.

See Also
  `Sign`

template<class Function >

CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function >::Implicit_multi_domain_to_labeling_function_wrapper | ( | const Function_vector & | implicit_functions,
|  | const std::vector< std::string > & | position_strings
| ) |  |

Construction from a vector of implicit functions and a vector of strings.

Parameters

  implicit_functions | the vector of implicit functions.
  position_strings | the vector of strings. The strings contained in this vector must contain '+' or '-' only. Each string (vector of positions) describes a component.