Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Components
Interpolators
RayCastInterpolator
elxRayCastInterpolator.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
#ifndef __elxRayCastInterpolator_h
15
#define __elxRayCastInterpolator_h
16
17
#include "
itkAdvancedRayCastInterpolateImageFunction.h
"
18
#include "
itkAdvancedCombinationTransform.h
"
19
#include "
itkAdvancedTransform.h
"
20
#include "../Transforms/EulerTransform/itkEulerTransform.h"
21
#include "
elxIncludes.h
"
22
23
namespace
elastix
24
{
25
26
using namespace
itk;
27
41
template
<
class
TElastix >
42
class
RayCastInterpolator
:
43
public
44
AdvancedRayCastInterpolateImageFunction
<
45
ITK_TYPENAME InterpolatorBase<TElastix>::InputImageType,
46
ITK_TYPENAME InterpolatorBase<TElastix>::CoordRepType >,
47
public
48
InterpolatorBase
<TElastix>
49
{
50
public
:
51
53
typedef
RayCastInterpolator
Self
;
54
typedef
AdvancedRayCastInterpolateImageFunction
<
55
typename
InterpolatorBase<TElastix>::InputImageType
,
56
typename
InterpolatorBase<TElastix>::CoordRepType
>
Superclass1
;
57
typedef
InterpolatorBase<TElastix>
Superclass2
;
58
typedef
SmartPointer<Self>
Pointer
;
59
typedef
SmartPointer<const Self>
ConstPointer
;
60
62
itkNewMacro(
Self
);
63
65
itkTypeMacro(
RayCastInterpolator
,
AdvancedRayCastInterpolateImageFunction
);
66
71
elxClassNameMacro
(
"RayCastInterpolator"
);
72
74
itkStaticConstMacro( ImageDimension,
unsigned
int
, Superclass1::ImageDimension );
75
77
typedef
typename
Superclass1::OutputType
OutputType
;
78
typedef
typename
Superclass1::InputImageType
InputImageType
;
79
typedef
typename
Superclass1::IndexType
IndexType
;
80
typedef
typename
Superclass1::ContinuousIndexType
ContinuousIndexType
;
81
typedef
typename
Superclass1::PointType
PointType
;
82
typedef
typename
Superclass1::SizeType
SizeType
;
83
typedef
typename
InputImageType::SpacingType
SpacingType
;
84
86
typedef
typename
Superclass2::ElastixType
ElastixType
;
87
typedef
typename
Superclass2::ElastixPointer
ElastixPointer
;
88
typedef
typename
Superclass2::ConfigurationType
ConfigurationType
;
89
typedef
typename
Superclass2::ConfigurationPointer
ConfigurationPointer
;
90
typedef
typename
Superclass2::RegistrationType
RegistrationType
;
91
typedef
typename
Superclass2::RegistrationPointer
RegistrationPointer
;
92
typedef
typename
Superclass2::ITKBaseType
ITKBaseType
;
93
95
typedef
typename
itk::EulerTransform<
96
typename
InterpolatorBase<TElastix>::CoordRepType
,
97
ImageDimension >
EulerTransformType
;
98
typedef
typename
EulerTransformType::ParametersType
TransformParametersType
;
99
typedef
typename
EulerTransformType::Pointer
EulerTransformPointer
;
100
typedef
typename
itk::AdvancedTransform
<
101
typename
InterpolatorBase<TElastix>::CoordRepType
,
102
itkGetStaticConstMacro( ImageDimension ),
103
itkGetStaticConstMacro( ImageDimension ) >
AdvancedTransformType
;
104
typedef
typename
AdvancedTransformType::Pointer
AdvancedTransformPointer
;
105
typedef
typename
itk::AdvancedCombinationTransform
<
106
typename
InterpolatorBase<TElastix>::CoordRepType
,
107
itkGetStaticConstMacro( ImageDimension ) >
CombinationTransformType
;
108
typedef
typename
CombinationTransformType::Pointer
CombinationTransformPointer
;
109
110
protected
:
111
113
RayCastInterpolator
() {}
114
116
virtual
~RayCastInterpolator
() {}
117
118
virtual
int
BeforeAll(
void
);
119
120
virtual
void
BeforeRegistration(
void
);
121
122
virtual
void
BeforeEachResolution(
void
);
123
124
private
:
125
127
RayCastInterpolator
(
const
Self& );
// purposely not implemented
128
130
void
operator=(
const
Self& );
// purposely not implemented
131
132
EulerTransformPointer
m_PreTransform
;
133
TransformParametersType
m_PreParameters
;
134
CombinationTransformPointer
m_CombinationTransform
;
135
136
};
// end class RayCastInterpolator
137
138
139
}
// end namespace elastix
140
141
#ifndef ITK_MANUAL_INSTANTIATION
142
#include "elxRayCastInterpolator.hxx"
143
#endif
144
145
#endif // end #ifndef __elxRayCastInterpolator_h
146
Generated on 21-03-2014 for elastix by
1.8.1.2