Slicer  4.11
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  AnisotropicSimilarity3DTransform(const Self &) = delete;
68  void operator=(const Self &) = delete;
69 
71  itkTypeMacro( AnisotropicSimilarity3DTransform, VersorRigid3DTransform );
72 
74  itkStaticConstMacro(SpaceDimension, unsigned int, 3);
75  itkStaticConstMacro(InputSpaceDimension, unsigned int, 3);
76  itkStaticConstMacro(OutputSpaceDimension, unsigned int, 3);
77  itkStaticConstMacro(ParametersDimension, unsigned int, 9);
78 
80  typedef typename Superclass::ParametersType ParametersType;
81  typedef typename Superclass::JacobianType JacobianType;
82  typedef typename Superclass::ScalarType ScalarType;
83  typedef typename Superclass::InputPointType InputPointType;
84  typedef typename Superclass::OutputPointType OutputPointType;
85  typedef typename Superclass::InputVectorType InputVectorType;
86  typedef typename Superclass::OutputVectorType OutputVectorType;
87  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
88  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
89 
90  typedef typename Superclass::InputCovariantVectorType
92  typedef typename Superclass::OutputCovariantVectorType
94 
95  typedef typename Superclass::MatrixType MatrixType;
96  typedef typename Superclass::InverseMatrixType InverseMatrixType;
97  typedef typename Superclass::CenterType CenterType;
98  typedef typename Superclass::OffsetType OffsetType;
99  typedef typename Superclass::TranslationType TranslationType;
100 
102  typedef typename Superclass::VersorType VersorType;
103  typedef typename Superclass::AxisType AxisType;
104  typedef typename Superclass::AngleType AngleType;
105  typedef typename Superclass::InputVectorType VectorType;
106  typedef TScalarType ScaleType;
107 
113  using itk::Rigid3DTransform<TScalarType>::SetMatrix;
114  void SetMatrix(const MatrixType & matrix) override;
115 
120  void SetParameters( const ParametersType & parameters ) override;
121 
122  const ParametersType& GetParameters() const override;
123 
125  void SetScale( ScaleType scale );
126 
127  void SetScale( VectorType scale );
128 
130 
135  void ComputeJacobianWithRespectToParameters(const InputPointType & p, JacobianType & jacobian) const override;
136 
137 protected:
138  AnisotropicSimilarity3DTransform(const MatrixType & matrix, const OutputVectorType & offset);
139  AnisotropicSimilarity3DTransform(unsigned int paramDim);
141  ~AnisotropicSimilarity3DTransform() override = default;;
142 
143  void PrintSelf(std::ostream & os, Indent indent) const override;
144 
147  void ComputeMatrix() override;
148 
150  void ComputeMatrixParameters() override;
151 
152 private:
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 */
itkStaticConstMacro(SpaceDimension, unsigned int, 3)
itkTypeMacro(AnisotropicSimilarity3DTransform, VersorRigid3DTransform)
void operator=(const Self &)=delete
void SetMatrix(const MatrixType &matrix) override
Superclass::InputCovariantVectorType InputCovariantVectorType
Simplified inverse ITK transforms.
void PrintSelf(std::ostream &os, Indent indent) const override
const ParametersType & GetParameters() const override
AnisotropicSimilarity3DTransform of a vector space (e.g. space coordinates)
~AnisotropicSimilarity3DTransform() override=default
Superclass::OutputCovariantVectorType OutputCovariantVectorType
itkGetConstReferenceMacro(Scale, VectorType)
VersorRigid3DTransform< TScalarType > Superclass
void ComputeJacobianWithRespectToParameters(const InputPointType &p, JacobianType &jacobian) const override
void SetParameters(const ParametersType &parameters) override