go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedCombinationTransform.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 itkAdvancedCombinationTransform_h
19#define itkAdvancedCombinationTransform_h
20
22#include "itkMacro.h"
23
24namespace itk
25{
26
55template <typename TScalarType, unsigned int NDimensions = 3>
56class ITK_TEMPLATE_EXPORT AdvancedCombinationTransform : public AdvancedTransform<TScalarType, NDimensions, NDimensions>
57{
58public:
60
64 using Pointer = SmartPointer<Self>;
65 using ConstPointer = SmartPointer<const Self>;
66
68 itkNewMacro(Self);
69
72
74 itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions);
75
77 using typename Superclass::ScalarType;
78 using typename Superclass::ParametersType;
79 using typename Superclass::FixedParametersType;
80 using typename Superclass::ParametersValueType;
81 using typename Superclass::NumberOfParametersType;
82 using typename Superclass::DerivativeType;
83 using typename Superclass::JacobianType;
84 using typename Superclass::InputVectorType;
85 using typename Superclass::OutputVectorType;
86 using typename Superclass::InputCovariantVectorType;
87 using typename Superclass::OutputCovariantVectorType;
88 using typename Superclass::InputVnlVectorType;
89 using typename Superclass::OutputVnlVectorType;
90 using typename Superclass::InputPointType;
91 using typename Superclass::OutputPointType;
95 using typename Superclass::SpatialHessianType;
97 using typename Superclass::InternalMatrixType;
99 using typename Superclass::InverseTransformBasePointer;
100 using typename Superclass::TransformCategoryEnum;
103
106 using TransformTypePointer = typename TransformType::Pointer;
107 using TransformTypeConstPointer = typename TransformType::ConstPointer;
108
114 using InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer;
115
121 using CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer;
122
124 void
126
128
133 void
135
137
139 SizeValueType
141
147 GetNthTransform(SizeValueType n) const;
148
150 void
152
153 itkGetConstMacro(UseComposition, bool);
154
156 void
157 SetUseAddition(bool _arg);
158
159 itkGetConstMacro(UseAddition, bool);
160
162 OutputPointType
163 TransformPoint(const InputPointType & point) const override;
164
169 OutputVectorType
170 TransformVector(const InputVectorType &) const override
171 {
172 itkExceptionMacro(
173 << "TransformVector(const InputVectorType &) is not implemented for AdvancedCombinationTransform");
174 }
175
176
177 OutputVnlVectorType
178 TransformVector(const InputVnlVectorType &) const override
179 {
180 itkExceptionMacro(
181 << "TransformVector(const InputVnlVectorType &) is not implemented for AdvancedCombinationTransform");
182 }
183
184
185 OutputCovariantVectorType
186 TransformCovariantVector(const InputCovariantVectorType &) const override
187 {
188 itkExceptionMacro(<< "TransformCovariantVector(const InputCovariantVectorType &) is not implemented for "
189 "AdvancedCombinationTransform");
190 }
191
192
194 NumberOfParametersType
195 GetNumberOfParameters() const override;
196
198 NumberOfParametersType
200
202 const ParametersType &
203 GetParameters() const override;
204
206 const FixedParametersType &
207 GetFixedParameters() const override;
208
210 void
211 SetParameters(const ParametersType & param) override;
212
216 void
217 SetParametersByValue(const ParametersType & param) override;
218
220 void
221 SetFixedParameters(const FixedParametersType & fixedParam) override;
222
233 bool
234 GetInverse(Self * inverse) const;
235
238 bool
239 IsLinear() const override;
240
245 TransformCategoryEnum
246 GetTransformCategory() const override;
247
249 bool
251
252 bool
254
256 void
257 GetJacobian(const InputPointType & inputPoint,
258 JacobianType & j,
259 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
260
262 void
263 EvaluateJacobianWithImageGradientProduct(const InputPointType & inputPoint,
264 const MovingImageGradientType & movingImageGradient,
265 DerivativeType & imageJacobian,
266 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
267
269 void
270 GetSpatialJacobian(const InputPointType & inputPoint, SpatialJacobianType & sj) const override;
271
273 void
274 GetSpatialHessian(const InputPointType & inputPoint, SpatialHessianType & sh) const override;
275
277 void
278 GetJacobianOfSpatialJacobian(const InputPointType & inputPoint,
280 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
281
285 void
286 GetJacobianOfSpatialJacobian(const InputPointType & inputPoint,
289 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
290
292 void
293 GetJacobianOfSpatialHessian(const InputPointType & inputPoint,
295 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
296
300 void
301 GetJacobianOfSpatialHessian(const InputPointType & inputPoint,
304 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
305
306protected:
309
311 ~AdvancedCombinationTransform() override = default;
312
316 void
318
324 OutputPointType
325 TransformPointUseAddition(const InputPointType & point) const;
326
330 OutputPointType
331 TransformPointUseComposition(const InputPointType & point) const;
332
334 OutputPointType
335 TransformPointNoInitialTransform(const InputPointType & point) const;
336
338 OutputPointType
339 TransformPointNoCurrentTransform(const InputPointType & point) const;
340
346 void
347 GetJacobianUseAddition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
348
352 void
353 GetJacobianUseComposition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
354
356 void
357 GetJacobianNoInitialTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
358
360 void
361 GetJacobianNoCurrentTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
362
368 void
371 DerivativeType &,
373
377 void
380 DerivativeType &,
382
384 void
387 DerivativeType &,
389
391 void
394 DerivativeType &,
396
402 void
403 GetSpatialJacobianUseAddition(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
404
408 void
409 GetSpatialJacobianUseComposition(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
410
412 void
413 GetSpatialJacobianNoInitialTransform(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
414
416 void
417 GetSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
418
424 void
425 GetSpatialHessianUseAddition(const InputPointType & inputPoint, SpatialHessianType & sh) const;
426
430 void
431 GetSpatialHessianUseComposition(const InputPointType & inputPoint, SpatialHessianType & sh) const;
432
434 void
435 GetSpatialHessianNoInitialTransform(const InputPointType & inputPoint, SpatialHessianType & sh) const;
436
438 void
439 GetSpatialHessianNoCurrentTransform(const InputPointType & inputPoint, SpatialHessianType & sh) const;
440
446 void
447 GetJacobianOfSpatialJacobianUseAddition(const InputPointType & inputPoint,
449 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
450
451 void
452 GetJacobianOfSpatialJacobianUseAddition(const InputPointType & inputPoint,
455 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
456
460 void
461 GetJacobianOfSpatialJacobianUseComposition(const InputPointType & inputPoint,
463 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
464
465 void
466 GetJacobianOfSpatialJacobianUseComposition(const InputPointType & inputPoint,
469 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
470
472 void
473 GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType & inputPoint,
475 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
476
477 void
478 GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType & inputPoint,
481 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
482
484 void
485 GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint,
487 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
488
489 void
490 GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint,
493 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
494
500 void
501 GetJacobianOfSpatialHessianUseAddition(const InputPointType & inputPoint,
503 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
504
505 void
506 GetJacobianOfSpatialHessianUseAddition(const InputPointType & inputPoint,
509 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
510
514 void
515 GetJacobianOfSpatialHessianUseComposition(const InputPointType & inputPoint,
517 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
518
519 void
520 GetJacobianOfSpatialHessianUseComposition(const InputPointType & inputPoint,
523 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
524
526 void
527 GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType & inputPoint,
529 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
530
531 void
532 GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType & inputPoint,
535 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
536
538 void
539 GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType & inputPoint,
541 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
542
543 void
544 GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType & inputPoint,
547 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
548
549private:
551 constexpr static const char * NoCurrentTransformSet = "No current transform set in the AdvancedCombinationTransform";
552
554 InitialTransformPointer m_InitialTransform{ nullptr };
555 CurrentTransformPointer m_CurrentTransform{ nullptr };
556
558 using TransformPointFunctionPointer = OutputPointType (Self::*)(const InputPointType &) const;
559 using GetSparseJacobianFunctionPointer = void (Self::*)(const InputPointType &,
560 JacobianType &,
562 using EvaluateJacobianWithImageGradientProductFunctionPointer = void (Self::*)(const InputPointType &,
564 DerivativeType &,
566 using GetSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &, SpatialJacobianType &) const;
567 using GetSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &, SpatialHessianType &) const;
568 using GetJacobianOfSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &,
571 using GetJacobianOfSpatialJacobianFunctionPointer2 = void (Self::*)(const InputPointType &,
575 using GetJacobianOfSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &,
578 using GetJacobianOfSpatialHessianFunctionPointer2 = void (Self::*)(const InputPointType &,
582
589 TransformPointFunctionPointer m_SelectedTransformPointFunction{ &Self::TransformPointNoCurrentTransform };
590
597 // GetJacobianFunctionPointer m_SelectedGetJacobianFunction;
598
600 GetSparseJacobianFunctionPointer m_SelectedGetSparseJacobianFunction{ &Self::GetJacobianNoCurrentTransform };
601 EvaluateJacobianWithImageGradientProductFunctionPointer m_SelectedEvaluateJacobianWithImageGradientProductFunction{
602 &Self::EvaluateJacobianWithImageGradientProductNoInitialTransform
603 };
604 GetSpatialJacobianFunctionPointer m_SelectedGetSpatialJacobianFunction{ &Self::GetSpatialJacobianNoCurrentTransform };
605 GetSpatialHessianFunctionPointer m_SelectedGetSpatialHessianFunction{ &Self::GetSpatialHessianNoCurrentTransform };
606 GetJacobianOfSpatialJacobianFunctionPointer m_SelectedGetJacobianOfSpatialJacobianFunction{
607 &Self::GetJacobianOfSpatialJacobianNoCurrentTransform
608 };
609 GetJacobianOfSpatialJacobianFunctionPointer2 m_SelectedGetJacobianOfSpatialJacobianFunction2{
610 &Self::GetJacobianOfSpatialJacobianNoCurrentTransform
611 };
612 GetJacobianOfSpatialHessianFunctionPointer m_SelectedGetJacobianOfSpatialHessianFunction{
613 &Self::GetJacobianOfSpatialHessianNoCurrentTransform
614 };
615 GetJacobianOfSpatialHessianFunctionPointer2 m_SelectedGetJacobianOfSpatialHessianFunction2{
616 &Self::GetJacobianOfSpatialHessianNoCurrentTransform
617 };
618
620 bool m_UseAddition{ false };
621 bool m_UseComposition{ true };
622};
623
624} // end namespace itk
625
626#ifndef ITK_MANUAL_INSTANTIATION
627# include "itkAdvancedCombinationTransform.hxx"
628#endif
629
630#endif // end #ifndef itkAdvancedCombinationTransform_h
This class combines two transforms: an 'initial transform' with a 'current transform'.
void GetSpatialHessianNoInitialTransform(const InputPointType &inputPoint, SpatialHessianType &sh) const
void GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void(Self::*)(const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialHessianFunctionPointer2
typename InitialTransformType::ConstPointer InitialTransformConstPointer
void EvaluateJacobianWithImageGradientProductUseAddition(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void GetJacobianOfSpatialHessian(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianNoCurrentTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
typename Superclass::TransformType TransformType
void SetCurrentTransform(CurrentTransformType *_arg)
typename CurrentTransformType::InverseTransformBasePointer CurrentTransformInverseTransformBasePointer
OutputPointType TransformPoint(const InputPointType &point) const override
void GetJacobianOfSpatialHessianUseAddition(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetSpatialJacobianNoCurrentTransform(const InputPointType &inputPoint, SpatialJacobianType &sj) const
void EvaluateJacobianWithImageGradientProductNoCurrentTransform(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void GetJacobianOfSpatialJacobianUseComposition(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
bool HasNonZeroJacobianOfSpatialHessian() const
typename CurrentTransformType::ConstPointer CurrentTransformConstPointer
OutputPointType TransformPointNoInitialTransform(const InputPointType &point) const
void GetSpatialHessian(const InputPointType &inputPoint, SpatialHessianType &sh) const override
void(Self::*)(const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialJacobianFunctionPointer2
void SetInitialTransform(InitialTransformType *_arg)
void GetJacobianUseAddition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetSpatialHessianUseComposition(const InputPointType &inputPoint, SpatialHessianType &sh) const
void(Self::*)(const InputPointType &, SpatialJacobianType &) const GetSpatialJacobianFunctionPointer
void GetSpatialJacobian(const InputPointType &inputPoint, SpatialJacobianType &sj) const override
bool GetHasNonZeroSpatialHessian() const override
typename TransformType::Pointer TransformTypePointer
itkGetModifiableObjectMacro(InitialTransform, InitialTransformType)
void GetJacobianOfSpatialHessianUseComposition(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
OutputPointType(Self::*)(const InputPointType &) const TransformPointFunctionPointer
typename InitialTransformType::Pointer InitialTransformPointer
void SetParameters(const ParametersType &param) override
OutputVectorType TransformVector(const InputVectorType &) const override
void GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
SizeValueType GetNumberOfTransforms() const
typename CurrentTransformType::InverseTransformBaseType CurrentTransformInverseTransformBaseType
const FixedParametersType & GetFixedParameters() const override
void EvaluateJacobianWithImageGradientProductNoInitialTransform(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void EvaluateJacobianWithImageGradientProductUseComposition(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
void GetJacobianOfSpatialJacobian(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
NumberOfParametersType GetNumberOfNonZeroJacobianIndices() const override
void GetJacobian(const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions)
void GetJacobianOfSpatialJacobian(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
OutputVnlVectorType TransformVector(const InputVnlVectorType &) const override
TransformCategoryEnum GetTransformCategory() const override
void EvaluateJacobianWithImageGradientProduct(const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void SetFixedParameters(const FixedParametersType &fixedParam) override
void GetSpatialJacobianUseComposition(const InputPointType &inputPoint, SpatialJacobianType &sj) const
void GetJacobianNoInitialTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void GetJacobianOfSpatialHessianUseAddition(const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void(Self::*)(const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialHessianFunctionPointer
void(Self::*)(const InputPointType &, SpatialHessianType &) const GetSpatialHessianFunctionPointer
void GetJacobianUseComposition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
void(Self::*)(const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialJacobianFunctionPointer
typename Superclass::InverseTransformBaseType InverseTransformBaseType
void GetJacobianOfSpatialJacobianUseComposition(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void(Self::*)(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const GetSparseJacobianFunctionPointer
typename TransformType::ConstPointer TransformTypeConstPointer
OutputPointType TransformPointNoCurrentTransform(const InputPointType &point) const
void GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialHessianUseComposition(const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
typename InitialTransformType::InverseTransformBaseType InitialTransformInverseTransformBaseType
void GetSpatialJacobianUseAddition(const InputPointType &inputPoint, SpatialJacobianType &sj) const
void GetSpatialJacobianNoInitialTransform(const InputPointType &inputPoint, SpatialJacobianType &sj) const
const TransformTypePointer GetNthTransform(SizeValueType n) const
OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override
bool IsLinear() const override
bool GetInverse(Self *inverse) const
ITK_DISALLOW_COPY_AND_MOVE(AdvancedCombinationTransform)
itkGetModifiableObjectMacro(CurrentTransform, CurrentTransformType)
void GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void(Self::*)(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const EvaluateJacobianWithImageGradientProductFunctionPointer
void GetJacobianOfSpatialJacobianUseAddition(const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetJacobianOfSpatialJacobianUseAddition(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
NumberOfParametersType GetNumberOfParameters() const override
void SetParametersByValue(const ParametersType &param) override
OutputPointType TransformPointUseComposition(const InputPointType &point) const
OutputPointType TransformPointUseAddition(const InputPointType &point) const
typename InitialTransformType::InverseTransformBasePointer InitialTransformInverseTransformBasePointer
void GetSpatialHessianUseAddition(const InputPointType &inputPoint, SpatialHessianType &sh) const
typename CurrentTransformType::Pointer CurrentTransformPointer
~AdvancedCombinationTransform() override=default
void GetJacobianOfSpatialHessian(const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void GetSpatialHessianNoCurrentTransform(const InputPointType &inputPoint, SpatialHessianType &sh) const
const ParametersType & GetParameters() const override
Transform maps points, vectors and covariant vectors from an input space to an output space.
typename SpatialJacobianType::InternalMatrixType InternalMatrixType
SmartPointer< Self > Pointer
typename Superclass::InverseTransformBaseType InverseTransformBaseType
Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
typename MovingImageGradientType::ValueType MovingImageGradientValueType
Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType


Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo