TTK
Loading...
Searching...
No Matches
ttkReebSpace.h
Go to the documentation of this file.
1
62
63#pragma once
64
65// VTK Module
66#include <ttkReebSpaceModule.h>
67
68// ttk code includes
69#include <ReebSpace.h>
70#include <ttkAlgorithm.h>
71
72// in this example, this wrapper takes a data-set on the input and produces a
73// data-set on the output - to adapt.
74// see the documentation of the vtkAlgorithm class to decide from which VTK
75// class your wrapper should inherit.
76class TTKREEBSPACE_EXPORT ttkReebSpace : public ttkAlgorithm,
77 protected ttk::ReebSpace {
78
79public:
80 static ttkReebSpace *New();
81 vtkTypeMacro(ttkReebSpace, ttkAlgorithm);
82
83 vtkGetMacro(ForceInputOffsetScalarField, bool);
84 vtkSetMacro(ForceInputOffsetScalarField, bool);
85
86 vtkGetMacro(UseOctreeAcceleration, bool);
87 vtkSetMacro(UseOctreeAcceleration, bool);
88
89 // 0-sheet options
90 vtkGetMacro(ZeroSheetId, bool);
91 vtkSetMacro(ZeroSheetId, bool);
92
93 vtkGetMacro(ZeroSheetType, bool);
94 vtkSetMacro(ZeroSheetType, bool);
95
96 vtkGetMacro(ZeroSheetValue, bool);
97 vtkSetMacro(ZeroSheetValue, bool);
98
99 vtkGetMacro(ZeroSheetVertexId, bool);
100 vtkSetMacro(ZeroSheetVertexId, bool);
101
102 // 1-sheet options
103 vtkGetMacro(OneSheetId, bool);
104 vtkSetMacro(OneSheetId, bool);
105
106 vtkGetMacro(OneSheetType, bool);
107 vtkSetMacro(OneSheetType, bool);
108
109 vtkGetMacro(OneSheetValue, bool);
110 vtkSetMacro(OneSheetValue, bool);
111
112 vtkGetMacro(OneSheetVertexId, bool);
113 vtkSetMacro(OneSheetVertexId, bool);
114
115 vtkGetMacro(OneSheetEdgeId, bool);
116 vtkSetMacro(OneSheetEdgeId, bool);
117
118 // 2-sheet options
119 vtkGetMacro(TwoSheets, bool);
120 vtkSetMacro(TwoSheets, bool);
121
122 vtkGetMacro(TwoSheetCaseId, bool);
123 vtkSetMacro(TwoSheetCaseId, bool);
124
125 vtkGetMacro(TwoSheetValue, bool);
126 vtkSetMacro(TwoSheetValue, bool);
127
128 vtkGetMacro(TwoSheetParameterization, bool);
129 vtkSetMacro(TwoSheetParameterization, bool);
130
131 vtkGetMacro(TwoSheetId, bool);
132 vtkSetMacro(TwoSheetId, bool);
133
134 vtkGetMacro(TwoSheetEdgeId, bool);
135 vtkSetMacro(TwoSheetEdgeId, bool);
136
137 vtkGetMacro(TwoSheetTetId, bool);
138 vtkSetMacro(TwoSheetTetId, bool);
139
140 vtkGetMacro(TwoSheetEdgeType, bool);
141 vtkSetMacro(TwoSheetEdgeType, bool);
142
143 vtkGetMacro(ThreeSheetTetNumber, bool);
144 vtkSetMacro(ThreeSheetTetNumber, bool);
145
146 vtkGetMacro(ThreeSheetVertexNumber, bool);
147 vtkSetMacro(ThreeSheetVertexNumber, bool);
148
149 vtkGetMacro(ThreeSheetExpansion, bool);
150 vtkSetMacro(ThreeSheetExpansion, bool);
151
152 vtkGetMacro(ThreeSheetDomainVolume, bool);
153 vtkSetMacro(ThreeSheetDomainVolume, bool);
154
155 vtkGetMacro(ThreeSheetRangeArea, bool);
156 vtkSetMacro(ThreeSheetRangeArea, bool);
157
158 vtkGetMacro(ThreeSheetHyperVolume, bool);
159 vtkSetMacro(ThreeSheetHyperVolume, bool);
160
161 vtkGetMacro(SimplificationThreshold, double);
162 vtkSetMacro(SimplificationThreshold, double);
163
164 vtkGetMacro(SimplificationCriterion, int);
165 vtkSetMacro(SimplificationCriterion, int);
166
167protected:
168 ttkReebSpace();
169
170 int FillInputPortInformation(int port, vtkInformation *info) override;
171 int FillOutputPortInformation(int port, vtkInformation *info) override;
172 int RequestData(vtkInformation *request,
173 vtkInformationVector **inputVector,
174 vtkInformationVector *outputVector) override;
175
176 template <class dataTypeU, class dataTypeV>
177 int dispatch(const dataTypeU *const uField,
178 const dataTypeV *const vField,
179 ttk::Triangulation *const triangulation);
180
181private:
182 bool ZeroSheetValue{true}, ZeroSheetVertexId{true}, ZeroSheetType{true},
183 ZeroSheetId{true};
184 bool OneSheetValue{true}, OneSheetVertexId{true}, OneSheetType{true},
185 OneSheetId{true}, OneSheetEdgeId{true};
186 bool TwoSheets{true}, TwoSheetCaseId{true}, TwoSheetValue{true},
187 TwoSheetParameterization{true}, TwoSheetId{true}, TwoSheetEdgeId{true},
188 TwoSheetTetId{true}, TwoSheetEdgeType{true};
189 bool ThreeSheetVertexNumber{true}, ThreeSheetTetNumber{true},
190 ThreeSheetExpansion{true}, ThreeSheetDomainVolume{true},
191 ThreeSheetRangeArea{true}, ThreeSheetHyperVolume{true};
192
193 bool ForceInputOffsetScalarField{false};
194 bool UseOctreeAcceleration{true};
195 int SimplificationCriterion{1};
196 double SimplificationThreshold{0.0};
197};
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 that efficiently computes the Reeb space of bivariate volumetric data.
Definition: ttkReebSpace.h:77
static ttkReebSpace * New()
TTK processing package that efficiently computes the Reeb space of bivariate volumetric data.
Definition: ReebSpace.h:42
Triangulation is a class that provides time and memory efficient traversal methods on triangulations ...
Definition: Triangulation.h:48