Alpha complex data structure.
More...
|
using | Geom_traits = std::conditional_t< Weighted, CGAL::Regular_triangulation_traits_adapter< Kernel >, Kernel > |
| Geometric traits class that provides the geometric types and predicates needed by the triangulations.
|
|
using | Triangulation = std::conditional_t< Weighted, CGAL::Regular_triangulation< Kernel, TDS >, CGAL::Delaunay_triangulation< Kernel, TDS > > |
| A (Weighted or not) Delaunay triangulation of a set of points in \( \mathbb{R}^D\).
|
|
using | A_kernel_d = Alpha_kernel_d< Kernel, Weighted > |
| CGAL kernel container for computations in function of the weighted or not characteristics.
|
|
using | Sphere = typename A_kernel_d::Sphere |
| Sphere is a std::pair<Kernel::Point_d, Kernel::FT> (aka. circurmcenter and squared radius). If Weighted, Sphere is a Kernel::Weighted_point_d (aka. circurmcenter and the weight value is the squared radius).
|
|
using | Point_d = typename Geom_traits::Point_d |
| A point, or a weighted point in Euclidean space.
|
|
|
| Alpha_complex (const std::string &off_file_name) |
| Alpha_complex constructor from an OFF file name. More...
|
|
template<typename InputPointRange > |
| Alpha_complex (const InputPointRange &points) |
| Alpha_complex constructor from a list of points. More...
|
|
template<typename InputPointRange , typename WeightRange > |
| Alpha_complex (const InputPointRange &points, WeightRange weights) |
| Alpha_complex constructor from a list of points and weights. More...
|
|
std::size_t | num_vertices () const |
| Returns the number of finite vertices in the triangulation.
|
|
const Point_d & | get_point (std::size_t vertex) const |
| get_point returns the point corresponding to the vertex given as parameter. More...
|
|
template<typename SimplicialComplexForAlpha , typename Filtration_value = typename SimplicialComplexForAlpha::Filtration_value> |
bool | create_complex (SimplicialComplexForAlpha &complex, Filtration_value max_alpha_square=std::numeric_limits< Filtration_value >::infinity(), bool exact=false, bool default_filtration_value=false) |
| Inserts all Delaunay triangulation into the simplicial complex. It also computes the filtration values accordingly to the Create complex algorithm if default_filtration_value is not set. More...
|
|
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
class Gudhi::alpha_complex::Alpha_complex< Kernel, Weighted >
Alpha complex data structure.
The data structure is constructing a CGAL Delaunay triangulation (for more information on CGAL Delaunay triangulation, please refer to the corresponding chapter in page http://doc.cgal.org/latest/Triangulation/) from a range of points or from an OFF file (cf. Points_off_reader).
Please refer to Alpha complex for examples.
The complex is a template class requiring an CGAL::Epeck_d, or an CGAL::Epick_d dD Geometry Kernel [44] from CGAL as template, default value is CGAL::Epeck_d < CGAL::Dynamic_dimension_tag >
- Examples
- Alpha_complex_from_off.cpp, Alpha_complex_from_points.cpp, Fast_alpha_complex_from_off.cpp, Weighted_alpha_complex_from_points.cpp, alpha_complex_persistence.cpp, alpha_rips_persistence_bottleneck_distance.cpp, and custom_persistence_sort.cpp.
◆ Alpha_complex() [1/3]
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
Alpha_complex constructor from an OFF file name.
Uses the Points_off_reader to construct the Delaunay triangulation required to initialize the Alpha_complex.
Duplicate points are inserted once in the Alpha_complex. This is the reason why the vertices may be not contiguous.
- Parameters
-
[in] | off_file_name | OFF file [path and] name. |
◆ Alpha_complex() [2/3]
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
template<typename InputPointRange >
Alpha_complex constructor from a list of points.
The vertices may be not contiguous as some points may be discarded in the triangulation (duplicate points, weighted hidden point, ...).
- Parameters
-
[in] | points | Range of points to triangulate. Points must be in Kernel::Point_d or Kernel::Weighted_point_d. |
The type InputPointRange must be a range for which std::begin and std::end return input iterators on a Kernel::Point_d or Kernel::Weighted_point_d.
◆ Alpha_complex() [3/3]
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
template<typename InputPointRange , typename WeightRange >
Alpha_complex constructor from a list of points and weights.
The vertices may be not contiguous as some points may be discarded in the triangulation (duplicate points, weighted hidden point, ...).
- Parameters
-
[in] | points | Range of points to triangulate. Points must be in Kernel::Point_d. |
[in] | weights | Range of points weights. Weights must be in Kernel::FT. |
The type InputPointRange must be a range for which std::begin and std::end return input iterators on a Kernel::Point_d.
◆ create_complex()
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
template<typename SimplicialComplexForAlpha , typename Filtration_value = typename SimplicialComplexForAlpha::Filtration_value>
Inserts all Delaunay triangulation into the simplicial complex. It also computes the filtration values accordingly to the Create complex algorithm if default_filtration_value is not set.
- Template Parameters
-
- Parameters
-
[in] | complex | SimplicialComplexForAlpha to be created. |
[in] | max_alpha_square | maximum for alpha square value. Default value is + \(\infty\), and there is very little point using anything else since it does not save time. Useless if default_filtration_value is set to true . |
[in] | exact | Exact filtration values computation. Not exact if Kernel is not CGAL::Epeck_d. |
[in] | default_filtration_value | Set this value to true if filtration values are not needed to be computed (will be set to NaN ). Default value is false (which means compute the filtration values). |
- Returns
- true if creation succeeds, false otherwise.
- Precondition
- Delaunay triangulation must be already constructed with dimension strictly greater than 0.
-
The simplicial complex must be empty (no vertices)
Initialization can be launched once.
- Examples
- Alpha_complex_from_points.cpp, and Weighted_alpha_complex_from_points.cpp.
◆ get_point()
template<class Kernel = CGAL::Epeck_d<CGAL::Dynamic_dimension_tag>, bool Weighted = false>
get_point returns the point corresponding to the vertex given as parameter.
- Parameters
-
[in] | vertex | Vertex handle of the point to retrieve. |
- Returns
- The point found.
- Exceptions
-
std::out_of_range | In case vertex is not found (cf. std::vector::at). |
The documentation for this class was generated from the following file: