Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
itkAnisotropicSimilarity3DTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkAnisotropicSimilarity3DTransform.h,v $
5  Language: C++
6  Date: $Date: 2006/08/09 04:35:32 $
7  Version: $Revision: 1.3 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 
18 #ifndef itkAnisotropicSimilarity3DTransform_h
19 #define itkAnisotropicSimilarity3DTransform_h
20 
21 #include <iostream>
22 #include "itkVersorRigid3DTransform.h"
23 
24 namespace itk
25 {
26 
51 template <class TScalarType = double>
52 // Data type for scalars (float or double)
54  public VersorRigid3DTransform<TScalarType>
55 {
56 public:
59  typedef VersorRigid3DTransform<TScalarType> Superclass;
60  typedef SmartPointer<Self> Pointer;
61  typedef SmartPointer<const Self> ConstPointer;
62 
64  itkNewMacro( Self );
65 
67  itkTypeMacro( AnisotropicSimilarity3DTransform, VersorRigid3DTransform );
68 
70  itkStaticConstMacro(SpaceDimension, unsigned int, 3);
71  itkStaticConstMacro(InputSpaceDimension, unsigned int, 3);
72  itkStaticConstMacro(OutputSpaceDimension, unsigned int, 3);
73  itkStaticConstMacro(ParametersDimension, unsigned int, 9);
74 
76  typedef typename Superclass::ParametersType ParametersType;
77  typedef typename Superclass::JacobianType JacobianType;
78  typedef typename Superclass::ScalarType ScalarType;
79  typedef typename Superclass::InputPointType InputPointType;
80  typedef typename Superclass::OutputPointType OutputPointType;
81  typedef typename Superclass::InputVectorType InputVectorType;
82  typedef typename Superclass::OutputVectorType OutputVectorType;
83  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
84  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
85 
86  typedef typename Superclass::InputCovariantVectorType
88  typedef typename Superclass::OutputCovariantVectorType
90 
91  typedef typename Superclass::MatrixType MatrixType;
92  typedef typename Superclass::InverseMatrixType InverseMatrixType;
93  typedef typename Superclass::CenterType CenterType;
94  typedef typename Superclass::OffsetType OffsetType;
95  typedef typename Superclass::TranslationType TranslationType;
96 
98  typedef typename Superclass::VersorType VersorType;
99  typedef typename Superclass::AxisType AxisType;
100  typedef typename Superclass::AngleType AngleType;
101  typedef typename Superclass::InputVectorType VectorType;
102  typedef TScalarType ScaleType;
103 
109  using itk::Rigid3DTransform<TScalarType>::SetMatrix;
110  virtual void SetMatrix(const MatrixType & matrix) ITK_OVERRIDE;
111 
116  void SetParameters( const ParametersType & parameters ) ITK_OVERRIDE;
117 
118  virtual const ParametersType & GetParameters(void) const ITK_OVERRIDE;
119 
121  void SetScale( ScaleType scale );
122 
123  void SetScale( VectorType scale );
124 
125  itkGetConstReferenceMacro( Scale, VectorType );
126 
131  virtual void ComputeJacobianWithRespectToParameters(const InputPointType & p, JacobianType & jacobian) const ITK_OVERRIDE;
132 
133 protected:
134  AnisotropicSimilarity3DTransform(const MatrixType & matrix, const OutputVectorType & offset);
135  AnisotropicSimilarity3DTransform(unsigned int paramDim);
138  {
139  };
140 
141  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
142 
145  void ComputeMatrix() ITK_OVERRIDE;
146 
148  void ComputeMatrixParameters() ITK_OVERRIDE;
149 
150 private:
151  AnisotropicSimilarity3DTransform(const Self &); // purposely not implemented
152  void operator=(const Self &); // purposely not implemented
153 
154  VectorType m_Scale;
155 
156 }; // class AnisotropicSimilarity3DTransform
157 
158 } // namespace itk
159 
160 #ifndef ITK_MANUAL_INSTANTIATION
161 #include "itkAnisotropicSimilarity3DTransform.txx"
162 #endif
163 
164 #endif /* itkAnisotropicSimilarity3DTransform_h */
virtual void SetMatrix(const MatrixType &matrix) ITK_OVERRIDE
itkStaticConstMacro(SpaceDimension, unsigned int, 3)
itkTypeMacro(AnisotropicSimilarity3DTransform, VersorRigid3DTransform)
void ComputeMatrixParameters() ITK_OVERRIDE
Superclass::InputCovariantVectorType InputCovariantVectorType
Simplified inverse ITK transforms.
void SetParameters(const ParametersType &parameters) ITK_OVERRIDE
void PrintSelf(std::ostream &os, Indent indent) const ITK_OVERRIDE
AnisotropicSimilarity3DTransform of a vector space (e.g. space coordinates)
Superclass::OutputCovariantVectorType OutputCovariantVectorType
itkGetConstReferenceMacro(Scale, VectorType)
VersorRigid3DTransform< TScalarType > Superclass
virtual void ComputeJacobianWithRespectToParameters(const InputPointType &p, JacobianType &jacobian) const ITK_OVERRIDE
virtual const ParametersType & GetParameters(void) const ITK_OVERRIDE