TTK
Loading...
Searching...
No Matches
RipsPersistenceGenerators.h
Go to the documentation of this file.
1
15
16#pragma once
17
18// ttk common includes
19#include <Debug.h>
20
21#include <PairCellsWithOracle.h>
22
23namespace ttk {
24
25 class RipsPersistenceGenerators : virtual public Debug {
26 public:
28 void execute(const std::vector<std::vector<double>> &points,
30 std::vector<rpd::Generator1> &generators) const {
34 points, diagrams, InputIsDistanceMatrix, false);
36 pc.run();
37 if(!OutputCascade)
38 pc.getGenerators(generators);
39 else {
40 rpd::EdgeSets4 criticalAndCascade;
41 pc.getCascades(criticalAndCascade);
42 generators.emplace_back(
43 criticalAndCascade[rpd::DEATH0], std::make_pair(0., 0.));
44 generators.emplace_back(
45 criticalAndCascade[rpd::BIRTH1], std::make_pair(1., 1.));
46 generators.emplace_back(
47 criticalAndCascade[rpd::DEATH1], std::make_pair(2., 2.));
48 generators.emplace_back(
49 criticalAndCascade[rpd::CASC1], std::make_pair(3., 3.));
50 }
51 }
52
53 protected:
59 bool OutputCascade{false};
60 };
61
62} // namespace ttk
int debugLevel_
Definition Debug.h:379
virtual int setDebugLevel(const int &debugLevel)
Definition Debug.cpp:147
void execute(const std::vector< std::vector< double > > &points, rpd::MultidimensionalDiagram &diagrams, std::vector< rpd::Generator1 > &generators) const
TTK base class that partially executes on a Rips complex the PairCells persistence algorithm where ne...
void getGenerators(std::vector< Generator1 > &generators) const
void getCascades(std::vector< Cascade > &cascades, EdgeSets3 &critical) const
static void callOracle(const PointCloud &points, MultidimensionalDiagram &oracle, double threshold=inf, bool distanceMatrix=false)
std::array< EdgeSet, 4 > EdgeSets4
constexpr value_t inf
std::vector< Diagram > MultidimensionalDiagram
TTK base package defining the standard types.