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