TTK
Loading...
Searching...
No Matches
ttkPersistenceDiagramDictionary.h
Go to the documentation of this file.
1
22
23#pragma once
24
25// VTK includes
26#include <vtkInformation.h>
27#include <vtkInformationVector.h>
28#include <vtkSetGet.h>
29#include <vtkUnstructuredGrid.h>
30
31// VTK Module
32#include <ttkPersistenceDiagramDictionaryModule.h>
33
34// ttk code includes
35
37#include <ttkAlgorithm.h>
38#include <ttkMacros.h>
39
40class TTKPERSISTENCEDIAGRAMDICTIONARY_EXPORT ttkPersistenceDiagramDictionary
41 : public ttkAlgorithm,
43
44private:
45 int AtomNumber_{3};
46 int Seed_{0};
47 double Percent_{0};
48
49public:
51
53
54 void SetWassersteinMetric(const std::string &data) {
55 Wasserstein = (data == "inf") ? -1 : stoi(data);
56 Modified();
57 }
58 std::string GetWassersteinMetric() {
59 return Wasserstein == -1 ? "inf" : std::to_string(Wasserstein);
60 }
61
62 vtkSetMacro(Percent_, double);
63 vtkGetMacro(Percent_, double);
64
65 vtkSetMacro(OptimizeWeights_, int);
66 vtkGetMacro(OptimizeWeights_, int);
67
68 vtkSetMacro(OptimizeAtoms_, int);
69 vtkGetMacro(OptimizeAtoms_, int);
70
71 vtkSetMacro(MaxEigenValue_, int);
72 vtkGetMacro(MaxEigenValue_, int);
73
74 vtkSetMacro(ProgBarycenter_, int);
75 vtkGetMacro(ProgBarycenter_, int);
76
77 vtkSetMacro(MaxEpoch_, int);
78 vtkGetMacro(MaxEpoch_, int);
79
80 vtkSetMacro(ProgApproach_, int);
81 vtkGetMacro(ProgApproach_, int);
82
83 vtkSetMacro(StopCondition_, int);
84 vtkGetMacro(StopCondition_, int);
85
86 vtkSetMacro(CompressionMode_, int);
87 vtkGetMacro(CompressionMode_, int);
88
89 vtkSetMacro(DimReductMode_, int);
90 vtkGetMacro(DimReductMode_, int);
91
92 vtkSetMacro(CreationFeatures_, int);
93 vtkGetMacro(CreationFeatures_, int);
94
95 vtkSetMacro(AtomNumber_, int);
96 vtkGetMacro(AtomNumber_, int);
97
98 vtkSetMacro(Seed_, int);
99 vtkGetMacro(Seed_, int);
100
102 vtkGetEnumMacro(BackEnd, BACKEND);
103
104 vtkSetMacro(CompressionFactor_, double);
105 vtkGetMacro(CompressionFactor_, double);
106
107 void SetPairType(const int data) {
108 switch(data) {
109 case(0):
110 this->setDos(true, false, false);
111 break;
112 case(1):
113 this->setDos(false, true, false);
114 break;
115 case(2):
116 this->setDos(false, false, true);
117 break;
118 default:
119 this->setDos(true, true, true);
120 break;
121 }
122 Modified();
123 }
125 if(do_min_ && do_sad_ && do_max_) {
126 return -1;
127 } else if(do_min_) {
128 return 0;
129 } else if(do_sad_) {
130 return 1;
131 } else if(do_max_) {
132 return 2;
133 }
134 return -1;
135 }
136
137protected:
140
141 // BACKEND BackEnd{BACKEND::BORDER_INIT};
142 int FillInputPortInformation(int port, vtkInformation *info) override;
143 int FillOutputPortInformation(int port, vtkInformation *info) override;
144
145 int RequestData(vtkInformation *request,
146 vtkInformationVector **inputVector,
147 vtkInformationVector *outputVector) override;
148};
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
TTK processing package for the computation of a Dictionary of Persistence Diagrams and barycentric we...
void SetWassersteinMetric(const std::string &data)
static ttkPersistenceDiagramDictionary * New()
~ttkPersistenceDiagramDictionary() override=default
void setDos(const bool min, const bool sad, const bool max)
#define ttkSetEnumMacro(name, enumType)
Definition ttkMacros.h:38