CGAL 5.4 - 3D Mesh Generation
CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function > Class Template Reference

#include <CGAL/Implicit_to_labeling_function_wrapper.h>

## Definition

The class Implicit_multi_domain_to_labeling_function_wrapper is a 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.
Labeled_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...

## ◆ Implicit_multi_domain_to_labeling_function_wrapper() [1/3]

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.

## ◆ Implicit_multi_domain_to_labeling_function_wrapper() [2/3]

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.
Sign