Loading...
Searching...
No Matches
Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ > Class Template Reference

Tangential complex data structure. More...

#include <gudhi/Tangential_complex.h>

Classes

struct  Fix_inconsistencies_info
 Type returned by Tangential_complex::fix_inconsistencies_using_perturbation. More...
 
struct  Num_inconsistencies
 Type returned by Tangential_complex::number_of_inconsistent_simplices. More...
 

Public Member Functions

template<typename Point_range >
 Tangential_complex (Point_range points, int intrinsic_dimension, const K &k=K())
 Constructor from a range of points. Points are copied into the instance, and a search data structure is initialized. Note the complex is not computed: compute_tangential_complex must be called after the creation of the object. More...
 
 ~Tangential_complex ()
 Destructor.
 
int intrinsic_dimension () const
 Returns the intrinsic dimension of the manifold.
 
int ambient_dimension () const
 Returns the ambient dimension.
 
Point get_point (std::size_t vertex) const
 Returns the point corresponding to the vertex given as parameter. More...
 
Point get_perturbed_point (std::size_t vertex) const
 Returns the perturbed position of the point corresponding to the vertex given as parameter. More...
 
std::size_t number_of_vertices () const
 Returns the number of vertices.
 
void compute_tangential_complex ()
 Computes the tangential complex. More...
 
Fix_inconsistencies_info fix_inconsistencies_using_perturbation (double max_perturb, double time_limit=-1.)
 Attempts to fix inconsistencies by perturbing the point positions. More...
 
Num_inconsistencies number_of_inconsistent_simplices (bool verbose=false) const
 
template<typename Simplex_tree_ >
int create_complex (Simplex_tree_ &tree, bool export_inconsistent_simplices=true) const
 Exports the complex into a Simplex_tree. More...
 
void set_max_squared_edge_length (FT max_squared_edge_length)
 Sets the maximal possible squared edge length for the edges in the triangulations. More...
 

Detailed Description

template<typename Kernel_, typename DimensionTag, typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
class Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >

Tangential complex data structure.

The class Tangential_complex represents a tangential complex. After the computation of the complex, an optional post-processing called perturbation can be run to attempt to remove inconsistencies.

Template Parameters
Kernel_requires a CGAL::Epick_d class, which can be static if you know the ambiant dimension at compile-time, or dynamic if you don't.
DimensionTagcan be either Dimension_tag<d> if you know the intrinsic dimension at compile-time, or CGAL::Dynamic_dimension_tag if you don't.
Concurrency_tagenables sequential versus parallel computation. Possible values are CGAL::Parallel_tag (the default) and CGAL::Sequential_tag.
Triangulation_is the type used for storing the local regular triangulations. We highly recommend to use the default value (CGAL::Regular_triangulation).
Examples
example_basic.cpp, and example_with_perturb.cpp.

Constructor & Destructor Documentation

◆ Tangential_complex()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
template<typename Point_range >
Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::Tangential_complex ( Point_range  points,
int  intrinsic_dimension,
const K &  k = K() 
)
inline

Constructor from a range of points. Points are copied into the instance, and a search data structure is initialized. Note the complex is not computed: compute_tangential_complex must be called after the creation of the object.

Parameters
[in]pointsRange of points (Point_range::value_type must be the same as Kernel_::Point_d).
[in]intrinsic_dimensionIntrinsic dimension of the manifold.
[in]kKernel instance.

Member Function Documentation

◆ compute_tangential_complex()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
void Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::compute_tangential_complex ( )
inline

Computes the tangential complex.

Exceptions
std::invalid_argumentIn debug mode, if the computed star dimension is too low. Try to set a bigger maximal edge length value with Tangential_complex::set_max_squared_edge_length if this happens.
Examples
example_basic.cpp, and example_with_perturb.cpp.

◆ create_complex()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
template<typename Simplex_tree_ >
int Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::create_complex ( Simplex_tree_ &  tree,
bool  export_inconsistent_simplices = true 
) const
inline

Exports the complex into a Simplex_tree.

Template Parameters
Simplex_tree_must be a Simplex_tree.
Parameters
[out]treeThe result, where each Vertex_handle is the index of the corresponding point in the range provided to the constructor (it can also be retrieved through the Tangential_complex::get_point function.
[in]export_inconsistent_simplicesAlso export inconsistent simplices or not?
Returns
The maximal dimension of the simplices.
Examples
example_basic.cpp, and example_with_perturb.cpp.

◆ fix_inconsistencies_using_perturbation()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
Fix_inconsistencies_info Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::fix_inconsistencies_using_perturbation ( double  max_perturb,
double  time_limit = -1. 
)
inline

Attempts to fix inconsistencies by perturbing the point positions.

Parameters
[in]max_perturbMaximum length of the translations used by the perturbation.
[in]time_limitTime limit in seconds. If -1, no time limit is set.
Examples
example_with_perturb.cpp.

◆ get_perturbed_point()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
Point Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::get_perturbed_point ( std::size_t  vertex) const
inline

Returns the perturbed position of the point corresponding to the vertex given as parameter.

Parameters
[in]vertexVertex handle of the point to retrieve.
Returns
The perturbed position of the point found.

◆ get_point()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
Point Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::get_point ( std::size_t  vertex) const
inline

Returns the point corresponding to the vertex given as parameter.

Parameters
[in]vertexVertex handle of the point to retrieve.
Returns
The point found.

◆ number_of_inconsistent_simplices()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
Num_inconsistencies Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::number_of_inconsistent_simplices ( bool  verbose = false) const
inline

Returns the number of inconsistencies

Parameters
[in]verboseIf true, outputs a message into std::cerr.
Examples
example_basic.cpp.

◆ set_max_squared_edge_length()

template<typename Kernel_ , typename DimensionTag , typename Concurrency_tag = CGAL::Parallel_tag, typename Triangulation_ = CGAL::Default>
void Gudhi::tangential_complex::Tangential_complex< Kernel_, DimensionTag, Concurrency_tag, Triangulation_ >::set_max_squared_edge_length ( FT  max_squared_edge_length)
inline

Sets the maximal possible squared edge length for the edges in the triangulations.

Parameters
[in]max_squared_edge_lengthMaximal possible squared edge length.

If the maximal edge length value is too low Tangential_complex::compute_tangential_complex will throw an exception in debug mode.


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