118#include <ttkMorseSmaleComplexModule.h>
126class TTKMORSESMALECOMPLEX_EXPORT ttkMorseSmaleComplex
131 static ttkMorseSmaleComplex *
New();
133 vtkTypeMacro(ttkMorseSmaleComplex, ttkAlgorithm);
135 vtkSetMacro(ForceInputOffsetScalarField,
bool);
136 vtkGetMacro(ForceInputOffsetScalarField,
bool);
138 vtkSetMacro(ComputeCriticalPoints,
bool);
139 vtkGetMacro(ComputeCriticalPoints,
bool);
141 vtkSetMacro(ComputeAscendingSeparatrices1,
bool);
142 vtkGetMacro(ComputeAscendingSeparatrices1,
bool);
144 vtkSetMacro(ComputeDescendingSeparatrices1,
bool);
145 vtkGetMacro(ComputeDescendingSeparatrices1,
bool);
147 vtkSetMacro(ComputeSaddleConnectors,
bool);
148 vtkGetMacro(ComputeSaddleConnectors,
bool);
150 vtkSetMacro(ComputeAscendingSeparatrices2,
bool);
151 vtkGetMacro(ComputeAscendingSeparatrices2,
bool);
153 vtkSetMacro(ComputeDescendingSeparatrices2,
bool);
154 vtkGetMacro(ComputeDescendingSeparatrices2,
bool);
156 vtkSetMacro(ComputeAscendingSegmentation,
bool);
157 vtkGetMacro(ComputeAscendingSegmentation,
bool);
159 vtkSetMacro(ComputeDescendingSegmentation,
bool);
160 vtkGetMacro(ComputeDescendingSegmentation,
bool);
162 vtkSetMacro(ComputeFinalSegmentation,
bool);
163 vtkGetMacro(ComputeFinalSegmentation,
bool);
165 vtkSetMacro(IterationThreshold,
int);
166 vtkGetMacro(IterationThreshold,
int);
168 vtkSetMacro(ReturnSaddleConnectors,
bool);
169 vtkGetMacro(ReturnSaddleConnectors,
bool);
171 vtkSetMacro(DiscreteGradientBackend,
int);
172 vtkGetMacro(DiscreteGradientBackend,
int);
174 vtkSetMacro(SaddleConnectorsPersistenceThreshold,
double);
175 vtkGetMacro(SaddleConnectorsPersistenceThreshold,
double);
177 vtkSetMacro(ThresholdIsAbsolute,
bool);
178 vtkGetMacro(ThresholdIsAbsolute,
bool);
180 vtkSetMacro(ForceLoopFreeGradient,
bool);
181 vtkGetMacro(ForceLoopFreeGradient,
bool);
183 vtkSetMacro(StochasticGradientSeed,
unsigned int);
184 vtkGetMacro(StochasticGradientSeed,
unsigned int);
187 template <
typename scalarType,
typename triangulationType>
188 int dispatch(vtkDataArray *
const inputScalars,
189 vtkPolyData *
const outputCriticalPoints,
190 vtkPolyData *
const outputSeparatrices1,
191 vtkPolyData *
const outputSeparatrices2,
193 const triangulationType &triangulation);
195 ttkMorseSmaleComplex();
200 vtkInformationVector **inputVector,
201 vtkInformationVector *outputVector)
override;
204 bool ForceInputOffsetScalarField{};
205 int IterationThreshold{-1};
206 int DiscreteGradientBackend{0};
207 OutputManifold segmentations_{};
208 unsigned int StochasticGradientSeed{0};
Baseclass of all VTK filters that wrap ttk modules.
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
static ttkAlgorithm * New()
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
TTK processing package for the computation of Morse-Smale complexes.
int SimplexId
Identifier type for simplices of any dimension.