Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Transforms
AdvancedAffineTransform
elxAdvancedAffineTransform.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
#ifndef __elxAdvancedAffineTransform_H_
16
#define __elxAdvancedAffineTransform_H_
17
18
#include "
itkAdvancedMatrixOffsetTransformBase.h
"
19
#include "
itkAdvancedCombinationTransform.h
"
20
21
#include "
itkCenteredTransformInitializer2.h
"
22
#include "
elxIncludes.h
"
23
24
namespace
elastix
25
{
26
using namespace
itk;
27
75
template
<
class
TElastix >
76
class
AdvancedAffineTransformElastix
:
77
public
AdvancedCombinationTransform
<
78
ITK_TYPENAME elx::TransformBase<TElastix>::CoordRepType,
79
elx::TransformBase<TElastix>::FixedImageDimension > ,
80
public
elx::TransformBase
<TElastix>
81
{
82
public
:
83
85
typedef
AdvancedAffineTransformElastix
Self
;
86
typedef
AdvancedCombinationTransform
<
87
typename
elx::TransformBase<TElastix>::CoordRepType
,
88
elx::TransformBase<TElastix>::FixedImageDimension
>
Superclass1
;
89
typedef
elx::TransformBase<TElastix>
Superclass2
;
90
typedef
SmartPointer<Self>
Pointer
;
91
typedef
SmartPointer<const Self>
ConstPointer
;
92
95
typedef
AdvancedMatrixOffsetTransformBase
<
96
typename
elx::TransformBase<TElastix>::CoordRepType
,
97
elx::TransformBase<TElastix>::FixedImageDimension
,
98
elx::TransformBase<TElastix>::MovingImageDimension
>
AffineTransformType
;
99
101
itkNewMacro(
Self
);
102
104
itkTypeMacro(
AdvancedAffineTransformElastix
,
AdvancedCombinationTransform
);
105
110
elxClassNameMacro
(
"AffineTransform"
);
111
113
itkStaticConstMacro( SpaceDimension,
unsigned
int
, Superclass2::FixedImageDimension );
114
116
typedef
typename
Superclass1::ScalarType
ScalarType
;
117
typedef
typename
Superclass1::ParametersType
ParametersType
;
118
typedef
typename
Superclass1::JacobianType
JacobianType
;
119
typedef
typename
Superclass1::InputVectorType
InputVectorType
;
120
typedef
typename
Superclass1::OutputVectorType
OutputVectorType
;
121
typedef
typename
Superclass1::InputCovariantVectorType
InputCovariantVectorType
;
122
typedef
typename
Superclass1::OutputCovariantVectorType
OutputCovariantVectorType
;
123
typedef
typename
Superclass1::InputVnlVectorType
InputVnlVectorType
;
124
typedef
typename
Superclass1::OutputVnlVectorType
OutputVnlVectorType
;
125
typedef
typename
Superclass1::InputPointType
InputPointType
;
126
typedef
typename
Superclass1::OutputPointType
OutputPointType
;
127
129
typedef
typename
Superclass2::ElastixType
ElastixType
;
130
typedef
typename
Superclass2::ElastixPointer
ElastixPointer
;
131
typedef
typename
Superclass2::ConfigurationType
ConfigurationType
;
132
typedef
typename
Superclass2::ConfigurationPointer
ConfigurationPointer
;
133
typedef
typename
Superclass2::RegistrationType
RegistrationType
;
134
typedef
typename
Superclass2::RegistrationPointer
RegistrationPointer
;
135
typedef
typename
Superclass2::CoordRepType
CoordRepType
;
136
typedef
typename
Superclass2::FixedImageType
FixedImageType
;
137
typedef
typename
Superclass2::MovingImageType
MovingImageType
;
138
typedef
typename
Superclass2::ITKBaseType
ITKBaseType
;
139
typedef
typename
Superclass2::CombinationTransformType
CombinationTransformType
;
140
142
typedef
typename
FixedImageType::IndexType
IndexType
;
143
typedef
typename
IndexType::IndexValueType
IndexValueType
;
144
typedef
typename
FixedImageType::SizeType
SizeType
;
145
typedef
typename
FixedImageType::PointType
PointType
;
146
typedef
typename
FixedImageType::SpacingType
SpacingType
;
147
typedef
typename
FixedImageType::RegionType
RegionType
;
148
typedef
typename
FixedImageType::DirectionType
DirectionType
;
149
150
//typedef CenteredTransformInitializer<
151
typedef
CenteredTransformInitializer2
<
152
AffineTransformType
,
FixedImageType
,
MovingImageType
>
TransformInitializerType
;
153
typedef
typename
TransformInitializerType::Pointer
TransformInitializerPointer
;
154
typedef
typename
AffineTransformType::Pointer
AffineTransformPointer
;
155
157
typedef
typename
Superclass2::ScalesType
ScalesType
;
158
163
virtual
void
BeforeRegistration(
void
);
164
180
virtual
void
InitializeTransform(
void
);
181
189
virtual
void
SetScales(
void
);
190
195
virtual
void
ReadFromFile(
void
);
196
200
virtual
void
WriteToFile(
const
ParametersType
& param )
const
;
201
202
protected
:
203
205
AdvancedAffineTransformElastix
();
207
virtual
~AdvancedAffineTransformElastix
() {};
208
214
virtual
bool
ReadCenterOfRotationIndex( InputPointType & rotationPoint )
const
;
215
221
virtual
bool
ReadCenterOfRotationPoint( InputPointType & rotationPoint )
const
;
222
223
private
:
224
226
AdvancedAffineTransformElastix
(
const
Self& );
// purposely not implemented
228
void
operator=(
const
Self& );
// purposely not implemented
229
230
AffineTransformPointer
m_AffineTransform
;
231
232
};
// end class AdvancedAffineTransformElastix
233
234
235
}
// end namespace elastix
236
237
#ifndef ITK_MANUAL_INSTANTIATION
238
#include "elxAdvancedAffineTransform.hxx"
239
#endif
240
241
#endif // end #ifndef __elxAdvancedAffineTransform_H_
Generated on 27-06-2013 for elastix by
1.8.3.1