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

CGAL 6.2 - 3D Mesh Generation

Loading...
Searching...
No Matches
List of all members
CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function > Class Template Reference
Reference Manual » Domain Classes

`#include <CGAL/Implicit_to_labeling_function_wrapper.h>`

## Definition

template<class Function>
class CGAL::Implicit_multi_domain_to_labeling_function_wrapper< Function >

The class `Implicit_multi_domain_to_labeling_function_wrapper` is a helper class to get a function with integer values labeling the components of a multidomain.

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 the template constructor `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 `Labeled_mesh_domain_3::FT` are required to match.

See also
  `CGAL::Labeled_mesh_domain_3`.

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

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

## Creation
| 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.
| Implicit_multi_domain_to_labeling_function_wrapper (const Function_vector &implicit_functions)
| Construction from a vector of implicit functions.
| 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.

## Constructor & Destructor Documentation

## ◆ 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,
|  | 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`

## ◆ 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 | ) |

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() [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_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.