28 #ifndef __itkBSplineInterpolateImageFunction_h
29 #define __itkBSplineInterpolateImageFunction_h
34 #include "vnl/vnl_matrix.h"
82 class TCoordRep = double,
83 class TCoefficientType =
double >
101 typedef typename Superclass::OutputType
OutputType;
107 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
124 itkGetStaticConstMacro(ImageDimension) >
133 itkGetStaticConstMacro(ImageDimension) >
148 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
151 return ( this->EvaluateAtContinuousIndex(index) );
159 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
161 return ( this->EvaluateAtContinuousIndex(index, threadID) );
174 return this->EvaluateAtContinuousIndexInternal(index,
179 virtual OutputType EvaluateAtContinuousIndex(
const ContinuousIndexType &
187 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
190 return ( this->EvaluateDerivativeAtContinuousIndex(index) );
198 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
200 return ( this->EvaluateDerivativeAtContinuousIndex(index, threadID) );
217 return this->EvaluateDerivativeAtContinuousIndexInternal(x,
223 CovariantVectorType EvaluateDerivativeAtContinuousIndex(
224 const ContinuousIndexType & x,
227 void EvaluateValueAndDerivative(
const PointType & point,
233 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
237 this->EvaluateValueAndDerivativeAtContinuousIndex(index,
242 void EvaluateValueAndDerivative(
const PointType & point,
249 this->GetInputImage()->TransformPhysicalPointToContinuousIndex(point,
251 this->EvaluateValueAndDerivativeAtContinuousIndex(index,
257 void EvaluateValueAndDerivativeAtContinuousIndex(
274 this->EvaluateValueAndDerivativeAtContinuousIndexInternal(x,
282 void EvaluateValueAndDerivativeAtContinuousIndex(
283 const ContinuousIndexType & x,
285 CovariantVectorType & deriv,
290 void SetSplineOrder(
unsigned int SplineOrder);
292 itkGetConstMacro(SplineOrder,
int);
299 virtual void SetInputImage(
const TImageType *inputData);
311 itkSetMacro(UseImageDirection,
bool);
312 itkGetConstMacro(UseImageDirection,
bool);
313 itkBooleanMacro(UseImageDirection);
335 virtual OutputType EvaluateAtContinuousIndexInternal(
const ContinuousIndexType & index,
339 virtual void EvaluateValueAndDerivativeAtContinuousIndexInternal(
const ContinuousIndexType & x,
341 CovariantVectorType & derivativeValue,
347 virtual CovariantVectorType EvaluateDerivativeAtContinuousIndexInternal(
const ContinuousIndexType & x,
355 void PrintSelf(std::ostream & os,
Indent indent)
const;
369 void operator=(
const Self &);
375 unsigned int splineOrder)
const;
381 unsigned int splineOrder)
const;
385 void GeneratePointsToIndex();
390 unsigned int splineOrder)
const;
395 unsigned int splineOrder)
const;
422 #ifndef ITK_MANUAL_INSTANTIATION
423 #include "itkBSplineInterpolateImageFunction.hxx"