18#ifndef itkRecursiveBSplineInterpolationWeightFunction_h
19#define itkRecursiveBSplineInterpolationWeightFunction_h
21#include "itkBSplineInterpolationWeightFunction.h"
47template <
typename TCoordinate =
float,
unsigned int VSpaceDimension = 2,
unsigned int VSplineOrder = 3>
49 :
public BSplineInterpolationWeightFunction<TCoordinate, VSpaceDimension, VSplineOrder>
56 using Superclass = BSplineInterpolationWeightFunction<TCoordinate, VSpaceDimension, VSplineOrder>;
73 using typename Superclass::WeightsType;
74 using typename Superclass::IndexType;
75 using typename Superclass::SizeType;
76 using typename Superclass::ContinuousIndexType;
79 static constexpr unsigned NumberOfIndices = Math::UnsignedPower(VSplineOrder + 1, VSpaceDimension);
85 Evaluate(
const ContinuousIndexType & index, IndexType & startIndex)
const;
96 using Superclass::PrintSelf;
102 Evaluate(
const ContinuousIndexType & index)
const override;
110 Evaluate(
const ContinuousIndexType & index, WeightsType & weights, IndexType & startIndex)
const override;
123#ifndef ITK_MANUAL_INSTANTIATION
124# include "itkRecursiveBSplineInterpolationWeightFunction.hxx"
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
B-spline kernel used for density estimation and nonparameteric regression.
Derivative of a B-spline kernel used for density estimation and nonparametric regression.
WeightsType EvaluateSecondOrderDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension)
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineInterpolationWeightFunction)
void Evaluate(const ContinuousIndexType &index, WeightsType &weights, IndexType &startIndex) const override
itkOverrideGetNameOfClassMacro(RecursiveBSplineInterpolationWeightFunction)
WeightsType Evaluate(const ContinuousIndexType &index) const override
BSplineKernelFunction2< VSplineOrder > KernelType
BSplineInterpolationWeightFunction< TCoordinate, VSpaceDimension, VSplineOrder > Superclass
RecursiveBSplineInterpolationWeightFunction()=default
WeightsType EvaluateDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
BSplineSecondOrderDerivativeKernelFunction2< VSplineOrder > SecondOrderDerivativeKernelType
RecursiveBSplineInterpolationWeightFunction Self
~RecursiveBSplineInterpolationWeightFunction() override=default
SmartPointer< const Self > ConstPointer
WeightsType Evaluate(const ContinuousIndexType &index, IndexType &startIndex) const
SmartPointer< Self > Pointer
unsigned int m_NumberOfIndices
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
BSplineDerivativeKernelFunction2< VSplineOrder > DerivativeKernelType
static constexpr unsigned NumberOfIndices