TTK
Loading...
Searching...
No Matches
ttkPersistenceDiagram.h
Go to the documentation of this file.
1
173
174#pragma once
175
176// VTK includes
177#include <vtkDataArray.h>
178#include <vtkUnstructuredGrid.h>
179
180// VTK Module
181#include <ttkPersistenceDiagramModule.h>
182
183// ttk code includes
184#include <PersistenceDiagram.h>
185#include <ttkAlgorithm.h>
186#include <ttkMacros.h>
187
188class TTKPERSISTENCEDIAGRAM_EXPORT ttkPersistenceDiagram
189 : public ttkAlgorithm,
190 protected ttk::PersistenceDiagram {
191
192public:
194
196
197 vtkSetMacro(ForceInputOffsetScalarField, bool);
198 vtkGetMacro(ForceInputOffsetScalarField, bool);
199
200 vtkSetMacro(ShowInsideDomain, bool);
201 vtkGetMacro(ShowInsideDomain, bool);
202
204 vtkGetEnumMacro(BackEnd, BACKEND);
205
206 vtkGetMacro(StartingResolutionLevel, int);
207 vtkSetMacro(StartingResolutionLevel, int);
208
209 vtkGetMacro(StoppingResolutionLevel, int);
210 vtkSetMacro(StoppingResolutionLevel, int);
211
212 vtkSetMacro(UseTasks, bool);
213 vtkGetMacro(UseTasks, bool);
214
215 vtkGetMacro(IsResumable, bool);
216 vtkSetMacro(IsResumable, bool);
217
218 vtkGetMacro(TimeLimit, double);
219 vtkSetMacro(TimeLimit, double);
220
221 vtkGetMacro(Epsilon, double);
222 vtkSetMacro(Epsilon, double);
223
224 vtkSetMacro(IgnoreBoundary, bool);
225 vtkGetMacro(IgnoreBoundary, bool);
226
227 inline void SetComputeMinSad(const bool data) {
228 this->setComputeMinSad(data);
229 this->dmsDimsCache[0] = data;
230 this->Modified();
231 }
232 inline void SetComputeSadSad(const bool data) {
233 this->setComputeSadSad(data);
234 this->dmsDimsCache[1] = data;
235 this->Modified();
236 }
237 inline void SetComputeSadMax(const bool data) {
238 this->setComputeSadMax(data);
239 this->dmsDimsCache[2] = data;
240 this->Modified();
241 }
242 inline void SetDMSDimensions(const int data) {
243 this->setComputeMinSad(data == 0 ? true : this->dmsDimsCache[0]);
244 this->setComputeSadSad(data == 0 ? true : this->dmsDimsCache[1]);
245 this->setComputeSadMax(data == 0 ? true : this->dmsDimsCache[2]);
246 this->Modified();
247 }
248
249 vtkSetMacro(ClearDGCache, bool);
250 vtkGetMacro(ClearDGCache, bool);
251
252protected:
254
255 int RequestData(vtkInformation *request,
256 vtkInformationVector **inputVector,
257 vtkInformationVector *outputVector) override;
258
259 int FillInputPortInformation(int port, vtkInformation *info) override;
260 int FillOutputPortInformation(int port, vtkInformation *info) override;
261
262private:
263 template <typename scalarType, typename triangulationType>
264 int dispatch(vtkUnstructuredGrid *outputCTPersistenceDiagram,
265 vtkDataArray *const inputScalarsArray,
266 const scalarType *const inputScalars,
267 scalarType *outputScalars,
268 SimplexId *outputOffsets,
269 int *outputMonotonyOffsets,
270 const SimplexId *const inputOrder,
271 const triangulationType *triangulation);
272
273 bool ForceInputOffsetScalarField{false};
274 bool ShowInsideDomain{false};
275 // stores the values of Compute[Min|Sad][Sad|Max] GUI checkboxes
276 // when "All Dimensions" is selected
277 std::array<bool, 3> dmsDimsCache{true, true, true};
278 // clear DiscreteGradient cache after computation
279 bool ClearDGCache{false};
280};
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
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)
int SimplexId
Identifier type for simplices of any dimension.
Definition DataTypes.h:22
#define ttkSetEnumMacro(name, enumType)
Definition ttkMacros.h:38