TTK
Loading...
Searching...
No Matches
TrackingFromPersistenceDiagrams.h
Go to the documentation of this file.
1
5#pragma once
6
7// base code includes
9#include <Geometry.h>
10#include <set>
11
12namespace ttk {
13
14 using trackingTuple = std::tuple<int, int, std::vector<SimplexId>>;
15
16 class TrackingFromPersistenceDiagrams : virtual public Debug {
17
18 public:
20
23 int execute();
24
26 int i,
27 std::vector<ttk::DiagramType> &inputPersistenceDiagrams,
28 std::vector<std::vector<MatchingType>> &outputMatchings,
29 const std::string &algorithm,
30 const std::string &wasserstein,
31 double tolerance,
32 double px,
33 double py,
34 double pz,
35 double ps,
36 double pe);
37
38 int
39 performMatchings(int numInputs,
40 std::vector<ttk::DiagramType> &inputPersistenceDiagrams,
41 std::vector<std::vector<MatchingType>> &outputMatchings,
42 const std::string &algorithm,
43 const std::string &wasserstein,
44 double tolerance,
45 double px,
46 double py,
47 double pz,
48 double ps,
49 double pe);
50
51 int performTracking(std::vector<ttk::DiagramType> &allDiagrams,
52 std::vector<std::vector<MatchingType>> &allMatchings,
53 std::vector<trackingTuple> &trackings);
54
55 int performPostProcess(const std::vector<ttk::DiagramType> &allDiagrams,
56 const std::vector<trackingTuple> &trackings,
57 std::vector<std::set<int>> &trackingTupleToMerged,
58 const double postProcThresh);
59
65 inline int setInputDataPointer(int idx, void *data) {
66 if(idx < numberOfInputs_)
67 inputData_[idx] = data;
68 else
69 return -1;
70 return 0;
71 }
72
75 inline void setNumberOfInputs(int numberOfInputs) {
76 numberOfInputs_ = numberOfInputs;
77 }
78
79 protected:
81 void **inputData_{};
82 };
83} // namespace ttk
Minimalist debugging class.
Definition Debug.h:88
int performSingleMatching(int i, std::vector< ttk::DiagramType > &inputPersistenceDiagrams, std::vector< std::vector< MatchingType > > &outputMatchings, const std::string &algorithm, const std::string &wasserstein, double tolerance, double px, double py, double pz, double ps, double pe)
int performMatchings(int numInputs, std::vector< ttk::DiagramType > &inputPersistenceDiagrams, std::vector< std::vector< MatchingType > > &outputMatchings, const std::string &algorithm, const std::string &wasserstein, double tolerance, double px, double py, double pz, double ps, double pe)
int performTracking(std::vector< ttk::DiagramType > &allDiagrams, std::vector< std::vector< MatchingType > > &allMatchings, std::vector< trackingTuple > &trackings)
int performPostProcess(const std::vector< ttk::DiagramType > &allDiagrams, const std::vector< trackingTuple > &trackings, std::vector< std::set< int > > &trackingTupleToMerged, const double postProcThresh)
The Topology ToolKit.
std::tuple< int, int, std::vector< SimplexId > > trackingTuple