27#ifndef __vtkITKTransformInverse_h
28#define __vtkITKTransformInverse_h
34 template <
typename TScalar =
double,
unsigned int NDimensions = 3,
unsigned int VSplineOrder = 3>
36 public BSplineTransform<TScalar, NDimensions, VSplineOrder>
41 typedef BSplineTransform<TScalar,NDimensions,VSplineOrder>
Superclass;
53 using Superclass::TransformPoint;
55 const typename Superclass::InputPointType&)
const override
57 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
60 const typename Superclass::InputPointType &,
61 typename Superclass::JacobianType &)
const override
63 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
67 const typename Superclass::InputPointType &,
68 typename Superclass::JacobianType &)
const override
70 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
73 const typename Superclass::InputPointType &,
74 typename Superclass::JacobianPositionType &)
const override
76 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
80 const typename Superclass::InputPointType &,
81 typename Superclass::JacobianType &)
const override
83 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
86 const typename Superclass::InputPointType &,
87 typename Superclass::InverseJacobianPositionType &)
const override
89 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
92 const typename Superclass::InputPointType &,
93 typename Superclass::WeightsType &,
94 typename Superclass::ParameterIndexArrayType &)
const
96 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
101 template <
typename TScalar =
double,
unsigned int NDimensions = 3,
unsigned int VSplineOrder = 3>
103 public BSplineDeformableTransform<TScalar, NDimensions, VSplineOrder>
108 typedef BSplineDeformableTransform<TScalar,NDimensions,VSplineOrder>
Superclass;
120 using Superclass::TransformPoint;
122 const typename Superclass::InputPointType&)
const override
124 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
127 const typename Superclass::InputPointType &,
128 typename Superclass::JacobianType &)
const override
130 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
134 const typename Superclass::InputPointType &,
135 typename Superclass::JacobianType &)
const override
137 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
140 const typename Superclass::InputPointType &,
141 typename Superclass::JacobianPositionType &)
const override
143 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
146 const typename Superclass::InputPointType &,
147 typename Superclass::JacobianType &)
const override
149 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
152 const typename Superclass::InputPointType &,
153 typename Superclass::InverseJacobianPositionType &)
const override
155 itkExceptionMacro(
"Only storage methods are implemented for InverseBSplineTransform" );
161 template <
class TScalar,
unsigned int NDimensions>
163 public DisplacementFieldTransform<TScalar, NDimensions>
168 typedef DisplacementFieldTransform<TScalar, NDimensions>
Superclass;
181 const typename Superclass::InputPointType&)
const override
183 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
186 const typename Superclass::InputPointType &,
187 typename Superclass::JacobianType &)
const override
189 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
192 const typename Superclass::IndexType &,
193 typename Superclass::JacobianType &)
const override
195 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
199 const typename Superclass::InputPointType &,
200 typename Superclass::JacobianType &)
const override
202 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
205 const typename Superclass::InputPointType &,
206 typename Superclass::JacobianPositionType &)
const override
208 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
211 const typename Superclass::IndexType &,
212 typename Superclass::JacobianPositionType &)
const override
214 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
217 const typename Superclass::InputPointType &,
218 typename Superclass::JacobianType &)
const override
220 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
223 const typename Superclass::InputPointType &,
224 typename Superclass::InverseJacobianPositionType &)
const override
226 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
229 const typename Superclass::InputPointType &,
230 typename Superclass::JacobianPositionType &,
231 bool useSVD =
false )
const override
234 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
237 const typename Superclass::IndexType &,
238 typename Superclass::JacobianPositionType &,
239 bool useSVD =
false )
const override
242 itkExceptionMacro(
"Only storage methods are implemented for InverseDisplacementFieldTransform" );
247 template <
class TScalar,
unsigned int NDimensions>
249 public ThinPlateSplineKernelTransform<TScalar, NDimensions>
254 typedef ThinPlateSplineKernelTransform<TScalar, NDimensions>
Superclass;
267 const typename Superclass::InputPointType&)
const override
269 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
272 typename Superclass::OutputPointType &)
const override
274 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
277 const typename Superclass::InputPointType &,
278 typename Superclass::JacobianType &)
const override
280 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
284 const typename Superclass::InputPointType &,
285 typename Superclass::JacobianType &)
const override
287 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
290 const typename Superclass::InputPointType &,
291 typename Superclass::JacobianPositionType &)
const override
293 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
297 const typename Superclass::InputPointType &,
298 typename Superclass::JacobianType &)
const override
300 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
303 const typename Superclass::InputPointType &,
304 typename Superclass::InverseJacobianPositionType &)
const override
306 itkExceptionMacro(
"Only storage methods are implemented for InverseThinPlateSplineKernelTransform" );
Simplified inverse ITK transforms.
#define itkExceptionMacro(x)