18 #ifndef itkGPUFiniteDifferenceImageFilter_h
19 #define itkGPUFiniteDifferenceImageFilter_h
35 template<
typename TInputImage,
typename TOutputImage,
typename TParentImageFilter =
36 FiniteDifferenceImageFilter< TInputImage, TOutputImage > >
57 itkStaticConstMacro(
ImageDimension,
unsigned int, OutputImageType::ImageDimension);
72 typedef typename FiniteDifferenceFunctionType::TimeStepType
TimeStepType;
73 typedef typename FiniteDifferenceFunctionType::RadiusType
RadiusType;
89 itkDebugMacro(
"setting m_DifferenceFunction to " << differenceFunction);
113 #if !defined( CABLE_CONFIGURATION )
119 #ifdef ITK_USE_STRICT_CONCEPT_CHECKING
127 itkGetConstReferenceMacro(InitTime,
TimeProbe);
128 itkGetConstReferenceMacro(ComputeUpdateTime,
TimeProbe);
129 itkGetConstReferenceMacro(ApplyUpdateTime,
TimeProbe);
130 itkGetConstReferenceMacro(SmoothFieldTime,
TimeProbe);
179 virtual
bool Halt() ITK_OVERRIDE;
190 virtual
bool ThreadedHalt(
void *itkNotUsed(threadInfo) ) ITK_OVERRIDE {
226 const std::vector< bool >& valid)
const ITK_OVERRIDE;
273 #ifndef ITK_MANUAL_INSTANTIATION
274 #include "itkGPUFiniteDifferenceImageFilter.hxx"
virtual void GPUGenerateData() override
~GPUFiniteDifferenceImageFilter()
class to abstract the behaviour of the GPU filters.
void operator=(const Self &)
FiniteDifferenceFunctionType::RadiusType RadiusType
virtual void CopyInputToOutput() override=0
Light weight base class for most itk classes.
Computes the time passed between two points in code.
void PrintSelf(std::ostream &os, Indent indent) const override
virtual const FiniteDifferenceFunctionType::Pointer & GetDifferenceFunction() const override
void InitializeFunctionCoefficients()
FiniteDifferenceFunctionType::TimeStepType TimeStepType
TimeProbe m_ComputeUpdateTime
NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
virtual void Initialize() override
SmartPointer< Self > Pointer
Base class for GPU Finite Difference Image Filters.
TOutputImage OutputImageType
SmartPointer< Self > Pointer
virtual TimeStepType ResolveTimeStep(const std::vector< TimeStepType > &timeStepList, const std::vector< bool > &valid) const override
TInputImage InputImageType
TimeProbe m_SmoothFieldTime
bool m_ManualReinitialization
void SetStateToInitialized()
void SetStateToUninitialized()
GPUFiniteDifferenceFunction< TOutputImage >::DifferenceFunctionType FiniteDifferenceFunctionType
OutputPixelType PixelType
virtual void SetState(FilterStateType _arg)
Base class for GPU filters that take an image as input and overwrite that image as the output...
virtual void InitializeIteration() override
SmartPointer< const Self > ConstPointer
GPUFiniteDifferenceImageFilter Self
virtual void GPUApplyUpdate(const TimeStepType &dt)=0
virtual void GenerateInputRequestedRegion() override
GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > GPUSuperclass
static const unsigned int ImageDimension
virtual bool Halt() override
FiniteDifferenceFunctionType::NeighborhoodScalesType NeighborhoodScalesType
TParentImageFilter CPUSuperclass
TOutputImage::PixelType OutputPixelType
FiniteDifferenceFunctionType::Pointer m_DifferenceFunction
GPUFiniteDifferenceImageFilter()
virtual bool ThreadedHalt(void *) override
Control indentation during Print() invocation.
virtual void PostProcessOutput() override
NumericTraits< InputPixelType >::ValueType InputPixelValueType
TInputImage::PixelType InputPixelType
Define additional traits for native types such as int or float.
virtual void SetDifferenceFunction(FiniteDifferenceFunctionType *differenceFunction) override
virtual void AllocateUpdateBuffer() override=0
virtual TimeStepType GPUCalculateChange()=0
#define itkConceptMacro(name, concept)
TimeProbe m_ApplyUpdateTime