itkElasticBodySplineKernelTransform.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 __itkElasticBodySplineKernelTransform_h
00018 #define __itkElasticBodySplineKernelTransform_h
00019
00020 #include "itkKernelTransform.h"
00021
00022
00023 namespace itk
00024 {
00025
00040 template <class TScalarType = double,
00041 unsigned int NDimensions = 3>
00042 class ITK_EXPORT ElasticBodySplineKernelTransform :
00043 public KernelTransform< TScalarType, NDimensions>
00044 {
00045 public:
00047 typedef ElasticBodySplineKernelTransform Self;
00048 typedef KernelTransform< TScalarType,
00049 NDimensions> Superclass;
00050
00051 typedef SmartPointer<Self> Pointer;
00052 typedef SmartPointer<const Self> ConstPointer;
00053
00055 itkTypeMacro( ElasticBodySplineKernelTransform, KernelTransform );
00056
00058 itkNewMacro( Self );
00059
00061 typedef typename Superclass::ScalarType ScalarType;
00062
00064 typedef typename Superclass::ParametersType ParametersType;
00065
00067 typedef typename Superclass::JacobianType JacobianType;
00068
00070 itkStaticConstMacro(SpaceDimension, unsigned int,Superclass::SpaceDimension);
00071
00075 itkSetMacro( Alpha, TScalarType );
00076
00078 itkGetConstMacro( Alpha, TScalarType );
00079
00082 typedef typename Superclass::InputPointType InputPointType;
00083 typedef typename Superclass::OutputPointType OutputPointType;
00084 typedef typename Superclass::InputVectorType InputVectorType;
00085 typedef typename Superclass::OutputVectorType OutputVectorType;
00086 typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
00087 typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
00088
00089
00090 protected:
00091 ElasticBodySplineKernelTransform();
00092 virtual ~ElasticBodySplineKernelTransform();
00093 void PrintSelf(std::ostream& os, Indent indent) const;
00094
00097 typedef typename Superclass::GMatrixType GMatrixType;
00098
00110 virtual void ComputeG(const InputVectorType& landmarkVector, GMatrixType & gmatrix) const;
00111
00115 itkLegacyMacro( virtual const GMatrixType & ComputeG(const InputVectorType& landmarkVector) const );
00116
00120 TScalarType m_Alpha;
00121
00122 private:
00123 ElasticBodySplineKernelTransform(const Self&);
00124 void operator=(const Self&);
00125
00126 };
00127
00128 }
00129
00130
00131 #define ITK_TEMPLATE_ElasticBodySplineKernelTransform(_, EXPORT, x, y) namespace itk { \
00132 _(2(class EXPORT ElasticBodySplineKernelTransform< ITK_TEMPLATE_2 x >)) \
00133 namespace Templates { typedef ElasticBodySplineKernelTransform< ITK_TEMPLATE_2 x > \
00134 ElasticBodySplineKernelTransform##y; } \
00135 }
00136
00137 #if ITK_TEMPLATE_EXPLICIT
00138 # include "Templates/itkElasticBodySplineKernelTransform+-.h"
00139 #endif
00140
00141 #if ITK_TEMPLATE_TXX
00142 # include "itkElasticBodySplineKernelTransform.txx"
00143 #endif
00144
00145 #endif // __itkElasticBodySplineKernelTransform_h
00146