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

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

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

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.

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