Loading...
Searching...
No Matches
Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ > Class Template Reference
Coxeter triangulation

An oracle that supports the intersection query on an implicit manifold. More...

`#include <include/gudhi/Implicit_manifold_intersection_oracle.h>`

## Public Member Functions

std::size_t | amb_d () const
| Ambient dimension of the implicit manifold.
std::size_t | cod_d () const
| Codimension of the implicit manifold.
Eigen::VectorXd | seed () const
| The seed point of the implicit manifold.
template<class Simplex_handle, class Triangulation>
Query_result< Simplex_handle > | intersects (const Simplex_handle &simplex, const Triangulation &triangulation) const
| Intersection query with the relative interior of the manifold.
template<class Simplex_handle, class Triangulation>
Query_result< Simplex_handle > | intersects_boundary (const Simplex_handle &simplex, const Triangulation &triangulation) const
| Intersection query with the boundary of the manifold.
template<class Triangulation>
bool | lies_in_domain (const Eigen::VectorXd &p, const Triangulation &triangulation) const
| Returns true if the input point lies inside the piecewise-linear domain induced by the given ambient triangulation that defines the relative interior of the piecewise-linear approximation of the manifold.
const Function_ & | function () const
| Returns the function that defines the interior of the manifold.
| Implicit_manifold_intersection_oracle (const Function_ &function, const Domain_function_ &domain_function)
| Constructs an intersection oracle for an implicit manifold potentially with boundary from given function and domain.
| Implicit_manifold_intersection_oracle (const Function_ &function)
| Constructs an intersection oracle for an implicit manifold without boundary from a given function.

## Detailed Description

template<class Function_, class Domain_function_ = Constant_function>
class Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >

An oracle that supports the intersection query on an implicit manifold.

Template Parameters

  Function_ | The function template parameter. Should be a model of the concept FunctionForImplicitManifold.
  Domain_function_ | The domain function template parameter. Should be a model of the concept FunctionForImplicitManifold.

## Constructor & Destructor Documentation

## Implicit_manifold_intersection_oracle() [1/2]

template<class Function_, class Domain_function_ = Constant_function>

Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >::Implicit_manifold_intersection_oracle | ( | const Function_ & | function,
|  | const Domain_function_ & | domain_function )

inline

Constructs an intersection oracle for an implicit manifold potentially with boundary from given function and domain.

Parameters

  function | The input function that represents the implicit manifold before the restriction with the domain.
  domain_function | The input domain function that can be used to define an implicit manifold with boundary.

## Implicit_manifold_intersection_oracle() [2/2]

template<class Function_, class Domain_function_ = Constant_function>

Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >::Implicit_manifold_intersection_oracle | ( | const Function_ & | function | ) |

inline

Constructs an intersection oracle for an implicit manifold without boundary from a given function.

To use this constructor, the template Domain_function_ needs to be left at its default value (Gudhi::coxeter_triangulation::Constant_function).

Parameters

  function | The input function that represents the implicit manifold without boundary.

## Member Function Documentation

## intersects()

template<class Function_, class Domain_function_ = Constant_function>
template<class Simplex_handle, class Triangulation>

Query_result< Simplex_handle > Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >::intersects | ( | const Simplex_handle & | simplex,
|  | const Triangulation & | triangulation ) const

inline

Intersection query with the relative interior of the manifold.

The returned structure Query_result contains the boolean value that is true only if the intersection point of the query simplex and the relative interior of the manifold exists, the intersection point and the face of the query simplex that contains the intersection point.

Template Parameters

  Simplex_handle | The class of the query simplex. Needs to be a model of the concept SimplexInCoxeterTriangulation.
  Triangulation | The class of the triangulation. Needs to be a model of the concept TriangulationForManifoldTracing.

Parameters

  [in] | simplex | The query simplex. The dimension of the simplex should be the same as the codimension of the manifold (the codomain dimension of the function).
  [in] | triangulation | The ambient triangulation. The dimension of the triangulation should be the same as the ambient dimension of the manifold (the domain dimension of the function).

## intersects_boundary()

template<class Function_, class Domain_function_ = Constant_function>
template<class Simplex_handle, class Triangulation>

Query_result< Simplex_handle > Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >::intersects_boundary | ( | const Simplex_handle & | simplex,
|  | const Triangulation & | triangulation ) const

inline

Intersection query with the boundary of the manifold.

The returned structure Query_result contains the boolean value that is true only if the intersection point of the query simplex and the boundary of the manifold exists, the intersection point and the face of the query simplex that contains the intersection point.

Template Parameters

  Simplex_handle | The class of the query simplex. Needs to be a model of the concept SimplexInCoxeterTriangulation.
  Triangulation | The class of the triangulation. Needs to be a model of the concept TriangulationForManifoldTracing.

Parameters

  [in] | simplex | The query simplex. The dimension of the simplex should be the same as the codimension of the boundary of the manifold (the codomain dimension of the function + 1).
  [in] | triangulation | The ambient triangulation. The dimension of the triangulation should be the same as the ambient dimension of the manifold (the domain dimension of the function).

## lies_in_domain()

template<class Function_, class Domain_function_ = Constant_function>
template<class Triangulation>

bool Gudhi::coxeter_triangulation::Implicit_manifold_intersection_oracle< Function_, Domain_function_ >::lies_in_domain | ( | const Eigen::VectorXd & | p,
|  | const Triangulation & | triangulation ) const

inline

Returns true if the input point lies inside the piecewise-linear domain induced by the given ambient triangulation that defines the relative interior of the piecewise-linear approximation of the manifold.

Parameters

  p | The input point. Needs to have the same dimension as the ambient dimension of the manifold (the domain dimension of the function).
  triangulation | The ambient triangulation. Needs to have the same dimension as the ambient dimension of the manifold (the domain dimension of the function).

The documentation for this class was generated from the following file:

- include/gudhi/Implicit_manifold_intersection_oracle.h