Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkScaleSkewVersor3DTransform.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkScaleSkewVersor3DTransform.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/12/29 18:42:37 $ 00007 Version: $Revision: 1.2 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #ifndef __itkScaleSkewVersor3DTransform_h 00019 #define __itkScaleSkewVersor3DTransform_h 00020 00021 #include <iostream> 00022 #include "itkVersorRigid3DTransform.h" 00023 00024 namespace itk 00025 { 00026 00033 template < class TScalarType=double > // Data type for scalars (float or double) 00034 class ITK_EXPORT ScaleSkewVersor3DTransform : 00035 public VersorRigid3DTransform< TScalarType > 00036 { 00037 public: 00039 typedef ScaleSkewVersor3DTransform Self; 00040 typedef VersorRigid3DTransform< TScalarType > Superclass; 00041 typedef SmartPointer<Self> Pointer; 00042 typedef SmartPointer<const Self> ConstPointer; 00043 00045 itkNewMacro( Self ); 00046 00048 itkTypeMacro( ScaleSkewVersor3DTransform, VersorRigid3DTransform ); 00049 00051 itkStaticConstMacro(SpaceDimension, unsigned int, 3); 00052 itkStaticConstMacro(ParametersDimension, unsigned int, 18); 00053 00055 typedef typename Superclass::ScalarType ScalarType; 00056 00058 typedef typename Superclass::ParametersType ParametersType; 00059 00061 typedef typename Superclass::MatrixType MatrixType; 00062 00064 typedef typename Superclass::JacobianType JacobianType; 00065 00067 typedef typename Superclass::VnlQuaternionType VnlQuaternionType; 00068 00070 typedef Vector<TScalarType, itkGetStaticConstMacro(SpaceDimension)> ScaleVectorType; 00071 typedef Vector<TScalarType, 6 > SkewVectorType; 00072 00074 typedef typename Superclass::VersorType VersorType; 00075 typedef typename VersorType::VectorType AxisType; 00076 typedef typename VersorType::ValueType AngleType; 00077 00079 typedef typename Superclass::OffsetType OffsetType; 00080 00082 typedef typename Superclass::InputPointType InputPointType; 00083 typedef typename Superclass::OutputPointType OutputPointType; 00084 00086 typedef typename Superclass::InputVectorType InputVectorType; 00087 typedef typename Superclass::OutputVectorType OutputVectorType; 00088 00090 typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType; 00091 typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType; 00092 00094 typedef typename Superclass::InputVnlVectorType InputVnlVectorType; 00095 typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType; 00096 00106 void SetParameters( const ParametersType & parameters ); 00107 virtual const ParametersType& GetParameters(void) const; 00108 00109 void SetScale( const ScaleVectorType & scale ); 00110 itkGetConstReferenceMacro( Scale, ScaleVectorType ); 00111 00112 void SetSkew( const SkewVectorType & skew ); 00113 itkGetConstReferenceMacro( Skew, SkewVectorType ); 00114 00115 void SetIdentity(); 00116 00117 protected: 00118 ScaleSkewVersor3DTransform(); 00119 ~ScaleSkewVersor3DTransform(){}; 00120 void PrintSelf(std::ostream &os, Indent indent) const; 00121 00122 ScaleSkewVersor3DTransform(unsigned int outputSpaceDimension, unsigned int parametersDimension); 00123 00125 void ComputeMatrixAndOffset(void); 00126 00127 private: 00128 ScaleSkewVersor3DTransform(const Self&); //purposely not implemented 00129 void operator=(const Self&); //purposely not implemented 00130 00132 ScaleVectorType m_Scale; 00133 00135 SkewVectorType m_Skew; 00136 00137 }; //class ScaleSkewVersor3DTransform 00138 00139 00140 } // namespace itk 00141 00142 00143 #ifndef ITK_MANUAL_INSTANTIATION 00144 #include "itkScaleSkewVersor3DTransform.txx" 00145 #endif 00146 00147 #endif /* __ScaleSkewVersor3DTransform_h */

Generated at Sun Apr 1 02:43:04 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000