Loading...
Searching...
No Matches
Gudhi::coxeter_triangulation::Manifold_tracing< Triangulation_ > Class Template Reference
Coxeter triangulation

A class that assembles methods for manifold tracing algorithm. More...

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

## Public Types

typedef std::unordered_map< Simplex_handle, Eigen::VectorXd, Simplex_hash > | Out_simplex_map
| Type of the output simplex map with keys of type Triangulation_::Simplex_handle and values of type Eigen::VectorXd. This type should be used for the output in the method manifold_tracing_algorithm.

## Public Member Functions

template<class Point_range, class Intersection_oracle>
void | manifold_tracing_algorithm (const Point_range &seed_points, const Triangulation_ &triangulation, const Intersection_oracle &oracle, Out_simplex_map &out_simplex_map)
| Computes the set of k-simplices that intersect a boundaryless implicit manifold given by an intersection oracle, where k is the codimension of the manifold. The computation is based on the seed propagation — it starts at the given seed points and then propagates along the manifold.
template<class Point_range, class Intersection_oracle>
void | manifold_tracing_algorithm (const Point_range &seed_points, const Triangulation_ &triangulation, const Intersection_oracle &oracle, Out_simplex_map &interior_simplex_map, Out_simplex_map &boundary_simplex_map)
| Computes the set of k-simplices that intersect the dimensional manifold given by an intersection oracle, where k is the codimension of the manifold. The computation is based on the seed propagation — it starts at the given seed points and then propagates along the manifold.
| Manifold_tracing ()
| Empty constructor.

## Detailed Description

template<class Triangulation_>
class Gudhi::coxeter_triangulation::Manifold_tracing< Triangulation_ >

A class that assembles methods for manifold tracing algorithm.

Template Parameters

  Triangulation_ | The type of the ambient triangulation. Needs to be a model of the concept TriangulationForManifoldTracing.

Examples
  cell_complex_from_basic_circle_manifold.cpp, manifold_tracing_custom_function.cpp, and manifold_tracing_flat_torus_with_boundary.cpp.

## Member Function Documentation

## manifold_tracing_algorithm() [1/2]

template<class Triangulation_>
template<class Point_range, class Intersection_oracle>

void Gudhi::coxeter_triangulation::Manifold_tracing< Triangulation_ >::manifold_tracing_algorithm | ( | const Point_range & | seed_points,
|  | const Triangulation_ & | triangulation,
|  | const Intersection_oracle & | oracle,
|  | Out_simplex_map & | interior_simplex_map,
|  | Out_simplex_map & | boundary_simplex_map )

inline

Computes the set of k-simplices that intersect the dimensional manifold given by an intersection oracle, where k is the codimension of the manifold. The computation is based on the seed propagation — it starts at the given seed points and then propagates along the manifold.

Template Parameters

  Point_range | Range of points of type Eigen::VectorXd.
  Intersection_oracle | Intersection oracle that represents the manifold. Needs to be a model of the concept IntersectionOracle.

Parameters

  [in] | seed_points | The range of points on the manifold from which the computation begins.
  [in] | triangulation | The ambient triangulation.
  [in] | oracle | The intersection oracle for the manifold. The ambient dimension needs to match the dimension of the triangulation.
  [out] | interior_simplex_map | The output map, where the keys are k-simplices in the input triangulation that intersect the relative interior of the input manifold and the mapped values are the intersection points.
  [out] | boundary_simplex_map | The output map, where the keys are k-simplices in the input triangulation that intersect the boundary of the input manifold and the mapped values are the intersection points.

## manifold_tracing_algorithm() [2/2]

template<class Triangulation_>
template<class Point_range, class Intersection_oracle>

void Gudhi::coxeter_triangulation::Manifold_tracing< Triangulation_ >::manifold_tracing_algorithm | ( | const Point_range & | seed_points,
|  | const Triangulation_ & | triangulation,
|  | const Intersection_oracle & | oracle,
|  | Out_simplex_map & | out_simplex_map )

inline

Computes the set of k-simplices that intersect a boundaryless implicit manifold given by an intersection oracle, where k is the codimension of the manifold. The computation is based on the seed propagation — it starts at the given seed points and then propagates along the manifold.

Template Parameters

  Point_range | Range of points of type Eigen::VectorXd.
  Intersection_oracle | Intersection oracle that represents the manifold. Needs to be a model of the concept IntersectionOracle.

Parameters

  [in] | seed_points | The range of points on the manifold from which the computation begins.
  [in] | triangulation | The ambient triangulation.
  [in] | oracle | The intersection oracle for the manifold. The ambient dimension needs to match the dimension of the triangulation.
  [out] | out_simplex_map | The output map, where the keys are k-simplices in the input triangulation that intersect the input manifold and the mapped values are the intersection points.

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

- include/gudhi/Manifold_tracing.h