TTK
Loading...
Searching...
No Matches
ttkMorseSmaleComplex.h
Go to the documentation of this file.
1
106
107#pragma once
108
109// VTK Module
110#include <ttkMorseSmaleComplexModule.h>
111
112// ttk code includes
113#include <MorseSmaleComplex.h>
114#include <ttkAlgorithm.h>
115
116class vtkPolyData;
117
118class TTKMORSESMALECOMPLEX_EXPORT ttkMorseSmaleComplex
119 : public ttkAlgorithm,
120 protected ttk::MorseSmaleComplex {
121
122public:
124
126
127 vtkSetMacro(ForceInputOffsetScalarField, bool);
128 vtkGetMacro(ForceInputOffsetScalarField, bool);
129
130 vtkSetMacro(ComputeCriticalPoints, bool);
131 vtkGetMacro(ComputeCriticalPoints, bool);
132
133 vtkSetMacro(ComputeAscendingSeparatrices1, bool);
134 vtkGetMacro(ComputeAscendingSeparatrices1, bool);
135
136 vtkSetMacro(ComputeDescendingSeparatrices1, bool);
137 vtkGetMacro(ComputeDescendingSeparatrices1, bool);
138
139 vtkSetMacro(ComputeSaddleConnectors, bool);
140 vtkGetMacro(ComputeSaddleConnectors, bool);
141
142 vtkSetMacro(ComputeAscendingSeparatrices2, bool);
143 vtkGetMacro(ComputeAscendingSeparatrices2, bool);
144
145 vtkSetMacro(ComputeDescendingSeparatrices2, bool);
146 vtkGetMacro(ComputeDescendingSeparatrices2, bool);
147
148 vtkSetMacro(ComputeAscendingSegmentation, bool);
149 vtkGetMacro(ComputeAscendingSegmentation, bool);
150
151 vtkSetMacro(ComputeDescendingSegmentation, bool);
152 vtkGetMacro(ComputeDescendingSegmentation, bool);
153
154 vtkSetMacro(ComputeFinalSegmentation, bool);
155 vtkGetMacro(ComputeFinalSegmentation, bool);
156
157 vtkSetMacro(IterationThreshold, int);
158 vtkGetMacro(IterationThreshold, int);
159
160 vtkSetMacro(ReturnSaddleConnectors, int);
161 vtkGetMacro(ReturnSaddleConnectors, int);
162
163 vtkSetMacro(SaddleConnectorsPersistenceThreshold, double);
164 vtkGetMacro(SaddleConnectorsPersistenceThreshold, double);
165
166 vtkSetMacro(ThresholdIsAbsolute, bool);
167 vtkGetMacro(ThresholdIsAbsolute, bool);
168
169protected:
170 template <typename scalarType, typename triangulationType>
171 int dispatch(vtkDataArray *const inputScalars,
172 vtkPolyData *const outputCriticalPoints,
173 vtkPolyData *const outputSeparatrices1,
174 vtkPolyData *const outputSeparatrices2,
175 const SimplexId *const inputOffsets,
176 const triangulationType &triangulation);
177
179
180 int FillInputPortInformation(int port, vtkInformation *info) override;
181 int FillOutputPortInformation(int port, vtkInformation *info) override;
182 int RequestData(vtkInformation *request,
183 vtkInformationVector **inputVector,
184 vtkInformationVector *outputVector) override;
185
186private:
187 bool ForceInputOffsetScalarField{};
188 int IterationThreshold{-1};
189 OutputCriticalPoints criticalPoints_{};
190 Output1Separatrices separatrices1_{};
191 Output2Separatrices separatrices2_{};
192 OutputManifold segmentations_{};
193};
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 wraps the morseSmaleComplex processing package.
static ttkMorseSmaleComplex * New()
TTK processing package for the computation of Morse-Smale complexes.