18 #ifndef itkNarrowBandImageFilterBase_h
19 #define itkNarrowBandImageFilterBase_h
69 template <
typename TInputImage,
typename TOutputImage>
85 using typename Superclass::InputImageType;
86 using typename Superclass::OutputImageType;
87 using typename Superclass::FiniteDifferenceFunctionType;
91 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
95 using typename Superclass::PixelType;
98 using typename Superclass::TimeStepType;
118 itkGetConstMacro(IsoSurfaceValue,
ValueType);
131 m_NarrowBand->PushBack(node);
142 m_NarrowBand->PushBack(tmpnode);
155 m_NarrowBand->PushBack(tmpnode);
165 if (m_NarrowBand->GetTotalRadius() != val)
167 m_NarrowBand->SetTotalRadius(val);
177 return m_NarrowBand->GetTotalRadius();
185 if (m_NarrowBand->GetInnerRadius() != val)
187 m_NarrowBand->SetInnerRadius(val);
197 return m_NarrowBand->GetInnerRadius();
212 if (m_NarrowBand != ptr)
220 CopyInputToOutput()
override;
226 m_NarrowBand->SetTotalRadius(4);
227 m_NarrowBand->SetInnerRadius(2);
228 m_ReinitializationFrequency = 6;
229 m_IsoSurfaceValue = 0.0;
236 PrintSelf(std::ostream & os,
Indent indent)
const override;
255 std::vector<RegionType> m_RegionList{};
260 GetSplitRegion(
const size_t & i, ThreadRegionType & splitRegion);
267 Initialize()
override;
274 InitializeIteration()
override;
279 PostProcessOutput()
override;
293 GenerateData()
override;
319 ThreadedApplyUpdate(
const TimeStepType & dt,
const ThreadRegionType & regionToProcess,
ThreadIdType threadId);
329 ThreadedCalculateChange(
const ThreadRegionType & regionToProcess);
339 #ifndef ITK_MANUAL_INSTANTIATION
340 # include "itkNarrowBandImageFilterBase.hxx"