TTK
Loading...
Searching...
No Matches
ttkPersistenceDiagram.h
Go to the documentation of this file.
1
149
150#pragma once
151
152// VTK includes
153#include <vtkDataArray.h>
154#include <vtkUnstructuredGrid.h>
155
156// VTK Module
157#include <ttkPersistenceDiagramModule.h>
158
159// ttk code includes
160#include <PersistenceDiagram.h>
161#include <ttkAlgorithm.h>
162#include <ttkMacros.h>
163
164class TTKPERSISTENCEDIAGRAM_EXPORT ttkPersistenceDiagram
165 : public ttkAlgorithm,
166 protected ttk::PersistenceDiagram {
167
168public:
170
172
173 vtkSetMacro(ForceInputOffsetScalarField, bool);
174 vtkGetMacro(ForceInputOffsetScalarField, bool);
175
176 vtkSetMacro(ShowInsideDomain, bool);
177 vtkGetMacro(ShowInsideDomain, bool);
178
180 vtkGetEnumMacro(BackEnd, BACKEND);
181
182 vtkGetMacro(StartingResolutionLevel, int);
183 vtkSetMacro(StartingResolutionLevel, int);
184
185 vtkGetMacro(StoppingResolutionLevel, int);
186 vtkSetMacro(StoppingResolutionLevel, int);
187
188 vtkGetMacro(IsResumable, bool);
189 vtkSetMacro(IsResumable, bool);
190
191 vtkGetMacro(TimeLimit, double);
192 vtkSetMacro(TimeLimit, double);
193
194 vtkGetMacro(Epsilon, double);
195 vtkSetMacro(Epsilon, double);
196
197 vtkSetMacro(IgnoreBoundary, bool);
198 vtkGetMacro(IgnoreBoundary, bool);
199
200 inline void SetComputeMinSad(const bool data) {
201 this->setComputeMinSad(data);
202 this->dmsDimsCache[0] = data;
203 this->Modified();
204 }
205 inline void SetComputeSadSad(const bool data) {
206 this->setComputeSadSad(data);
207 this->dmsDimsCache[1] = data;
208 this->Modified();
209 }
210 inline void SetComputeSadMax(const bool data) {
211 this->setComputeSadMax(data);
212 this->dmsDimsCache[2] = data;
213 this->Modified();
214 }
215 inline void SetDMSDimensions(const int data) {
216 this->setComputeMinSad(data == 0 ? true : this->dmsDimsCache[0]);
217 this->setComputeSadSad(data == 0 ? true : this->dmsDimsCache[1]);
218 this->setComputeSadMax(data == 0 ? true : this->dmsDimsCache[2]);
219 this->Modified();
220 }
221
222 vtkSetMacro(ClearDGCache, bool);
223 vtkGetMacro(ClearDGCache, bool);
224
225protected:
227
228 int RequestData(vtkInformation *request,
229 vtkInformationVector **inputVector,
230 vtkInformationVector *outputVector) override;
231
232 int FillInputPortInformation(int port, vtkInformation *info) override;
233 int FillOutputPortInformation(int port, vtkInformation *info) override;
234
235private:
236 template <typename scalarType, typename triangulationType>
237 int dispatch(vtkUnstructuredGrid *outputCTPersistenceDiagram,
238 vtkDataArray *const inputScalarsArray,
239 const scalarType *const inputScalars,
240 scalarType *outputScalars,
241 SimplexId *outputOffsets,
242 int *outputMonotonyOffsets,
243 const SimplexId *const inputOrder,
244 const triangulationType *triangulation);
245
246 bool ForceInputOffsetScalarField{false};
247 bool ShowInsideDomain{false};
248 // stores the values of Compute[Min|Sad][Sad|Max] GUI checkboxes
249 // when "All Dimensions" is selected
250 std::array<bool, 3> dmsDimsCache{true, true, true};
251 // clear DiscreteGradient cache after computation
252 bool ClearDGCache{false};
253};
Baseclass of all VTK filters that wrap ttk modules.
Definition: ttkAlgorithm.h:34
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
Definition: ttkAlgorithm.h:390
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
Definition: ttkAlgorithm.h:404
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
Definition: ttkAlgorithm.h:419
TTK VTK-filter for the computation of persistence diagrams.
void SetComputeSadSad(const bool data)
void SetComputeMinSad(const bool data)
void SetDMSDimensions(const int data)
static ttkPersistenceDiagram * New()
void SetComputeSadMax(const bool data)
TTK processing package for the computation of persistence diagrams.
void setComputeSadSad(const bool data)
void setComputeMinSad(const bool data)
void setComputeSadMax(const bool data)
#define ttkSetEnumMacro(name, enumType)
Definition: ttkMacros.h:38