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