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("TransformVector(const InputVectorType &) is not implemented for AdvancedCombinationTransform");
173 }
174
175
176 OutputVnlVectorType
177 TransformVector(const InputVnlVectorType &) const override
178 {
179 itkExceptionMacro(
180 "TransformVector(const InputVnlVectorType &) is not implemented for AdvancedCombinationTransform");
181 }
182
183
184 OutputCovariantVectorType
185 TransformCovariantVector(const InputCovariantVectorType &) const override
186 {
187 itkExceptionMacro("TransformCovariantVector(const InputCovariantVectorType &) is not implemented for "
188 "AdvancedCombinationTransform");
189 }
190
191
193 NumberOfParametersType
194 GetNumberOfParameters() const override;
195
197 NumberOfParametersType
199
201 const ParametersType &
202 GetParameters() const override;
203
205 const FixedParametersType &
206 GetFixedParameters() const override;
207
209 void
210 SetParameters(const ParametersType & param) override;
211
215 void
216 SetParametersByValue(const ParametersType & param) override;
217
219 void
220 SetFixedParameters(const FixedParametersType & fixedParam) override;
221
232 bool
233 GetInverse(Self * inverse) const;
234
237 bool
238 IsLinear() const override;
239
244 TransformCategoryEnum
245 GetTransformCategory() const override;
246
248 bool
250
251 bool
253
255 void
256 GetJacobian(const InputPointType & inputPoint,
257 JacobianType & j,
258 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
259
261 void
262 EvaluateJacobianWithImageGradientProduct(const InputPointType & inputPoint,
263 const MovingImageGradientType & movingImageGradient,
264 DerivativeType & imageJacobian,
265 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
266
268 void
269 GetSpatialJacobian(const InputPointType & inputPoint, SpatialJacobianType & sj) const override;
270
272 void
273 GetSpatialHessian(const InputPointType & inputPoint, SpatialHessianType & sh) const override;
274
276 void
277 GetJacobianOfSpatialJacobian(const InputPointType & inputPoint,
279 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
280
284 void
285 GetJacobianOfSpatialJacobian(const InputPointType & inputPoint,
288 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
289
291 void
292 GetJacobianOfSpatialHessian(const InputPointType & inputPoint,
294 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
295
299 void
300 GetJacobianOfSpatialHessian(const InputPointType & inputPoint,
303 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const override;
304
305protected:
308
310 ~AdvancedCombinationTransform() override = default;
311
315 void
317
323 OutputPointType
324 TransformPointUseAddition(const InputPointType & point) const;
325
329 OutputPointType
330 TransformPointUseComposition(const InputPointType & point) const;
331
333 OutputPointType
334 TransformPointNoInitialTransform(const InputPointType & point) const;
335
337 OutputPointType
338 TransformPointNoCurrentTransform(const InputPointType & point) const;
339
345 void
346 GetJacobianUseAddition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
347
351 void
352 GetJacobianUseComposition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
353
355 void
356 GetJacobianNoInitialTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
357
359 void
360 GetJacobianNoCurrentTransform(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const;
361
367 void
370 DerivativeType &,
372
376 void
379 DerivativeType &,
381
383 void
386 DerivativeType &,
388
390 void
393 DerivativeType &,
395
401 void
402 GetSpatialJacobianUseAddition(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
403
407 void
408 GetSpatialJacobianUseComposition(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
409
411 void
412 GetSpatialJacobianNoInitialTransform(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
413
415 void
416 GetSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint, SpatialJacobianType & sj) const;
417
423 void
424 GetSpatialHessianUseAddition(const InputPointType & inputPoint, SpatialHessianType & sh) const;
425
429 void
430 GetSpatialHessianUseComposition(const InputPointType & inputPoint, SpatialHessianType & sh) const;
431
433 void
434 GetSpatialHessianNoInitialTransform(const InputPointType & inputPoint, SpatialHessianType & sh) const;
435
437 void
438 GetSpatialHessianNoCurrentTransform(const InputPointType & inputPoint, SpatialHessianType & sh) const;
439
445 void
446 GetJacobianOfSpatialJacobianUseAddition(const InputPointType & inputPoint,
448 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
449
450 void
451 GetJacobianOfSpatialJacobianUseAddition(const InputPointType & inputPoint,
454 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
455
459 void
460 GetJacobianOfSpatialJacobianUseComposition(const InputPointType & inputPoint,
462 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
463
464 void
465 GetJacobianOfSpatialJacobianUseComposition(const InputPointType & inputPoint,
468 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
469
471 void
472 GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType & inputPoint,
474 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
475
476 void
477 GetJacobianOfSpatialJacobianNoInitialTransform(const InputPointType & inputPoint,
480 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
481
483 void
484 GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint,
486 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
487
488 void
489 GetJacobianOfSpatialJacobianNoCurrentTransform(const InputPointType & inputPoint,
492 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
493
499 void
500 GetJacobianOfSpatialHessianUseAddition(const InputPointType & inputPoint,
502 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
503
504 void
505 GetJacobianOfSpatialHessianUseAddition(const InputPointType & inputPoint,
508 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
509
513 void
514 GetJacobianOfSpatialHessianUseComposition(const InputPointType & inputPoint,
516 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
517
518 void
519 GetJacobianOfSpatialHessianUseComposition(const InputPointType & inputPoint,
522 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
523
525 void
526 GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType & inputPoint,
528 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
529
530 void
531 GetJacobianOfSpatialHessianNoInitialTransform(const InputPointType & inputPoint,
534 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
535
537 void
538 GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType & inputPoint,
540 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
541
542 void
543 GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType & inputPoint,
546 NonZeroJacobianIndicesType & nonZeroJacobianIndices) const;
547
548private:
549 // Private using-declarations, to avoid `-Woverloaded-virtual` warnings from GCC (GCC 11.4).
550 using Superclass::TransformCovariantVector;
551 using Superclass::TransformVector;
552
554 static constexpr const char * NoCurrentTransformSet = "No current transform set in the AdvancedCombinationTransform";
555
557 InitialTransformPointer m_InitialTransform{ nullptr };
558 CurrentTransformPointer m_CurrentTransform{ nullptr };
559
561 using TransformPointFunctionPointer = OutputPointType (Self::*)(const InputPointType &) const;
562 using GetSparseJacobianFunctionPointer = void (Self::*)(const InputPointType &,
563 JacobianType &,
565 using EvaluateJacobianWithImageGradientProductFunctionPointer = void (Self::*)(const InputPointType &,
567 DerivativeType &,
569 using GetSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &, SpatialJacobianType &) const;
570 using GetSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &, SpatialHessianType &) const;
571 using GetJacobianOfSpatialJacobianFunctionPointer = void (Self::*)(const InputPointType &,
574 using GetJacobianOfSpatialJacobianFunctionPointer2 = void (Self::*)(const InputPointType &,
578 using GetJacobianOfSpatialHessianFunctionPointer = void (Self::*)(const InputPointType &,
581 using GetJacobianOfSpatialHessianFunctionPointer2 = void (Self::*)(const InputPointType &,
585
592 TransformPointFunctionPointer m_SelectedTransformPointFunction{ &Self::TransformPointNoCurrentTransform };
593
600 // GetJacobianFunctionPointer m_SelectedGetJacobianFunction;
601
603 GetSparseJacobianFunctionPointer m_SelectedGetSparseJacobianFunction{ &Self::GetJacobianNoCurrentTransform };
604 EvaluateJacobianWithImageGradientProductFunctionPointer m_SelectedEvaluateJacobianWithImageGradientProductFunction{
605 &Self::EvaluateJacobianWithImageGradientProductNoInitialTransform
606 };
607 GetSpatialJacobianFunctionPointer m_SelectedGetSpatialJacobianFunction{ &Self::GetSpatialJacobianNoCurrentTransform };
608 GetSpatialHessianFunctionPointer m_SelectedGetSpatialHessianFunction{ &Self::GetSpatialHessianNoCurrentTransform };
609 GetJacobianOfSpatialJacobianFunctionPointer m_SelectedGetJacobianOfSpatialJacobianFunction{
610 &Self::GetJacobianOfSpatialJacobianNoCurrentTransform
611 };
612 GetJacobianOfSpatialJacobianFunctionPointer2 m_SelectedGetJacobianOfSpatialJacobianFunction2{
613 &Self::GetJacobianOfSpatialJacobianNoCurrentTransform
614 };
615 GetJacobianOfSpatialHessianFunctionPointer m_SelectedGetJacobianOfSpatialHessianFunction{
616 &Self::GetJacobianOfSpatialHessianNoCurrentTransform
617 };
618 GetJacobianOfSpatialHessianFunctionPointer2 m_SelectedGetJacobianOfSpatialHessianFunction2{
619 &Self::GetJacobianOfSpatialHessianNoCurrentTransform
620 };
621
623 bool m_UseAddition{ false };
624 bool m_UseComposition{ true };
625};
626
627} // end namespace itk
628
629#ifndef ITK_MANUAL_INSTANTIATION
630# include "itkAdvancedCombinationTransform.hxx"
631#endif
632
633#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
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
void(Self::*)(const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const EvaluateJacobianWithImageGradientProductFunctionPointer
OutputPointType TransformPointNoInitialTransform(const InputPointType &point) const
void GetSpatialHessian(const InputPointType &inputPoint, SpatialHessianType &sh) const override
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
void(Self::*)(const InputPointType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialHessianFunctionPointer
bool GetHasNonZeroSpatialHessian() const override
void(Self::*)(const InputPointType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialJacobianFunctionPointer
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(Self::*)(const InputPointType &, SpatialJacobianType &, JacobianOfSpatialJacobianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialJacobianFunctionPointer2
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
void(Self::*)(const InputPointType &, SpatialHessianType &, JacobianOfSpatialHessianType &, NonZeroJacobianIndicesType &) const GetJacobianOfSpatialHessianFunctionPointer2
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(Self::*)(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const GetSparseJacobianFunctionPointer
void GetJacobianOfSpatialHessianNoCurrentTransform(const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
void(Self::*)(const InputPointType &, SpatialHessianType &) const GetSpatialHessianFunctionPointer
void GetJacobianUseComposition(const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
typename Superclass::InverseTransformBaseType InverseTransformBaseType
void GetJacobianOfSpatialJacobianUseComposition(const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
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 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
FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
typename MovingImageGradientType::ValueType MovingImageGradientValueType
Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType


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