64 vtkSetMacro(Sampling,
int);
65 vtkGetMacro(Sampling,
int);
70 vtkSetMacro(StartTimestep,
int);
71 vtkGetMacro(StartTimestep,
int);
76 vtkSetMacro(EndTimestep,
int);
77 vtkGetMacro(EndTimestep,
int);
83 vtkSetMacro(Tolerance,
double);
84 vtkGetMacro(Tolerance,
double);
86 vtkSetMacro(RelativeDestructionCost,
double);
87 vtkGetMacro(RelativeDestructionCost,
double);
90 vtkSetMacro(AssignmentPrecision,
double);
91 vtkGetMacro(AssignmentPrecision,
double);
96 vtkSetMacro(PX,
double);
97 vtkGetMacro(PX,
double);
102 vtkSetMacro(PY,
double);
103 vtkGetMacro(PY,
double);
108 vtkSetMacro(PZ,
double);
109 vtkGetMacro(PZ,
double);
114 vtkSetMacro(PE,
double);
115 vtkGetMacro(PE,
double);
120 vtkSetMacro(PS,
double);
121 vtkGetMacro(PS,
double);
126 vtkSetMacro(PF,
double);
127 vtkGetMacro(PF,
double);
133 vtkSetMacro(WassersteinMetric,
const std::string &);
134 vtkGetMacro(WassersteinMetric, std::string);
137 vtkSetMacro(DistanceAlgorithm,
const std::string &);
138 vtkGetMacro(DistanceAlgorithm, std::string);
144 vtkSetMacro(PVAlgorithm,
int);
145 vtkGetMacro(PVAlgorithm,
int);
147 vtkSetMacro(AssignmentMethod,
int);
148 vtkGetMacro(AssignmentMethod,
int);
155 vtkSetMacro(UseGeometricSpacing,
bool);
156 vtkGetMacro(UseGeometricSpacing,
bool);
162 vtkSetMacro(Spacing,
double);
163 vtkGetMacro(Spacing,
double);
168 vtkSetMacro(DoPostProc,
bool);
169 vtkGetMacro(DoPostProc,
bool);
175 vtkSetMacro(PostProcThresh,
double);
176 vtkGetMacro(PostProcThresh,
double);
182 vtkSetMacro(EnablePostProc,
bool);
183 vtkGetMacro(EnablePostProc,
bool);
188 vtkSetMacro(DoLinearize,
bool);
189 vtkGetMacro(DoLinearize,
bool);
195 vtkSetMacro(DoFusion,
bool);
196 vtkGetMacro(DoFusion,
bool);
204 vtkSetMacro(LinearizeFuse,
bool);
205 vtkGetMacro(LinearizeFuse,
bool);
212 vtkSetMacro(DoStartFrame,
bool);
213 vtkGetMacro(DoStartFrame,
bool);
218 vtkSetMacro(StartFrame,
int);
219 vtkGetMacro(StartFrame,
int);
225 vtkSetMacro(DoMergeTree,
bool);
226 vtkGetMacro(DoMergeTree,
bool);
232 vtkSetMacro(UseSplitTree,
int);
233 vtkGetMacro(UseSplitTree,
int);
239 vtkSetMacro(UseOtsuSimplification,
bool);
240 vtkGetMacro(UseOtsuSimplification,
bool);
243 vtkSetMacro(OtsuBins,
int);
244 vtkGetMacro(OtsuBins,
int);
246 vtkSetMacro(MaxSurfSize,
int);
247 vtkGetMacro(MaxSurfSize,
int);
252 vtkSetMacro(CosColDegrees,
double);
253 vtkGetMacro(CosColDegrees,
double);
259 vtkSetMacro(MaxLinkRadius,
double);
260 vtkGetMacro(MaxLinkRadius,
double);
266 vtkSetMacro(MaxFrameDist,
int);
267 vtkGetMacro(MaxFrameDist,
int);
276 vtkInformationVector **inputVector,
277 vtkInformationVector *outputVector)
override;
279 vtkInformationVector **inputVector,
280 vtkInformationVector *outputVector)
override;
284 int StartTimestep{0};
297 double RelativeDestructionCost{0.1};
298 double AssignmentPrecision{0.01};
299 int AssignmentMethod{0};
302 bool UseGeometricSpacing{
false};
303 bool DoPostProc{
false};
304 double PostProcThresh{0.0};
306 std::string DistanceAlgorithm{
"ttk"};
308 std::string WassersteinMetric{
"2"};
311 bool EnablePostProc{
false};
312 bool DoLinearize{
true};
314 bool LinearizeFuse{
true};
315 bool DoStartFrame{
false};
317 bool DoMergeTree{
false};
319 bool UseOtsuSimplification{
false};
321 int MaxSurfSize{10000};
322 double CosColDegrees{20.0};
323 double MaxLinkRadius{225.0};
324 int MaxFrameDist{30};
326 template <
class dataType,
class triangulationType>
327 int trackWithPersistenceMatching(vtkUnstructuredGrid *output,
328 unsigned long fieldNumber,
329 const triangulationType *triangulation);
331 template <
class dataType,
class triangulationType>
332 int trackWithCriticalPointMatching(vtkUnstructuredGrid *output,
333 unsigned long fieldNumber,
334 const triangulationType *triangulation);
336 template <
class dataType,
class triangulationType>
337 int applyPostProcessing(vtkUnstructuredGrid *output,
338 vtkDataSet *segOutput,
340 const std::vector<vtkDataArray *> &inputScalarFields,
341 const triangulationType *triangulation);
343 void writeSegmentationArrays(
344 vtkDataSet *segOutput,
345 const std::vector<std::vector<int>> &vertexTrajPerFrame);