go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAffineDTI3DTransform.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 
15 /*=========================================================================
16 
17  Program: Insight Segmentation & Registration Toolkit
18  Module: $RCSfile: itkAffineDTI3DTransform.h,v $
19  Language: C++
20  Date: $Date: 2008-10-13 15:36:31 $
21  Version: $Revision: 1.14 $
22 
23  Copyright (c) Insight Software Consortium. All rights reserved.
24  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
25 
26  This software is distributed WITHOUT ANY WARRANTY; without even
27  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
28  PURPOSE. See the above copyright notices for more information.
29 
30 =========================================================================*/
31 #ifndef __itkAffineDTI3DTransform_h
32 #define __itkAffineDTI3DTransform_h
33 
34 #include <iostream>
36 
37 namespace itk
38 {
39 
74 template< class TScalarType = double >
75 // Data type for scalars (float or double)
77  public AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
78 {
79 public:
80 
84  typedef SmartPointer< Self > Pointer;
85  typedef SmartPointer< const Self > ConstPointer;
86 
88  itkNewMacro( Self );
89 
92 
94  itkStaticConstMacro( SpaceDimension, unsigned int, 3 );
95  itkStaticConstMacro( InputSpaceDimension, unsigned int, 3 );
96  itkStaticConstMacro( OutputSpaceDimension, unsigned int, 3 );
97  itkStaticConstMacro( ParametersDimension, unsigned int, 12 );
98 
117 
118  typedef typename Superclass
121  typedef typename Superclass
124  typedef typename Superclass
127 
128  typedef FixedArray< ScalarType > ScalarArrayType;
129 
135  void SetParameters( const ParametersType & parameters );
136 
137  const ParametersType & GetParameters( void ) const;
138 
140  virtual void GetJacobian(
141  const InputPointType &,
142  JacobianType &,
143  NonZeroJacobianIndicesType & ) const;
144 
145  virtual void SetIdentity( void );
146 
147 protected:
148 
150  AffineDTI3DTransform( const MatrixType & matrix,
151  const OutputPointType & offset );
152  AffineDTI3DTransform( unsigned int outputSpaceDims,
153  unsigned int paramsSpaceDims );
154 
156 
157  void PrintSelf( std::ostream & os, Indent indent ) const;
158 
161  ScalarArrayType angle,
162  ScalarArrayType shear,
163  ScalarArrayType scale );
164 
166  void ComputeMatrix( void );
167 
168  void ComputeMatrixParameters( void );
169 
171  virtual void PrecomputeJacobianOfSpatialJacobian( void );
172 
173 private:
174 
175  AffineDTI3DTransform( const Self & ); // purposely not implemented
176  void operator=( const Self & ); // purposely not implemented
177 
181 
182 };
183 
184 } // namespace itk
185 
186 #ifndef ITK_MANUAL_INSTANTIATION
187 #include "itkAffineDTI3DTransform.hxx"
188 #endif
189 
190 #endif /* __itkAffineDTI3DTransform_h */
Superclass::InternalMatrixType InternalMatrixType
Superclass::ScalarType ScalarType
Superclass::OutputVnlVectorType OutputVnlVectorType
std::vector< unsigned long > NonZeroJacobianIndicesType
Superclass::JacobianType JacobianType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
const ParametersType & GetParameters(void) const
Superclass::InverseMatrixType InverseMatrixType
SmartPointer< const Self > ConstPointer
Superclass::CenterType CenterType
Superclass::SpatialHessianType SpatialHessianType
Superclass::InputCovariantVectorType InputCovariantVectorType
virtual void GetJacobian(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
Superclass::OutputPointType OutputPointType
void SetParameters(const ParametersType &parameters)
Superclass::InputPointType InputPointType
AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 > Superclass
virtual void PrecomputeJacobianOfSpatialJacobian(void)
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::OffsetType OffsetType
void SetVarAngleScaleShear(ScalarArrayType angle, ScalarArrayType shear, ScalarArrayType scale)
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::ParametersType ParametersType
Transform maps points, vectors and covariant vectors from an input space to an output space...
AffineDTI3DTransform of a vector space (e.g. space coordinates)
Superclass::JacobianType JacobianType
Matrix< TScalarType, itkGetStaticConstMacro(InputSpaceDimension), itkGetStaticConstMacro(OutputSpaceDimension) > InverseMatrixType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::ParametersType ParametersType
Superclass::MatrixType MatrixType
void operator=(const Self &)
Superclass::TranslationType TranslationType
Superclass::OutputVectorType OutputVectorType
Superclass::ScalarType AngleType
Superclass::InputPointType InputPointType
itkStaticConstMacro(SpaceDimension, unsigned int, 3)
Matrix< TScalarType, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension) > MatrixType
Superclass::InputVectorType InputVectorType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::OutputPointType OutputPointType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
void PrintSelf(std::ostream &os, Indent indent) const
virtual void SetIdentity(void)
void ComputeMatrixParameters(void)
FixedArray< ScalarType > ScalarArrayType
Superclass::SpatialJacobianType SpatialJacobianType


Generated on 27-04-2014 for elastix by doxygen 1.8.6 elastix logo