itkVolumeSplineKernelTransform.h
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 __itkVolumeSplineKernelTransform_h
00018 #define __itkVolumeSplineKernelTransform_h
00019
00020 #include "itkKernelTransform.h"
00021
00022 namespace itk
00023 {
00032 template <class TScalarType,
00033
00034 unsigned int NDimensions = 3>
00035 class ITK_EXPORT VolumeSplineKernelTransform :
00036 public KernelTransform< TScalarType, NDimensions>
00037 {
00038 public:
00040 typedef VolumeSplineKernelTransform Self;
00041 typedef KernelTransform<TScalarType, NDimensions> Superclass;
00042 typedef SmartPointer<Self> Pointer;
00043 typedef SmartPointer<const Self> ConstPointer;
00044
00046 itkNewMacro( Self );
00047
00049 itkTypeMacro( VolumeSplineKernelTransform, KernelTransform );
00050
00052 typedef typename Superclass::ScalarType ScalarType;
00053
00055 typedef typename Superclass::ParametersType ParametersType;
00056
00058 typedef typename Superclass::JacobianType JacobianType;
00059
00061 itkStaticConstMacro(SpaceDimension, unsigned int,
00062 Superclass::SpaceDimension);
00063
00066 typedef typename Superclass::InputPointType InputPointType;
00067 typedef typename Superclass::OutputPointType OutputPointType;
00068 typedef typename Superclass::InputVectorType InputVectorType;
00069 typedef typename Superclass::OutputVectorType OutputVectorType;
00070 typedef typename Superclass::InputCovariantVectorType
00071 InputCovariantVectorType;
00072 typedef typename Superclass::OutputCovariantVectorType
00073 OutputCovariantVectorType;
00074 typedef typename Superclass::PointsIterator PointsIterator;
00075
00076
00077 protected:
00078 VolumeSplineKernelTransform() {};
00079 virtual ~VolumeSplineKernelTransform() {}
00080
00083 typedef typename Superclass::GMatrixType GMatrixType;
00084
00093 virtual void ComputeG(const InputVectorType& landmarkVector,
00094 GMatrixType & gmatrix) const;
00095
00100 itkLegacyMacro( virtual const GMatrixType & ComputeG(
00101 const InputVectorType & landmarkVector
00102 ) const );
00103
00104
00107 virtual void ComputeDeformationContribution(
00108 const InputPointType & inputPoint,
00109 OutputPointType & result ) const;
00110
00111 private:
00112 VolumeSplineKernelTransform(const Self&);
00113 void operator=(const Self&);
00114
00115 };
00116
00117 }
00118
00119
00120 #define ITK_TEMPLATE_VolumeSplineKernelTransform(_, EXPORT, x, y) \
00121 namespace itk { \
00122 _(2(class EXPORT VolumeSplineKernelTransform< ITK_TEMPLATE_2 x >)) \
00123 namespace Templates { typedef \
00124 VolumeSplineKernelTransform< ITK_TEMPLATE_2 x > \
00125 VolumeSplineKernelTransform##y; } \
00126 }
00127
00128 #if ITK_TEMPLATE_EXPLICIT
00129 # include "Templates/itkVolumeSplineKernelTransform+-.h"
00130 #endif
00131
00132 #if ITK_TEMPLATE_TXX
00133 # include "itkVolumeSplineKernelTransform.txx"
00134 #endif
00135
00136 #endif // __itkVolumeSplineKernelTransform_h
00137