Gudhi::coxeter_triangulation::Manifold_tracing< Triangulation_ > Class Template Reference

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

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.

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_rangeRange of points of type Eigen::VectorXd.
Intersection_oracleIntersection oracle that represents the manifold. Needs to be a model of the concept IntersectionOracle.
Parameters
[in]seed_pointsThe range of points on the manifold from which the computation begins.
[in]triangulationThe ambient triangulation.
[in]oracleThe intersection oracle for the manifold. The ambient dimension needs to match the dimension of the triangulation.
[out]interior_simplex_mapThe 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_mapThe 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_rangeRange of points of type Eigen::VectorXd.
Intersection_oracleIntersection oracle that represents the manifold. Needs to be a model of the concept IntersectionOracle.
Parameters
[in]seed_pointsThe range of points on the manifold from which the computation begins.
[in]triangulationThe ambient triangulation.
[in]oracleThe intersection oracle for the manifold. The ambient dimension needs to match the dimension of the triangulation.
[out]out_simplex_mapThe 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: