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

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.
| ~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.
Point | get_perturbed_point (std::size_t vertex) const
| Returns the perturbed position of the point corresponding to the vertex given as parameter.
std::size_t | number_of_vertices () const
| Returns the number of vertices.
void | compute_tangential_complex ()
| Computes the tangential complex.
Fix_inconsistencies_info | fix_inconsistencies_using_perturbation (double max_perturb, double time_limit=-1.)
| Attempts to fix inconsistencies by perturbing the point positions.
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.
void | set_max_squared_edge_length (FT max_squared_edge_length)
| Sets the maximal possible squared edge length for the edges in the triangulations.

## 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.
  DimensionTag | can be either Dimension_tag<d> if you know the intrinsic dimension at compile-time, or CGAL::Dynamic_dimension_tag if you don't.
  Concurrency_tag | enables 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] | points | Range of points (Point_range::value_type must be the same as Kernel_::Point_d).
  [in] | intrinsic_dimension | Intrinsic dimension of the manifold.
  [in] | k | Kernel 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_argument | In 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.

## 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] | tree | The 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_simplices | Also export inconsistent simplices or not?

Returns
  The maximal dimension of the simplices.

## 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_perturb | Maximum length of the translations used by the perturbation.
  [in] | time_limit | Time limit in seconds. If -1, no time limit is set.

## 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] | vertex | Vertex 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] | vertex | Vertex 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] | verbose | If true, outputs a message into std::cerr.

## 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_length | Maximal 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:

- include/gudhi/Tangential_complex.h