18#ifndef itkAdvancedBSplineDeformableTransformBase_h
19#define itkAdvancedBSplineDeformableTransformBase_h
23#include "itkImageRegion.h"
39 unsigned int NDimensions = 3>
60 static constexpr unsigned int NumberOfFixedParameters = NDimensions * (NDimensions + 3);
63 using typename Superclass::ParametersType;
64 using typename Superclass::FixedParametersType;
65 using typename Superclass::ParametersValueType;
66 using typename Superclass::NumberOfParametersType;
67 using typename Superclass::DerivativeType;
68 using typename Superclass::JacobianType;
69 using typename Superclass::ScalarType;
70 using typename Superclass::InputPointType;
71 using typename Superclass::OutputPointType;
72 using typename Superclass::InputVectorType;
73 using typename Superclass::OutputVectorType;
74 using typename Superclass::InputVnlVectorType;
75 using typename Superclass::OutputVnlVectorType;
76 using typename Superclass::InputCovariantVectorType;
77 using typename Superclass::OutputCovariantVectorType;
78 using typename Superclass::TransformCategoryEnum;
90 template <
template <
class,
unsigned,
unsigned>
class TBSplineDeformableTransform>
98 return TBSplineDeformableTransform<TScalarType, NDimensions, 1>::New();
102 return TBSplineDeformableTransform<TScalarType, NDimensions, 2>::New();
106 return TBSplineDeformableTransform<TScalarType, NDimensions, 3>::New();
109 itkGenericExceptionMacro(<<
"ERROR: The provided spline order (" << splineOrder <<
") is not supported.");
116 return m_SplineOrder;
190 const ParametersType &
194 const FixedParametersType &
198 using PixelType =
typename ParametersType::ValueType;
206 return this->m_CoefficientImages;
266 itkExceptionMacro(<<
"Method not applicable for deformable transform.");
276 itkExceptionMacro(<<
"Method not applicable for deformable transform. ");
283 OutputCovariantVectorType
286 itkExceptionMacro(<<
"Method not applicable for deformable transform. ");
291 NumberOfParametersType
295 virtual NumberOfParametersType
315 TransformCategoryEnum
318 return TransformCategoryEnum::BSpline;
325 NumberOfParametersType
336 PrintSelf(std::ostream & os, Indent indent)
const override;
401 typename JacobianImageType::Pointer m_JacobianImage[NDimensions];
420#ifndef ITK_MANUAL_INSTANTIATION
421# include "itkAdvancedBSplineDeformableTransformBase.hxx"