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 >
47 // Data type for scalars (float or double)
48 class ITK_EXPORT AdvancedEuler3DTransform :
49  public AdvancedRigid3DTransform< TScalarType >
50 {
51 public:
52 
56  typedef SmartPointer< Self > Pointer;
57  typedef SmartPointer< const Self > ConstPointer;
58 
60  itkNewMacro( Self );
61 
64 
66  itkStaticConstMacro( SpaceDimension, unsigned int, 3 );
67  itkStaticConstMacro( InputSpaceDimension, unsigned int, 3 );
68  itkStaticConstMacro( OutputSpaceDimension, unsigned int, 3 );
69  itkStaticConstMacro( ParametersDimension, unsigned int, 6 );
70 
89 
90  typedef typename Superclass
93  typedef typename Superclass
96  typedef typename Superclass
99 
104  void SetParameters( const ParametersType & parameters );
105 
106  const ParametersType & GetParameters( void ) const;
107 
109  void SetRotation( ScalarType angleX, ScalarType angleY, ScalarType angleZ );
110 
111  itkGetConstMacro( AngleX, ScalarType );
112  itkGetConstMacro( AngleY, ScalarType );
113  itkGetConstMacro( AngleZ, ScalarType );
114 
116  virtual void GetJacobian(
117  const InputPointType &,
118  JacobianType &,
119  NonZeroJacobianIndicesType & ) const;
120 
122  itkSetMacro( ComputeZYX, bool );
123  itkGetConstMacro( ComputeZYX, bool );
124 
125  virtual void SetIdentity( void );
126 
127 protected:
128 
130  AdvancedEuler3DTransform( const MatrixType & matrix,
131  const OutputPointType & offset );
132  AdvancedEuler3DTransform( unsigned int paramsSpaceDims );
133 
135 
136  void PrintSelf( std::ostream & os, Indent indent ) const;
137 
139  void SetVarRotation( ScalarType angleX, ScalarType angleY, ScalarType angleZ );
140 
142  void ComputeMatrix( void );
143 
144  void ComputeMatrixParameters( void );
145 
147  virtual void PrecomputeJacobianOfSpatialJacobian( void );
148 
149 private:
150 
151  AdvancedEuler3DTransform( const Self & ); //purposely not implemented
152  void operator=( const Self & ); //purposely not implemented
153 
158 
159 };
160 
161 //class AdvancedEuler3DTransform
162 
163 } // namespace itk
164 
165 #ifndef ITK_MANUAL_INSTANTIATION
166 #include "itkAdvancedEuler3DTransform.hxx"
167 #endif
168 
169 #endif /* __itkAdvancedEuler3DTransform_h */
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::SpatialHessianType SpatialHessianType
Superclass::SpatialJacobianType SpatialJacobianType
Superclass::TranslationType TranslationType
Superclass::TranslationType TranslationType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::OutputVectorType OutputVectorType
AdvancedRigid3DTransform of a vector space (e.g. space coordinates)
Superclass::OutputVectorType OutputVectorType
Superclass::InternalMatrixType InternalMatrixType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::InputCovariantVectorType InputCovariantVectorType
Superclass::InputVectorType InputVectorType
Superclass::InternalMatrixType InternalMatrixType
SmartPointer< const Self > ConstPointer
Superclass::ParametersType ParametersType
AdvancedRigid3DTransform< TScalarType > Superclass
Superclass::OutputPointType OutputPointType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
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::InputVnlVectorType InputVnlVectorType
Superclass::SpatialHessianType SpatialHessianType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType


Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo