Orfeo Toolbox  3.16
itkSimilarity2DTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkSimilarity2DTransform.h,v $
5  Language: C++
6  Date: $Date: 2009-11-28 15:58:04 $
7  Version: $Revision: 1.15 $
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 __itkSimilarity2DTransform_h
19 #define __itkSimilarity2DTransform_h
20 
21 #include <iostream>
22 #include "itkRigid2DTransform.h"
23 
24 namespace itk
25 {
26 
62 template < class TScalarType=double > // Data type for scalars (float or double)
64  public Rigid2DTransform< TScalarType >
65 {
66 public:
72 
74  itkNewMacro( Self );
75 
77  itkTypeMacro( Similarity2DTransform, Rigid2DTransform );
78 
80  itkStaticConstMacro(SpaceDimension, unsigned int, 2);
81  itkStaticConstMacro(InputSpaceDimension, unsigned int, 2);
82  itkStaticConstMacro(OutputSpaceDimension, unsigned int, 2);
83  itkStaticConstMacro(ParametersDimension, unsigned int, 4);
84 
86  typedef typename Superclass::ScalarType ScalarType;
87  typedef TScalarType ScaleType;
88 
90  typedef typename Superclass::ParametersType ParametersType;
91  typedef typename Superclass::ParametersValueType ParametersValueType;
92 
94  typedef typename Superclass::JacobianType JacobianType;
95 
97  typedef typename Superclass::OffsetType OffsetType;
98  typedef typename Superclass::OffsetValueType OffsetValueType;
99 
102  typedef typename Superclass::MatrixValueType MatrixValueType;
103 
105  typedef typename Superclass::InputPointType InputPointType;
106  typedef typename Superclass::OutputPointType OutputPointType;
107 
109  typedef typename Superclass::InputVectorType InputVectorType;
110  typedef typename Superclass::OutputVectorType OutputVectorType;
111 
113  typedef typename Superclass::InputCovariantVectorType InputCovariantVectorType;
114  typedef typename Superclass::OutputCovariantVectorType OutputCovariantVectorType;
115 
117  typedef typename Superclass::InputVnlVectorType InputVnlVectorType;
118  typedef typename Superclass::OutputVnlVectorType OutputVnlVectorType;
119 
122  typedef typename Superclass::InverseTransformBaseType InverseTransformBaseType;
124 
126  void SetScale( ScaleType scale );
127  itkGetConstReferenceMacro( Scale, ScaleType );
128 
138  void SetParameters( const ParametersType & parameters );
139 
149  const ParametersType & GetParameters( void ) const;
150 
155  const JacobianType & GetJacobian(const InputPointType &point ) const;
156 
158  virtual void SetIdentity( void );
159 
164  void CloneInverseTo( Pointer & newinverse ) const;
165 
167  bool GetInverse(Self* inverse) const;
168 
170  virtual InverseTransformBasePointer GetInverseTransform() const;
171 
176  void CloneTo( Pointer & clone ) const;
177 
191  virtual void SetMatrix( const MatrixType & matrix );
192 
193 protected:
195  Similarity2DTransform( unsigned int spaceDimension,
196  unsigned int parametersDimension);
197 
199  void PrintSelf(std::ostream &os, Indent indent) const;
200 
204  virtual void ComputeMatrix(void);
205 
210  virtual void ComputeMatrixParameters(void);
211 
213  void SetVarScale( ScaleType scale )
214  { m_Scale = scale; }
215 
216 private:
217  Similarity2DTransform(const Self&); //purposely not implemented
218  void operator=(const Self&); //purposely not implemented
219 
221 
222 }; //class Similarity2DTransform
223 
224 
225 } // namespace itk
226 
227 // Define instantiation macro for this template.
228 #define ITK_TEMPLATE_Similarity2DTransform(_, EXPORT, x, y) namespace itk { \
229  _(1(class EXPORT Similarity2DTransform< ITK_TEMPLATE_1 x >)) \
230  namespace Templates { typedef Similarity2DTransform< ITK_TEMPLATE_1 x > Similarity2DTransform##y; } \
231  }
232 
233 #if ITK_TEMPLATE_EXPLICIT
234 # include "Templates/itkSimilarity2DTransform+-.h"
235 #endif
236 
237 #if ITK_TEMPLATE_TXX
239 #endif
240 
241 #endif /* __itkSimilarity2DTransform_h */

Generated at Sun Feb 3 2013 00:07:05 for Orfeo Toolbox with doxygen 1.8.1.1