Slicer  4.10
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
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