go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRayCastInterpolator.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 #ifndef __elxRayCastInterpolator_h
19 #define __elxRayCastInterpolator_h
20 
21 #include "elxIncludes.h" // include first to avoid MSVS warning
24 #include "itkAdvancedTransform.h"
25 #include "itkEulerTransform.h"
26 
27 namespace elastix
28 {
29 
43 template< class TElastix >
45  public
47  typename InterpolatorBase< TElastix >::InputImageType,
48  typename InterpolatorBase< TElastix >::CoordRepType >,
49  public
50  InterpolatorBase< TElastix >
51 {
52 public:
53 
60  typedef itk::SmartPointer< Self > Pointer;
61  typedef itk::SmartPointer< const Self > ConstPointer;
62 
64  itkNewMacro( Self );
65 
68 
73  elxClassNameMacro( "RayCastInterpolator" );
74 
76  itkStaticConstMacro( ImageDimension, unsigned int, Superclass1::ImageDimension );
77 
84  typedef typename Superclass1::SizeType SizeType;
85  typedef typename InputImageType::SpacingType SpacingType;
86 
95 
97  typedef typename itk::EulerTransform<
99  ImageDimension > EulerTransformType;
102  typedef typename itk::AdvancedTransform<
103  typename InterpolatorBase< TElastix >::CoordRepType,
104  itkGetStaticConstMacro( ImageDimension ),
105  itkGetStaticConstMacro( ImageDimension ) > AdvancedTransformType;
107  typedef typename itk::AdvancedCombinationTransform<
108  typename InterpolatorBase< TElastix >::CoordRepType,
109  itkGetStaticConstMacro( ImageDimension ) > CombinationTransformType;
111 
112 protected:
113 
116 
118  virtual ~RayCastInterpolator() {}
119 
120  virtual int BeforeAll( void );
121 
122  virtual void BeforeRegistration( void );
123 
124  virtual void BeforeEachResolution( void );
125 
126 private:
127 
129  RayCastInterpolator( 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 };
139 
140 } // end namespace elastix
141 
142 #ifndef ITK_MANUAL_INSTANTIATION
143 #include "elxRayCastInterpolator.hxx"
144 #endif
145 
146 #endif // end #ifndef __elxRayCastInterpolator_h
This class combines two transforms: an 'initial transform' with a 'current transform'.
elxClassNameMacro("RayCastInterpolator")
AdvancedTransformType::Pointer AdvancedTransformPointer
TransformParametersType m_PreParameters
Superclass::ElastixType ElastixType
Superclass2::RegistrationPointer RegistrationPointer
void operator=(const Self &)
An interpolator based on the itkAdvancedRayCastInterpolateImageFunction.
itk::InterpolateImageFunction< InputImageType, CoordRepType > ITKBaseType
virtual void BeforeEachResolution(void)
virtual void BeforeRegistration(void)
This class combines the Euler2DTransform with the Euler3DTransform.
Superclass2::ConfigurationType ConfigurationType
Superclass::ElastixPointer ElastixPointer
Superclass::RegistrationType RegistrationType
CombinationTransformPointer m_CombinationTransform
InterpolatorBase< TElastix > Superclass2
Superclass1::PointType PointType
Transform maps points, vectors and covariant vectors from an input space to an output space...
InputImageType::SpacingType SpacingType
itk::EulerTransform< typename InterpolatorBase< TElastix >::CoordRepType, ImageDimension > EulerTransformType
Superclass2::ITKBaseType ITKBaseType
Superclass::ConfigurationType ConfigurationType
itk::AdvancedTransform< typename InterpolatorBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension) > AdvancedTransformType
ElastixType::CoordRepType CoordRepType
This class is the elastix base class for all Interpolators.
Projective interpolation of an image at specified positions.
EulerTransformType::ParametersType TransformParametersType
Superclass2::ElastixPointer ElastixPointer
ElastixType::MovingImageType InputImageType
EulerTransformPointer m_PreTransform
itk::SmartPointer< Self > Pointer
itk::AdvancedRayCastInterpolateImageFunction< typename InterpolatorBase< TElastix >::InputImageType, typename InterpolatorBase< TElastix >::CoordRepType > Superclass1
Superclass1::OutputType OutputType
Superclass2::ConfigurationPointer ConfigurationPointer
Superclass::RegistrationPointer RegistrationPointer
CombinationTransformType::Pointer CombinationTransformPointer
Superclass::ConfigurationPointer ConfigurationPointer
Superclass2::ElastixType ElastixType
virtual int BeforeAll(void)
Superclass1::ContinuousIndexType ContinuousIndexType
Superclass1::InputImageType InputImageType
itk::AdvancedCombinationTransform< typename InterpolatorBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ImageDimension) > CombinationTransformType
itk::SmartPointer< const Self > ConstPointer
itkStaticConstMacro(ImageDimension, unsigned int, Superclass1::ImageDimension)
EulerTransformType::Pointer EulerTransformPointer
Superclass2::RegistrationType RegistrationType
Superclass1::IndexType IndexType
Superclass::ParametersType ParametersType


Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo