00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkScaleLogarithmicTransform_h
00019 #define __itkScaleLogarithmicTransform_h
00020
00021 #include "itkScaleTransform.h"
00022
00023 namespace itk
00024 {
00025
00034 template <
00035 class TScalarType=float,
00036 unsigned int NDimensions=3 >
00037 class ITK_EXPORT ScaleLogarithmicTransform :
00038 public ScaleTransform< TScalarType,
00039 NDimensions >
00040 {
00041 public:
00043 typedef ScaleLogarithmicTransform Self;
00044 typedef ScaleTransform< TScalarType, NDimensions > Superclass;
00045 typedef SmartPointer<Self> Pointer;
00046 typedef SmartPointer<const Self> ConstPointer;
00047
00049 itkNewMacro( Self );
00050
00052 itkTypeMacro( ScaleLogarithmicTransform, ScaleTransform );
00053
00055 itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions);
00056 itkStaticConstMacro(ParametersDimension, unsigned int, NDimensions);
00057
00059 typedef typename Superclass::ScalarType ScalarType;
00060
00062 typedef typename Superclass::ParametersType ParametersType;
00063
00065 typedef typename Superclass::JacobianType JacobianType;
00066
00068 typedef typename Superclass::ScaleType ScaleType;
00069
00071 typedef typename Superclass::InputVectorType InputVectorType;
00072 typedef typename Superclass::OutputVectorType OutputVectorType;
00073
00075 typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
00076 typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
00077
00079 typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
00080 typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
00081
00083 typedef typename Superclass::InputPointType InputPointType;
00084 typedef typename Superclass::OutputPointType OutputPointType;
00085
00089 void SetParameters(const ParametersType & parameters);
00090
00096 const ParametersType & GetParameters( void ) const;
00097
00099 const JacobianType & GetJacobian( const InputPointType & point ) const;
00100
00101 protected:
00103 ScaleLogarithmicTransform();
00104
00106 ~ScaleLogarithmicTransform();
00107
00109 void PrintSelf(std::ostream &os, Indent indent) const;
00110
00111 private:
00112 ScaleLogarithmicTransform(const Self & other);
00113 const Self & operator=( const Self & );
00114
00115 };
00116
00117 }
00118
00119
00120 #ifndef ITK_MANUAL_INSTANTIATION
00121 #include "itkScaleLogarithmicTransform.txx"
00122 #endif
00123
00124 #endif