go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedEuler3DTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkAdvancedEuler3DTransform.h,v $
5  Language: C++
6  Date: $Date: 2008-10-13 15:36:31 $
7  Version: $Revision: 1.14 $
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 #ifndef __itkAdvancedEuler3DTransform_h
18 #define __itkAdvancedEuler3DTransform_h
19 
20 #include <iostream>
22 
23 namespace itk
24 {
25 
46 template < class TScalarType=double > // Data type for scalars (float or double)
47 class ITK_EXPORT AdvancedEuler3DTransform :
48  public AdvancedRigid3DTransform< TScalarType >
49 {
50 public:
54  typedef SmartPointer<Self> Pointer;
55  typedef SmartPointer<const Self> ConstPointer;
56 
58  itkNewMacro( Self );
59 
62 
64  itkStaticConstMacro(SpaceDimension, unsigned int, 3);
65  itkStaticConstMacro(InputSpaceDimension, unsigned int, 3);
66  itkStaticConstMacro(OutputSpaceDimension, unsigned int, 3);
67  itkStaticConstMacro(ParametersDimension, unsigned int, 6);
68 
87 
88  typedef typename Superclass
91  typedef typename Superclass
94  typedef typename Superclass
97 
102  void SetParameters( const ParametersType & parameters );
103  const ParametersType& GetParameters(void) const;
104 
106  void SetRotation(ScalarType angleX,ScalarType angleY,ScalarType angleZ);
107  itkGetConstMacro(AngleX, ScalarType);
108  itkGetConstMacro(AngleY, ScalarType);
109  itkGetConstMacro(AngleZ, ScalarType);
110 
112  virtual void GetJacobian(
113  const InputPointType &,
114  JacobianType &,
115  NonZeroJacobianIndicesType & ) const;
116 
118  itkSetMacro(ComputeZYX,bool);
119  itkGetConstMacro(ComputeZYX,bool);
120 
121  virtual void SetIdentity(void);
122 
123 
124 protected:
126  AdvancedEuler3DTransform(const MatrixType & matrix,
127  const OutputPointType & offset);
128  AdvancedEuler3DTransform(unsigned int paramsSpaceDims);
129 
131 
132  void PrintSelf(std::ostream &os, Indent indent) const;
133 
135  void SetVarRotation(ScalarType angleX, ScalarType angleY, ScalarType angleZ);
136 
138  void ComputeMatrix(void);
139  void ComputeMatrixParameters(void);
140 
142  virtual void PrecomputeJacobianOfSpatialJacobian(void);
143 
144 private:
145  AdvancedEuler3DTransform(const Self&); //purposely not implemented
146  void operator=(const Self&); //purposely not implemented
147 
152 
153 }; //class AdvancedEuler3DTransform
154 
155 
156 } // namespace itk
157 
158 // Define instantiation macro for this template.
159 #define ITK_TEMPLATE_AdvancedEuler3DTransform(_, EXPORT, x, y) namespace itk { \
160  _(1(class EXPORT AdvancedEuler3DTransform< ITK_TEMPLATE_1 x >)) \
161  namespace Templates { typedef AdvancedEuler3DTransform< ITK_TEMPLATE_1 x > \
162  AdvancedEuler3DTransform##y; } \
163  }
164 
165 #if ITK_TEMPLATE_EXPLICIT
166 # include "Templates/itkAdvancedEuler3DTransform+-.h"
167 #endif
168 
169 #if ITK_TEMPLATE_TXX
170 # include "itkAdvancedEuler3DTransform.txx"
171 #endif
172 
173 #endif /* __itkAdvancedEuler3DTransform_h */
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
SmartPointer< const Self > ConstPointer
Superclass::TranslationType TranslationType
Superclass::OutputVnlVectorType OutputVnlVectorType
AdvancedRigid3DTransform of a vector space (e.g. space coordinates)
Superclass::OutputVectorType OutputVectorType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::InternalMatrixType InternalMatrixType
Superclass::ParametersType ParametersType
AdvancedRigid3DTransform< TScalarType > Superclass
Superclass::OutputPointType OutputPointType
Superclass::ParametersType ParametersType
Superclass::InputVectorType InputVectorType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::InputPointType InputPointType
AdvancedEuler3DTransform of a vector space (e.g. space coordinates)
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::OutputPointType OutputPointType
Superclass::InputPointType InputPointType
Superclass::SpatialJacobianType SpatialJacobianType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Superclass::InverseMatrixType InverseMatrixType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::InputCovariantVectorType InputCovariantVectorType
Superclass::SpatialHessianType SpatialHessianType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType


Generated on 04-01-2014 for elastix by doxygen 1.8.5 elastix logo