18 #ifndef itkNarrowBandImageFilterBase_h
19 #define itkNarrowBandImageFilterBase_h
69 template<
typename TInputImage,
typename TOutputImage >
92 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
119 itkGetConstMacro(IsoSurfaceValue,
ValueType);
131 m_NarrowBand->PushBack(node);
141 m_NarrowBand->PushBack(tmpnode);
147 const signed char & nodestate)
155 m_NarrowBand->PushBack(tmpnode);
164 if ( m_NarrowBand->GetTotalRadius() != val )
166 m_NarrowBand->SetTotalRadius(val);
175 return m_NarrowBand->GetTotalRadius();
182 if ( m_NarrowBand->GetInnerRadius() != val )
184 m_NarrowBand->SetInnerRadius(val);
193 return m_NarrowBand->GetInnerRadius();
205 if ( m_NarrowBand != ptr )
212 void CopyInputToOutput()
override;
217 m_NarrowBand = NarrowBandType::New();
218 m_NarrowBand->SetTotalRadius(4);
219 m_NarrowBand->SetInnerRadius(2);
220 m_ReinitializationFrequency = 6;
221 m_IsoSurfaceValue = 0.0;
227 void PrintSelf(std::ostream & os,
Indent indent)
const override;
249 void GetSplitRegion(
const size_t& i, ThreadRegionType & splitRegion);
255 void Initialize()
override;
261 void InitializeIteration()
override;
265 void PostProcessOutput()
override;
268 void ClearNarrowBand();
277 void GenerateData()
override;
301 virtual void ThreadedApplyUpdate(
const TimeStepType& dt,
302 const ThreadRegionType & regionToProcess,
310 virtual TimeStepType ThreadedCalculateChange(
const ThreadRegionType & regionToProcess);
316 #ifndef ITK_MANUAL_INSTANTIATION
317 #include "itkNarrowBandImageFilterBase.hxx"
std::vector< RegionType > m_RegionList
Light weight base class for most itk classes.
typename NarrowBandType::Pointer NarrowBandPointer
typename NarrowBandType::Iterator NarrowBandIterator
std::vector< bool > m_TouchedForThread
typename OutputImageType::ValueType ValueType
void ApplyUpdate(const TimeStepType &) override
ValueType m_IsoSurfaceValue
void SetNarrowBandInnerRadius(const float &val)
virtual void SetNarrowBand(NarrowBandType *ptr)
OutputPixelType PixelType
float GetNarrowBandTotalRadius() const
TInputImage InputImageType
IdentifierType m_ReinitializationFrequency
typename NarrowBandType::RegionType RegionType
void InsertNarrowBandNode(const BandNodeType &node)
virtual void CreateNarrowBand()
void InsertNarrowBandNode(const IndexType &index, const PixelType &value, const signed char &nodestate)
NarrowBandImageFilterBase()
SizeValueType IdentifierType
void InsertNarrowBandNode(const IndexType &index)
void AllocateUpdateBuffer() override
ImageBaseType::IndexType IndexType
float GetNarrowBandInnerRadius() const
unsigned int ThreadIdType
This class implements a multi-threaded finite difference image to image solver that can be applied to...
void SetNarrowBandTotalRadius(const float &val)
typename OutputImageType::IndexType IndexType
TimeStepType CalculateChange() override
Base class for filters that take an image as input and produce an image as output.
Control indentation during Print() invocation.
ImageBaseType::RegionType RegionType
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
NarrowBandPointer m_NarrowBand
Templated n-dimensional image class.
typename NodeContainerType::iterator Iterator