18#ifndef itkFiniteDifferenceSparseImageFilter_h
19#define itkFiniteDifferenceSparseImageFilter_h
63template <
typename TInputImageType,
typename TSparseOutputImageType>
81 using typename Superclass::InputImageType;
83 using typename Superclass::PixelType;
84 using typename Superclass::TimeStepType;
85 using typename Superclass::FiniteDifferenceFunctionType;
90 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
113 itkSetMacro(PrecomputeFlag,
bool);
114 itkGetConstMacro(PrecomputeFlag,
bool);
147 typename NodeListType::Iterator
first;
149 typename NodeListType::Iterator
last;
206 bool m_PrecomputeFlag{};
213 typename NodeListType::RegionListType m_RegionList{};
217#ifndef ITK_MANUAL_INSTANTIATION
218# include "itkFiniteDifferenceSparseImageFilter.hxx"
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
This class implements a multi-threaded base class for Image to SparseImage finite difference processe...
typename SparseOutputImageType::SizeType SizeType
FiniteDifferenceSparseImageFilter()
typename OutputNodeType::NodeDataType NodeDataType
virtual void ThreadedPrecalculateChange(const ThreadRegionType ®ionToProcess, ThreadIdType threadId)
virtual TimeStepType ThreadedCalculateChange(const ThreadRegionType ®ionToProcess, ThreadIdType threadId)
ThreadIdType GetSplitRegion(ThreadIdType i, ThreadIdType num, ThreadRegionType &splitRegion)
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION PrecalculateChangeThreaderCallback(void *arg)
void ApplyUpdate(const TimeStepType &dt) override
typename SparseOutputImageType::NodeType OutputNodeType
virtual NodeDataType DataConstraint(const NodeDataType &data) const
virtual void PrecalculateChange()
typename Superclass::OutputImageType SparseOutputImageType
void SetSparseFunction(SparseFunctionType *sf)
~FiniteDifferenceSparseImageFilter() override=default
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ApplyUpdateThreaderCallback(void *arg)
void AllocateUpdateBuffer() override
void PrintSelf(std::ostream &os, Indent indent) const override
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION CalculateChangeThreaderCallback(void *arg)
typename OutputNodeType::NodeValueType NodeValueType
TimeStepType CalculateChange() override
typename SparseOutputImageType::NodeListType NodeListType
typename SparseOutputImageType::IndexType IndexType
virtual void ThreadedApplyUpdate(const TimeStepType &dt, const ThreadRegionType ®ionToProcess, ThreadIdType threadId)
void Initialize() override
This is the base class for function classes that can be used with filters derived from FiniteDifferen...
Control indentation during Print() invocation.
Light weight base class for most itk classes.
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType
itk::ITK_THREAD_RETURN_TYPE ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION
std::vector< Boolean > BooleanStdVectorType
std::vector< TimeStepType > TimeStepList
FiniteDifferenceSparseImageFilter * Filter
BooleanStdVectorType ValidTimeStepList
NodeListType::Iterator first
NodeListType::Iterator last