21 #ifndef otbGenericInterpolateImageFunction_h
22 #define otbGenericInterpolateImageFunction_h
24 #include "itkInterpolateImageFunction.h"
25 #include "itkConstNeighborhoodIterator.h"
26 #include "itkConstantBoundaryCondition.h"
43 template <
class TInputImage,
class TFunction,
class TBoundaryCondition = itk::ZeroFluxNeumannBoundaryCondition<TInputImage>,
class TCoordRep =
double>
49 typedef itk::InterpolateImageFunction<TInputImage, TCoordRep>
Superclass;
60 typedef typename Superclass::OutputType
OutputType;
68 typedef typename InputImageType::SizeType
SizeType;
69 typedef typename Superclass::RealType
RealType;
71 typedef itk::ConstNeighborhoodIterator<InputImageType, TBoundaryCondition>
IteratorType;
77 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
90 virtual void SetRadius(
unsigned int rad);
93 return m_Function.GetRadius();
109 virtual void Initialize();
112 itkSetMacro(NormalizeWeight,
bool);
113 itkGetMacro(NormalizeWeight,
bool);
119 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
123 void Modified(
void)
const override;
126 virtual void ResetOffsetTable();
129 virtual void InitializeTables();
132 virtual void FillWeightOffsetTable();
136 void operator=(
const Self&) =
delete;
171 #ifndef OTB_MANUAL_INSTANTIATION