18#ifndef itkNarrowBandImageFilterBase_h
19#define itkNarrowBandImageFilterBase_h
69template <
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;
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)
226 m_NarrowBand->SetTotalRadius(4);
227 m_NarrowBand->SetInnerRadius(2);
228 m_ReinitializationFrequency = 6;
229 m_IsoSurfaceValue = 0.0;
255 std::vector<RegionType> m_RegionList{};
339#ifndef ITK_MANUAL_INSTANTIATION
340# include "itkNarrowBandImageFilterBase.hxx"
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
OutputPixelType PixelType
Base class for all process objects that output image data.
Control indentation during Print() invocation.
This class implements a multi-threaded finite difference image to image solver that can be applied to...
typename NarrowBandType::Pointer NarrowBandPointer
void SetNarrowBandInnerRadius(const float val)
void CopyInputToOutput() override
typename NarrowBandType::Iterator NarrowBandIterator
typename OutputImageType::IndexType IndexType
void GenerateData() override
~NarrowBandImageFilterBase() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
TimeStepType CalculateChange() override
void InsertNarrowBandNode(const IndexType &index, const PixelType &value, const signed char nodestate)
typename OutputImageType::ValueType ValueType
void Initialize() override
void SetNarrowBandTotalRadius(const float val)
virtual void SetNarrowBand(NarrowBandType *ptr)
void PostProcessOutput() override
void InsertNarrowBandNode(const BandNodeType &node)
float GetNarrowBandTotalRadius() const
virtual void ThreadedApplyUpdate(const TimeStepType &dt, const ThreadRegionType ®ionToProcess, ThreadIdType threadId)
virtual void CreateNarrowBand()
void AllocateUpdateBuffer() override
void ApplyUpdate(const TimeStepType &) override
void InsertNarrowBandNode(const IndexType &index)
NarrowBandImageFilterBase()
typename NarrowBandType::RegionType RegionType
float GetNarrowBandInnerRadius() const
void InitializeIteration() override
void GetSplitRegion(const vcl_size_t &i, ThreadRegionType &splitRegion)
virtual TimeStepType ThreadedCalculateChange(const ThreadRegionType ®ionToProcess)
typename NodeContainerType::iterator Iterator
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SmartPointer< Self > Pointer
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
SizeValueType IdentifierType
std::vector< Boolean > BooleanStdVectorType