TTK
Loading...
Searching...
No Matches
ttkRipsPersistenceDiagram.h
Go to the documentation of this file.
1
21
22#pragma once
23
24// VTK Module
25#include <ttkRipsPersistenceDiagramModule.h>
26
27// VTK Includes
28#include <ttkMacros.h>
29#include <vtkUnstructuredGrid.h>
30
31// TTK Includes
33#include <ttkAlgorithm.h>
34
44TTKRIPSPERSISTENCEDIAGRAM_EXPORT void
45 DiagramToVTU(vtkUnstructuredGrid *vtu,
47 double SimplexMaximumDiameter);
48
49class TTKRIPSPERSISTENCEDIAGRAM_EXPORT ttkRipsPersistenceDiagram
50 : public ttkAlgorithm, // we inherit from the generic ttkAlgorithm class
51 protected ttk::RipsPersistenceDiagram { // and we inherit from the base
52 // class
53private:
54 bool KeepAllDataArrays{true};
55 bool SelectFieldsWithRegexp{false};
56 std::string RegexpString{".*"};
57 std::vector<std::string> ScalarFields{};
58
59public:
62
63 void SetScalarFields(const std::string &s) {
64 ScalarFields.push_back(s);
65 Modified();
66 }
67
69 ScalarFields.clear();
70 Modified();
71 }
72
73 void SetSimplexMaximumDiameter(const std::string &data) {
74 SimplexMaximumDiameter = stod(data);
75 Modified();
76 }
77 std::string GetSimplexMaximumDiameter() const {
78 return std::to_string(SimplexMaximumDiameter);
79 }
80
81 vtkSetMacro(KeepAllDataArrays, bool);
82 vtkGetMacro(KeepAllDataArrays, bool);
83
84 vtkSetMacro(SelectFieldsWithRegexp, bool);
85 vtkGetMacro(SelectFieldsWithRegexp, bool);
86
87 vtkSetMacro(RegexpString, const std::string &);
88 vtkGetMacro(RegexpString, std::string);
89
91 vtkGetEnumMacro(BackEnd, BACKEND);
92
93 vtkSetMacro(HomologyMaximumDimension, int);
94 vtkGetMacro(HomologyMaximumDimension, int);
95
96 vtkSetMacro(FieldOfCoefficients, int);
97 vtkGetMacro(FieldOfCoefficients, int);
98
99 vtkSetMacro(InputIsDistanceMatrix, bool);
100 vtkGetMacro(InputIsDistanceMatrix, bool);
101
102protected:
104 ~ttkRipsPersistenceDiagram() override = default;
105
106 int FillInputPortInformation(int port, vtkInformation *info) override;
107
108 int FillOutputPortInformation(int port, vtkInformation *info) override;
109
110 int RequestData(vtkInformation *request,
111 vtkInformationVector **inputVector,
112 vtkInformationVector *outputVector) override;
113};
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 SetSimplexMaximumDiameter(const std::string &data)
static ttkRipsPersistenceDiagram * New()
~ttkRipsPersistenceDiagram() override=default
std::string GetSimplexMaximumDiameter() const
void SetScalarFields(const std::string &s)
TTK base class that computes the persistence diagram of a Rips complex.
std::vector< Diagram > MultidimensionalDiagram
#define ttkSetEnumMacro(name, enumType)
Definition ttkMacros.h:38
TTKRIPSPERSISTENCEDIAGRAM_EXPORT void DiagramToVTU(vtkUnstructuredGrid *vtu, const ttk::rpd::MultidimensionalDiagram &diagram, double SimplexMaximumDiameter)
Converts a Rips Persistence Diagram in the ttk::rpd::MultidimensionalDiagram format to the VTK Unstru...