\( \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 5.0.1 - 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
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.
See also
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...
 

Constructor & Destructor Documentation

◆ Implicit_multi_domain_to_labeling_function_wrapper() [1/3]

Construction from a vector of implicit functions.

Parameters
implicit_functionsthe 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_functionsthe vector of implicit functions.
position_vectorsthe vector of vector of signs. Each vector of positions describes a component.
See also
Sign

◆ Implicit_multi_domain_to_labeling_function_wrapper() [3/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::string > &  position_strings 
)

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

Parameters
implicit_functionsthe vector of implicit functions.
position_stringsthe vector of strings. The strings contained in this vector must contain '+' or '-' only. Each string (vector of positions) describes a component.