18#ifndef itkGPUFiniteDifferenceImageFilter_h
19#define itkGPUFiniteDifferenceImageFilter_h
37template <
typename TInputImage,
38 typename TOutputImage,
39 typename TParentImageFilter = FiniteDifferenceImageFilter<TInputImage, TOutputImage>>
61 static constexpr unsigned int ImageDimension = OutputImageType::ImageDimension;
86 return this->m_DifferenceFunction;
95 itkDebugMacro(
"setting m_DifferenceFunction to " << differenceFunction);
96 if (this->m_DifferenceFunction != differenceFunction)
98 this->m_DifferenceFunction = differenceFunction;
104#if !defined(ITK_LEGACY_REMOVE)
127#if !defined(ITK_WRAPPING_PARSER)
133#ifdef ITK_USE_CONCEPT_CHECKING
141 itkGetConstReferenceMacro(ComputeUpdateTime,
TimeProbe);
235 m_DifferenceFunction->InitializeIteration();
274 bool m_UseImageSpacing{};
282#ifndef ITK_MANUAL_INSTANTIATION
283# include "itkGPUFiniteDifferenceImageFilter.hxx"
typename ConstNeighborhoodIterator< TImageType >::RadiusType RadiusType
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
typename FiniteDifferenceFunctionType::NeighborhoodScalesType NeighborhoodScalesType
OutputPixelType PixelType
typename NumericTraits< InputPixelType >::ValueType InputPixelValueType
typename TInputImage::PixelType InputPixelType
typename FiniteDifferenceFunctionType::RadiusType RadiusType
typename TOutputImage::PixelType OutputPixelType
typename NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
Base class for GPU Finite Difference Image Filters.
void PostProcessOutput() override
void CopyInputToOutput() override=0
~GPUFiniteDifferenceImageFilter() override
void SetDifferenceFunction(FiniteDifferenceFunctionType *differenceFunction) override
void InitializeIteration() override
virtual TimeStepType GPUCalculateChange()=0
void SetStateToInitialized()
void Initialize() override
void GPUGenerateData() override
bool ThreadedHalt(void *) override
const FiniteDifferenceFunctionType::Pointer & GetDifferenceFunction() const override
void GenerateInputRequestedRegion() override
TParentImageFilter CPUSuperclass
TimeProbe m_ApplyUpdateTime
void InitializeFunctionCoefficients()
TimeStepType ResolveTimeStep(const std::vector< TimeStepType > &timeStepList, const BooleanStdVectorType &valid) const override
GPUFiniteDifferenceImageFilter()
void PrintSelf(std::ostream &os, Indent indent) const override
void SetStateToUninitialized()
void AllocateUpdateBuffer() override=0
virtual void GPUApplyUpdate(const TimeStepType &dt)=0
Base class for GPU filters that take an image as input and overwrite that image as the output.
Base class for all process objects that output image data.
TOutputImage OutputImageType
TInputImage InputImageType
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Define additional traits for native types such as int or float.
Computes the time passed between two points in code.
A templated class holding a n-Dimensional vector.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
GPUFiniteDifferenceFilterEnum
std::vector< Boolean > BooleanStdVectorType