18#ifndef itkAdvancedLinearInterpolateImageFunction_h
19#define itkAdvancedLinearInterpolateImageFunction_h
21#include "itkLinearInterpolateImageFunction.h"
62template <
typename TInputImage,
typename TCoordinate =
double>
64 :
public LinearInterpolateImageFunction<TInputImage, TCoordinate>
71 using Superclass = LinearInterpolateImageFunction<TInputImage, TCoordinate>;
82 using typename Superclass::OutputType;
85 using typename Superclass::InputImageType;
89 using typename Superclass::InputPixelType;
92 using typename Superclass::RealType;
98 using typename Superclass::IndexType;
101 using typename Superclass::ContinuousIndexType;
129 template <
unsigned int>
130 struct Dispatch :
public DispatchBase
136 const ContinuousIndexType & x,
143 const ContinuousIndexType & x,
150 const ContinuousIndexType & x,
162 itkExceptionMacro(
"ERROR: EvaluateValueAndDerivativeAtContinuousIndex() is not implemented for this dimension ("
163 << ImageDimension <<
").");
169#ifndef ITK_MANUAL_INSTANTIATION
170# include "itkAdvancedLinearInterpolateImageFunction.hxx"
void EvaluateValueAndDerivativeAtContinuousIndex(const ContinuousIndexType &x, OutputType &value, CovariantVectorType &deriv) const
itkStaticConstMacro(ImageDimension, unsigned int, Superclass::ImageDimension)
void EvaluateValueAndDerivativeOptimized(const Dispatch< 2 > &, const ContinuousIndexType &x, OutputType &value, CovariantVectorType &deriv) const
SmartPointer< const Self > ConstPointer
AdvancedLinearInterpolateImageFunction()=default
AdvancedLinearInterpolateImageFunction Self
ITK_DISALLOW_COPY_AND_MOVE(AdvancedLinearInterpolateImageFunction)
CovariantVectorType EvaluateDerivativeAtContinuousIndex(const ContinuousIndexType &x) const
typename InputImageType::SpacingType InputImageSpacingType
SmartPointer< Self > Pointer
itkOverrideGetNameOfClassMacro(AdvancedLinearInterpolateImageFunction)
void EvaluateValueAndDerivativeUnOptimized(const ContinuousIndexType &, OutputType &, CovariantVectorType &) const
typename ContinuousIndexType::ValueType ContinuousIndexValueType
void EvaluateValueAndDerivativeOptimized(const DispatchBase &, const ContinuousIndexType &x, OutputType &value, CovariantVectorType &deriv) const
void EvaluateValueAndDerivativeOptimized(const Dispatch< 3 > &, const ContinuousIndexType &x, OutputType &value, CovariantVectorType &deriv) const
CovariantVector< OutputType, Self::ImageDimension > CovariantVectorType
LinearInterpolateImageFunction< MovingImageType, CoordinateRepresentationType > Superclass
~AdvancedLinearInterpolateImageFunction() override=default