Go to the documentation of this file.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
00021
00022
00023 #include "itkConfigure.h"
00024
00025 #ifdef ITK_USE_OPTIMIZED_REGISTRATION_METHODS
00026 #include "itkOptLinearInterpolateImageFunction.h"
00027 #else
00028
00029 #include "itkInterpolateImageFunction.h"
00030
00031 namespace itk
00032 {
00033
00051 template <class TInputImage, class TCoordRep = double>
00052 class ITK_EXPORT LinearInterpolateImageFunction :
00053 public InterpolateImageFunction<TInputImage,TCoordRep>
00054 {
00055 public:
00057 typedef LinearInterpolateImageFunction Self;
00058 typedef InterpolateImageFunction<TInputImage,TCoordRep> Superclass;
00059 typedef SmartPointer<Self> Pointer;
00060 typedef SmartPointer<const Self> ConstPointer;
00061
00063 itkTypeMacro(LinearInterpolateImageFunction, InterpolateImageFunction);
00064
00066 itkNewMacro(Self);
00067
00069 typedef typename Superclass::OutputType OutputType;
00070
00072 typedef typename Superclass::InputImageType InputImageType;
00073
00075 typedef typename Superclass::InputPixelType InputPixelType;
00076
00078 typedef typename Superclass::RealType RealType;
00079
00081 itkStaticConstMacro(ImageDimension, unsigned int,Superclass::ImageDimension);
00082
00084 typedef typename Superclass::IndexType IndexType;
00085 typedef typename Superclass::IndexValueType IndexValueType;
00086
00088 typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
00089
00098 virtual OutputType EvaluateAtContinuousIndex(
00099 const ContinuousIndexType & index ) const;
00100
00101 protected:
00102 LinearInterpolateImageFunction();
00103 ~LinearInterpolateImageFunction(){};
00104 void PrintSelf(std::ostream& os, Indent indent) const;
00105
00106 private:
00107 LinearInterpolateImageFunction( const Self& );
00108 void operator=( const Self& );
00109
00111 static const unsigned long m_Neighbors;
00112
00113 };
00114
00115 }
00116
00117
00118 #define ITK_TEMPLATE_LinearInterpolateImageFunction(_, EXPORT, x, y) namespace itk { \
00119 _(2(class EXPORT LinearInterpolateImageFunction< ITK_TEMPLATE_2 x >)) \
00120 namespace Templates { typedef LinearInterpolateImageFunction< ITK_TEMPLATE_2 x > \
00121 LinearInterpolateImageFunction##y; } \
00122 }
00123
00124 #if ITK_TEMPLATE_EXPLICIT
00125 # include "Templates/itkLinearInterpolateImageFunction+-.h"
00126 #endif
00127
00128 #if ITK_TEMPLATE_TXX
00129 # include "itkLinearInterpolateImageFunction.txx"
00130 #endif
00131
00132 #endif
00133
00134 #endif
00135