18 #ifndef itkBSplineInterpolationWeightFunction_h
19 #define itkBSplineInterpolationWeightFunction_h
47 template <
typename TCoordinate =
float,
unsigned int VSpaceDimension = 2,
unsigned int VSplineOrder = 3>
49 :
public FunctionBase<ContinuousIndex<TCoordinate, VSpaceDimension>,
50 FixedArray<double, Math::UnsignedPower(VSplineOrder + 1, VSpaceDimension)>>
70 static constexpr
unsigned int SpaceDimension = VSpaceDimension;
73 static constexpr
unsigned int SplineOrder = VSplineOrder;
79 static constexpr
unsigned int NumberOfWeights{ WeightsType::Length };
89 static constexpr
SizeType SupportSize{ SizeType::Filled(VSplineOrder + 1) };
94 Evaluate(
const ContinuousIndexType & index)
const override;
105 Evaluate(
const ContinuousIndexType & index, WeightsType & weights,
IndexType & startIndex)
const;
107 #if !defined(ITK_LEGACY_REMOVE)
109 itkLegacyMacro(
SizeType GetSupportSize()
const)
111 return Self::SupportSize;
115 itkLegacyMacro(
unsigned int GetNumberOfWeights()
const)
117 return Self::NumberOfWeights;
122 BSplineInterpolationWeightFunction() =
default;
123 ~BSplineInterpolationWeightFunction()
override =
default;
127 #ifndef ITK_MANUAL_INSTANTIATION
128 # include "itkBSplineInterpolationWeightFunction.hxx"