18#ifndef itkMultiBSplineDeformableTransformWithNormal_h
19#define itkMultiBSplineDeformableTransformWithNormal_h
22#include "itkNearestNeighborInterpolateImageFunction.h"
39 unsigned int NDimensions = 3,
40 unsigned int VSplineOrder = 3>
67 using typename Superclass::ParametersType;
68 using typename Superclass::NumberOfParametersType;
69 using typename Superclass::JacobianType;
70 using typename Superclass::ScalarType;
71 using typename Superclass::InputPointType;
72 using typename Superclass::OutputPointType;
73 using typename Superclass::InputVectorType;
74 using typename Superclass::OutputVectorType;
75 using typename Superclass::InputVnlVectorType;
76 using typename Superclass::OutputVnlVectorType;
77 using typename Superclass::InputCovariantVectorType;
78 using typename Superclass::OutputCovariantVectorType;
161 const ParametersType &
165 const ParametersType &
169 using PixelType =
typename ParametersType::ValueType;
238 using VectorType = Vector<TScalarType, Self::SpaceDimension>;
239 using BaseType = Vector<VectorType, Self::SpaceDimension>;
251 itkGetConstMacro(NbLabels,
unsigned char);
268 itkExceptionMacro(
"Method not applicable for deformable transform.");
269 return OutputVectorType();
279 itkExceptionMacro(
"Method not applicable for deformable transform. ");
280 return OutputVnlVectorType();
287 OutputCovariantVectorType
290 itkExceptionMacro(
"Method not applicable for deformable transform. ");
291 return OutputCovariantVectorType();
296 NumberOfParametersType
300 virtual NumberOfParametersType
307 return m_Trans[0]->GetValidRegion();
326 return NumberOfWeights;
330 NumberOfParametersType
333 return NumberOfWeights * SpaceDimension;
404 itkExceptionMacro(
"ERROR: GetJacobianOfSpatialHessian() not yet implemented in the "
405 "MultiBSplineDeformableTransformWithNormal class.");
418 PrintSelf(std::ostream & os, Indent indent)
const override;
471 const ParametersType * m_InputParametersPointer{};
491 ParametersType m_InternalParametersBuffer{};
495 unsigned char m_NbLabels{};
499 std::vector<typename TransformType::Pointer> m_Trans{};
500 std::vector<ParametersType> m_Para{};
501 mutable int m_LastJacobian{};
506 using Superclass::TransformCovariantVector;
507 using Superclass::TransformVector;
510 static constexpr unsigned NumberOfWeights = TransformType::NumberOfWeights;
521#ifndef ITK_MANUAL_INSTANTIATION
522# include "itkMultiBSplineDeformableTransformWithNormal.hxx"
Returns the weights over the support region used for B-spline interpolation/reconstruction.
FixedArray< double, NumberOfWeights > WeightsType