go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAffineDTITransform.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 elxAffineDTITransform_h
19#define elxAffineDTITransform_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
23#include "itkAffineDTITransform.h"
24#include "itkCenteredTransformInitializer.h"
25
26namespace elastix
27{
28
77template <class TElastix>
78class ITK_TEMPLATE_EXPORT AffineDTITransformElastix
79 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
80 elx::TransformBase<TElastix>::FixedImageDimension>
81 , public elx::TransformBase<TElastix>
82{
83public:
85
91 using Pointer = itk::SmartPointer<Self>;
92 using ConstPointer = itk::SmartPointer<const Self>;
93
96 using AffineDTITransformType = itk::AffineDTITransform<typename elx::TransformBase<TElastix>::CoordRepType,
98
100 itkNewMacro(Self);
101
104
109 elxClassNameMacro("AffineDTITransform");
110
112 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
113
117 using typename Superclass1::ScalarType;
118 using typename Superclass1::ParametersType;
119 using typename Superclass1::NumberOfParametersType;
120 using typename Superclass1::JacobianType;
121
122 using typename Superclass1::InputPointType;
123 using typename Superclass1::OutputPointType;
124 using typename Superclass1::InputVectorType;
125 using typename Superclass1::OutputVectorType;
126 using typename Superclass1::InputCovariantVectorType;
127 using typename Superclass1::OutputCovariantVectorType;
128 using typename Superclass1::InputVnlVectorType;
129 using typename Superclass1::OutputVnlVectorType;
130
131 using AffineDTITransformPointer = typename AffineDTITransformType::Pointer;
132 using OffsetType = typename AffineDTITransformType::OffsetType;
133
135 using typename Superclass2::ElastixType;
136 using typename Superclass2::ParameterMapType;
137 using typename Superclass2::RegistrationType;
138 using typename Superclass2::CoordRepType;
139 using typename Superclass2::FixedImageType;
140 using typename Superclass2::MovingImageType;
143
145 using IndexType = typename FixedImageType::IndexType;
146 using IndexValueType = typename IndexType::IndexValueType;
147 using SizeType = typename FixedImageType::SizeType;
148 using PointType = typename FixedImageType::PointType;
149 using SpacingType = typename FixedImageType::SpacingType;
150 using RegionType = typename FixedImageType::RegionType;
151 using DirectionType = typename FixedImageType::DirectionType;
152
154 itk::CenteredTransformInitializer<AffineDTITransformType, FixedImageType, MovingImageType>;
155 using TransformInitializerPointer = typename TransformInitializerType::Pointer;
156
158 using typename Superclass2::ScalesType;
159
164 void
166
174 virtual void
176
181 void
182 ReadFromFile() override;
183
184protected:
188 ~AffineDTITransformElastix() override = default;
189
192 virtual bool
194
195private:
197
213 void
215
219
220 const AffineDTITransformPointer m_AffineDTITransform{ AffineDTITransformType::New() };
221};
222
223} // end namespace elastix
224
225#ifndef ITK_MANUAL_INSTANTIATION
226# include "elxAffineDTITransform.hxx"
227#endif
228
229#endif // end #ifndef elxAffineDTITransform_h
A transform based on the itk AffineDTITransform.
ParameterMapType CreateDerivedTransformParameterMap() const override
ITK_DISALLOW_COPY_AND_MOVE(AffineDTITransformElastix)
typename Superclass2::ITKBaseType ITKBaseType
typename FixedImageType::SizeType SizeType
itk::SmartPointer< const Self > ConstPointer
typename IndexType::IndexValueType IndexValueType
typename AffineDTITransformType::OffsetType OffsetType
typename AffineDTITransformType::Pointer AffineDTITransformPointer
typename FixedImageType::RegionType RegionType
typename FixedImageType::SpacingType SpacingType
itk::CenteredTransformInitializer< AffineDTITransformType, FixedImageType, MovingImageType > TransformInitializerType
typename TElastix::ParameterMapType ParameterMapType
~AffineDTITransformElastix() override=default
typename TransformInitializerType::Pointer TransformInitializerPointer
elxClassNameMacro("AffineDTITransform")
itk::AffineDTITransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > AffineDTITransformType
typename FixedImageType::PointType PointType
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
virtual bool ReadCenterOfRotationPoint(InputPointType &rotationPoint) const
typename FixedImageType::IndexType IndexType
typename Superclass2::CombinationTransformType CombinationTransformType
typename FixedImageType::DirectionType DirectionType
This class is the elastix base class for all Transforms.
typename TElastix::FixedImageType FixedImageType
typename TElastix::ParameterMapType ParameterMapType
typename TElastix::MovingImageType MovingImageType
typename ElastixType::RegistrationBaseType RegistrationType
typename ITKBaseType::InputPointType InputPointType
itk::Optimizer::ScalesType ScalesType
This class combines two transforms: an 'initial transform' with a 'current transform'.


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo