00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkLinearInterpolateImageFunction_h
00018 #define __itkLinearInterpolateImageFunction_h
00019
00020 #include "itkInterpolateImageFunction.h"
00021
00022 namespace itk
00023 {
00024
00042 template <class TInputImage, class TCoordRep = float>
00043 class ITK_EXPORT LinearInterpolateImageFunction :
00044 public InterpolateImageFunction<TInputImage,TCoordRep>
00045 {
00046 public:
00048 typedef LinearInterpolateImageFunction Self;
00049 typedef InterpolateImageFunction<TInputImage,TCoordRep> Superclass;
00050 typedef SmartPointer<Self> Pointer;
00051 typedef SmartPointer<const Self> ConstPointer;
00052
00054 itkTypeMacro(LinearInterpolateImageFunction, InterpolateImageFunction);
00055
00057 itkNewMacro(Self);
00058
00060 typedef typename Superclass::OutputType OutputType;
00061
00063 typedef typename Superclass::InputImageType InputImageType;
00064
00066 typedef typename Superclass::RealType RealType;
00067
00069 itkStaticConstMacro(ImageDimension, unsigned int,Superclass::ImageDimension);
00070
00072 typedef typename Superclass::IndexType IndexType;
00073
00075 typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
00076
00085 virtual OutputType EvaluateAtContinuousIndex(
00086 const ContinuousIndexType & index ) const;
00087
00088 protected:
00089 LinearInterpolateImageFunction();
00090 ~LinearInterpolateImageFunction(){};
00091 void PrintSelf(std::ostream& os, Indent indent) const;
00092
00093 private:
00094 LinearInterpolateImageFunction( const Self& );
00095 void operator=( const Self& );
00096
00098 static const unsigned long m_Neighbors;
00099
00100 };
00101
00102 }
00103
00104
00105 #define ITK_TEMPLATE_LinearInterpolateImageFunction(_, EXPORT, x, y) namespace itk { \
00106 _(2(class EXPORT LinearInterpolateImageFunction< ITK_TEMPLATE_2 x >)) \
00107 namespace Templates { typedef LinearInterpolateImageFunction< ITK_TEMPLATE_2 x > \
00108 LinearInterpolateImageFunction##y; } \
00109 }
00110
00111 #if ITK_TEMPLATE_EXPLICIT
00112 # include "Templates/itkLinearInterpolateImageFunction+-.h"
00113 #endif
00114
00115 #if ITK_TEMPLATE_TXX
00116 # include "itkLinearInterpolateImageFunction.txx"
00117 #endif
00118
00119 #endif
00120