18 #ifndef itkMultiphaseDenseFiniteDifferenceImageFilter_h
19 #define itkMultiphaseDenseFiniteDifferenceImageFilter_h
100 template <
typename TInputImage,
101 typename TFeatureImage,
102 typename TOutputImage,
104 typename TIdCell =
unsigned int>
123 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
126 using typename Superclass::InputImageType;
127 using typename Superclass::InputImagePointer;
128 using typename Superclass::InputRegionType;
129 using typename Superclass::InputSizeType;
130 using typename Superclass::InputSizeValueType;
131 using typename Superclass::InputIndexType;
132 using typename Superclass::InputIndexValueType;
133 using typename Superclass::InputPixelType;
134 using typename Superclass::InputPointType;
135 using typename Superclass::InputSpacingType;
138 using typename Superclass::FeatureImageType;
139 using typename Superclass::FeatureSizeType;
140 using typename Superclass::FeatureImagePointer;
141 using typename Superclass::FeatureRegionType;
142 using typename Superclass::FeatureSpacingType;
143 using typename Superclass::FeaturePointType;
144 using typename Superclass::FeaturePixelType;
146 using typename Superclass::OutputImageType;
147 using typename Superclass::OutputImagePointer;
148 using typename Superclass::OutputRegionType;
149 using typename Superclass::OutputSizeType;
151 using typename Superclass::OutputIndexType;
152 using typename Superclass::OutputIndexValueType;
155 using typename Superclass::IdCellType;
163 using typename Superclass::FiniteDifferenceFunctionType;
164 using typename Superclass::FiniteDifferenceFunctionPointer;
168 using typename Superclass::TimeStepType;
176 #ifdef ITK_USE_CONCEPT_CHECKING
184 itkSetMacro(ReinitializeCounter,
unsigned int);
185 itkGetMacro(ReinitializeCounter,
unsigned int);
190 this->m_ReinitializeCounter = 1;
198 PrintSelf(std::ostream &,
Indent indent)
const override;
204 CopyInputToOutput()
override;
207 PostProcessOutput()
override;
213 ApplyUpdate(TimeStepType dt)
override;
215 unsigned int m_ReinitializeCounter{};
222 AllocateUpdateBuffer()
override;
228 CalculateChange()
override;
231 std::vector<InputImagePointer> m_UpdateBuffers{};
235 #ifndef ITK_MANUAL_INSTANTIATION
236 # include "itkMultiphaseDenseFiniteDifferenceImageFilter.hxx"