18 #ifndef itkFiniteDifferenceImageFilter_h
19 #define itkFiniteDifferenceImageFilter_h
132 template <
typename TInputImage,
typename TOutputImage>
152 static constexpr
unsigned int ImageDimension = OutputImageType::ImageDimension;
192 itkSetMacro(UseImageSpacing,
bool);
193 itkBooleanMacro(UseImageSpacing);
194 itkGetConstReferenceMacro(UseImageSpacing,
bool);
199 itkSetMacro(MaximumRMSError,
double);
200 itkGetConstReferenceMacro(MaximumRMSError,
double);
205 itkSetMacro(RMSChange,
double);
206 itkGetConstReferenceMacro(RMSChange,
double);
211 itkSetMacro(ManualReinitialization,
bool);
212 itkGetConstReferenceMacro(ManualReinitialization,
bool);
213 itkBooleanMacro(ManualReinitialization);
216 itkSetMacro(IsInitialized,
bool);
217 itkGetMacro(IsInitialized,
bool);
222 this->SetIsInitialized(
false);
227 this->SetIsInitialized(
true);
230 #ifdef ITK_USE_CONCEPT_CHECKING
241 bool m_IsInitialized{};
244 PrintSelf(std::ostream & os,
Indent indent)
const override;
248 AllocateUpdateBuffer() = 0;
254 ApplyUpdate(
const TimeStepType & dt) = 0;
262 CalculateChange() = 0;
268 CopyInputToOutput() = 0;
274 GenerateData()
override;
288 GenerateInputRequestedRegion()
override;
328 m_DifferenceFunction->InitializeIteration();
344 ResolveTimeStep(
const std::vector<TimeStepType> & timeStepList,
const BooleanStdVectorType & valid)
const;
364 bool m_ManualReinitialization{};
366 double m_RMSChange{};
367 double m_MaximumRMSError{};
374 InitializeFunctionCoefficients();
378 bool m_UseImageSpacing{
true };
385 #ifndef ITK_MANUAL_INSTANTIATION
386 # include "itkFiniteDifferenceImageFilter.hxx"