18 #ifndef itkBSplineBaseTransform_h
19 #define itkBSplineBaseTransform_h
33 template <
typename TParametersValueType =
double,
unsigned int NDimensions = 3,
unsigned int VSplineOrder = 3>
49 static constexpr
unsigned int SpaceDimension = NDimensions;
52 static constexpr
unsigned int SplineOrder = VSplineOrder;
171 GetParameters()
const override;
175 GetFixedParameters()
const override;
201 return this->m_CoefficientImages;
217 UpdateTransformParameters(
const DerivativeType & update, TParametersValueType factor = 1.0)
override;
254 bool & inside)
const = 0;
260 return m_WeightsFunction->GetNumberOfWeights();
265 using Superclass::TransformVector;
269 itkExceptionMacro(<<
"Method not applicable for deformable transform.");
278 itkExceptionMacro(<<
"Method not applicable for deformable transform. ");
283 using Superclass::TransformCovariantVector;
284 OutputCovariantVectorType
287 itkExceptionMacro(<<
"Method not applicable for deformable transform. ");
293 ComputeJacobianFromBSplineWeightsWithRespectToPosition(
const InputPointType &,
295 ParameterIndexArrayType &)
const;
298 ComputeJacobianWithRespectToParameters(
const InputPointType &, JacobianType &)
const override = 0;
303 itkExceptionMacro(<<
"ComputeJacobianWithRespectToPosition not yet implemented "
305 << this->GetNameOfClass());
307 using Superclass::ComputeJacobianWithRespectToPosition;
310 NumberOfParametersType
311 GetNumberOfParameters()
const override = 0;
314 virtual NumberOfParametersType
315 GetNumberOfParametersPerDimension()
const = 0;
317 TransformCategoryEnum
320 return Self::TransformCategoryEnum::BSpline;
324 GetNumberOfAffectedWeights()
const;
335 return this->GetNumberOfParameters();
341 PrintSelf(std::ostream & os,
Indent indent)
const override;
347 itkSetObjectMacro(WeightsFunction, WeightsFunctionType);
348 itkGetModifiableObjectMacro(WeightsFunction, WeightsFunctionType);
358 SetFixedParametersFromTransformDomainInformation()
const;
362 SetFixedParametersGridSizeFromTransformDomainInformation()
const = 0;
366 SetFixedParametersGridOriginFromTransformDomainInformation()
const = 0;
370 SetFixedParametersGridSpacingFromTransformDomainInformation()
const = 0;
374 SetFixedParametersGridDirectionFromTransformDomainInformation()
const = 0;
378 SetCoefficientImageInformationFromFixedParameters() = 0;
382 InsideValidRegion(ContinuousIndexType &)
const = 0;
408 ArrayOfImagePointerGeneratorHelper();
412 #ifndef ITK_MANUAL_INSTANTIATION
413 # include "itkBSplineBaseTransform.hxx"