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

itkFixedCenterOfRotationAffineTransform.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkFixedCenterOfRotationAffineTransform.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:29:08 $ 00007 Version: $Revision: 1.4 $ 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 __itkFixedCenterOfRotationAffineTransform_h 00019 #define __itkFixedCenterOfRotationAffineTransform_h 00020 00021 #include "itkAffineTransform.h" 00022 00023 namespace itk 00024 { 00025 00026 00038 template < 00039 class TScalarType=double, // Data type for scalars (e.g. float or double) 00040 unsigned int NDimensions=3> // Number of dimensions in the input space 00041 class ITK_EXPORT FixedCenterOfRotationAffineTransform 00042 : public AffineTransform< TScalarType, NDimensions > 00043 { 00044 public: 00046 typedef FixedCenterOfRotationAffineTransform Self; 00047 typedef AffineTransform< TScalarType, NDimensions > Superclass; 00048 typedef SmartPointer<Self> Pointer; 00049 typedef SmartPointer<const Self> ConstPointer; 00050 00052 itkTypeMacro( FixedCenterOfRotationAffineTransform, AffineTransform ); 00053 00055 itkNewMacro( Self ); 00056 00058 itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions); 00059 itkStaticConstMacro(ParametersDimension, unsigned int, 00060 NDimensions*(NDimensions+1)); 00061 00062 00064 typedef typename Superclass::ParametersType ParametersType; 00065 typedef typename Superclass::JacobianType JacobianType; 00066 typedef typename Superclass::ScalarType ScalarType; 00067 typedef typename Superclass::InputVectorType InputVectorType; 00068 typedef typename Superclass::OutputVectorType OutputVectorType; 00069 typedef typename Superclass::InputCovariantVectorType 00070 InputCovariantVectorType; 00071 typedef typename Superclass::OutputCovariantVectorType 00072 OutputCovariantVectorType; 00073 typedef typename Superclass::InputVnlVectorType InputVnlVectorType; 00074 typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType; 00075 typedef typename Superclass::InputPointType InputPointType; 00076 typedef typename Superclass::OutputPointType OutputPointType; 00077 typedef typename Superclass::MatrixType MatrixType; 00078 typedef typename Superclass::OffsetType OffsetType; 00079 00083 void SetIdentity( void ); 00084 00086 void PrintSelf(std::ostream &s, Indent indent) const; 00087 00089 void SetCenterOfRotationComponent(const InputPointType &cor); 00090 itkGetConstReferenceMacro( CenterOfRotationComponent, InputPointType ); 00091 00093 virtual void SetScaleComponent( const double scale[NDimensions] ); 00095 virtual const double* GetScaleComponent() const {return m_ScaleComponent;}; 00096 00099 void SetMatrixComponent(const MatrixType &matrix); 00101 const MatrixType & GetMatrixComponent() const { return m_MatrixComponent; } 00102 00104 void SetOffsetComponent(const OffsetType &offset); 00105 00107 const OffsetType & GetOffsetComponent(void) const 00108 { return m_OffsetComponent; } 00109 00113 void SetMatrix(const MatrixType &matrix); 00114 00118 void SetOffset(const OffsetType &offset); 00119 00123 void SetParameters( const ParametersType & parameters ); 00124 00126 const ParametersType& GetParameters(void) const; 00127 00128 protected: 00130 FixedCenterOfRotationAffineTransform(); 00131 00133 virtual ~FixedCenterOfRotationAffineTransform(); 00134 00135 private: 00136 00137 FixedCenterOfRotationAffineTransform(const Self & other); 00138 const Self & operator=( const Self & ); 00139 00140 InputPointType m_CenterOfRotationComponent; 00141 double m_ScaleComponent[NDimensions]; 00142 MatrixType m_MatrixComponent; 00143 MatrixType m_ScaleMatrixComponent; 00144 OffsetType m_OffsetComponent; 00145 00146 void RecomputeMatrix(); 00147 void RecomputeOffset(); 00148 00149 00150 }; //class FixedCenterOfRotationAffineTransform 00151 00152 } // namespace itk 00153 00154 00155 #ifndef ITK_MANUAL_INSTANTIATION 00156 #include "itkFixedCenterOfRotationAffineTransform.txx" 00157 #endif 00158 00159 #endif /* __itkFixedCenterOfRotationAffineTransform_h */ 00160 00161 00162 00163 00164

Generated at Sat Mar 31 02:18:42 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000