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  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 
19 /*=========================================================================
20 
21  Program: Insight Segmentation & Registration Toolkit
22  Module: $RCSfile: itkAffineDTI3DTransform.h,v $
23  Language: C++
24  Date: $Date: 2008-10-13 15:36:31 $
25  Version: $Revision: 1.14 $
26 
27  Copyright (c) Insight Software Consortium. All rights reserved.
28  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
29 
30  This software is distributed WITHOUT ANY WARRANTY; without even
31  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
32  PURPOSE. See the above copyright notices for more information.
33 
34 =========================================================================*/
35 #ifndef __itkAffineDTI3DTransform_h
36 #define __itkAffineDTI3DTransform_h
37 
38 #include <iostream>
40 
41 namespace itk
42 {
43 
78 template< class TScalarType = double >
79 // Data type for scalars (float or double)
81  public AdvancedMatrixOffsetTransformBase< TScalarType, 3, 3 >
82 {
83 public:
84 
89  typedef SmartPointer< const Self > ConstPointer;
90 
92  itkNewMacro( Self );
93 
96 
98  itkStaticConstMacro( SpaceDimension, unsigned int, 3 );
99  itkStaticConstMacro( InputSpaceDimension, unsigned int, 3 );
100  itkStaticConstMacro( OutputSpaceDimension, unsigned int, 3 );
101  itkStaticConstMacro( ParametersDimension, unsigned int, 12 );
102 
121 
122  typedef typename Superclass
125  typedef typename Superclass
128  typedef typename Superclass
131 
132  typedef FixedArray< ScalarType > ScalarArrayType;
133 
139  void SetParameters( const ParametersType & parameters );
140 
141  const ParametersType & GetParameters( void ) const;
142 
144  virtual void GetJacobian(
145  const InputPointType &,
146  JacobianType &,
147  NonZeroJacobianIndicesType & ) const;
148 
149  virtual void SetIdentity( void );
150 
151 protected:
152 
154  AffineDTI3DTransform( const MatrixType & matrix,
155  const OutputPointType & offset );
156  AffineDTI3DTransform( unsigned int outputSpaceDims,
157  unsigned int paramsSpaceDims );
158 
160 
161  void PrintSelf( std::ostream & os, Indent indent ) const;
162 
165  ScalarArrayType angle,
166  ScalarArrayType shear,
167  ScalarArrayType scale );
168 
170  void ComputeMatrix( void );
171 
172  void ComputeMatrixParameters( void );
173 
175  virtual void PrecomputeJacobianOfSpatialJacobian( void );
176 
177 private:
178 
179  AffineDTI3DTransform( const Self & ); // purposely not implemented
180  void operator=( const Self & ); // purposely not implemented
181 
182  ScalarArrayType m_Angle;
183  ScalarArrayType m_Shear;
184  ScalarArrayType m_Scale;
185 
186 };
187 
188 } // namespace itk
189 
190 #ifndef ITK_MANUAL_INSTANTIATION
191 #include "itkAffineDTI3DTransform.hxx"
192 #endif
193 
194 #endif /* __itkAffineDTI3DTransform_h */
Superclass::InternalMatrixType InternalMatrixType
Superclass::ScalarType ScalarType
Superclass::OutputVnlVectorType OutputVnlVectorType
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
AffineDTI3DTransform of a vector space (e.g. space coordinates)
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
itkStaticConstMacro(SpaceDimension, unsigned int, 3)
Matrix< TScalarType, itkGetStaticConstMacro(OutputSpaceDimension), itkGetStaticConstMacro(InputSpaceDimension) > MatrixType
Superclass::InputVectorType InputVectorType
Superclass::NumberOfParametersType NumberOfParametersType
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 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo