18#ifndef itkRecursiveBSplineInterpolationWeightFunction_h
19#define itkRecursiveBSplineInterpolationWeightFunction_h
21#include "itkBSplineInterpolationWeightFunction.h"
47template <
typename TCoordRep =
float,
unsigned int VSpaceDimension = 2,
unsigned int VSplineOrder = 3>
73 using typename Superclass::WeightsType;
74 using typename Superclass::IndexType;
75 using typename Superclass::SizeType;
76 using typename Superclass::ContinuousIndexType;
79 static constexpr unsigned NumberOfWeights = (VSplineOrder + 1) * VSpaceDimension;
82 static constexpr unsigned NumberOfIndices = Math::UnsignedPower(VSplineOrder + 1, VSpaceDimension);
85 itkGetConstMacro(NumberOfIndices,
unsigned int);
88 Evaluate(
const ContinuousIndexType & index, IndexType & startIndex)
const;
100 PrintSelf(std::ostream & os, Indent indent)
const override;
106 Evaluate(
const ContinuousIndexType & index)
const override;
117 Evaluate(
const ContinuousIndexType & index, WeightsType & weights, IndexType & startIndex)
const override;
132#ifndef ITK_MANUAL_INSTANTIATION
133# 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.
Returns the weights over the support region used for B-spline interpolation/reconstruction.
~RecursiveBSplineInterpolationWeightFunction() override=default
SmartPointer< const Self > ConstPointer
WeightsType EvaluateSecondOrderDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
WeightsType EvaluateDerivative(const ContinuousIndexType &index, const IndexType &startIndex) const
itkStaticConstMacro(SplineOrder, unsigned int, VSplineOrder)
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineInterpolationWeightFunction)
RecursiveBSplineInterpolationWeightFunction()
unsigned int m_NumberOfWeights
unsigned int m_NumberOfIndices
WeightsType Evaluate(const ContinuousIndexType &index, IndexType &startIndex) const
WeightsType Evaluate(const ContinuousIndexType &index) const override
void PrintSelf(std::ostream &os, Indent indent) const override
itkStaticConstMacro(SpaceDimension, unsigned int, VSpaceDimension)
void Evaluate(const ContinuousIndexType &index, WeightsType &weights, IndexType &startIndex) const override