34 #ifndef __itkReducedDimensionBSplineInterpolateImageFunction_h
35 #define __itkReducedDimensionBSplineInterpolateImageFunction_h
39 #include "itkImageLinearIteratorWithIndex.h"
40 #include "itkInterpolateImageFunction.h"
41 #include "vnl/vnl_matrix.h"
44 #include "itkConceptChecking.h"
45 #include "itkCovariantVector.h"
86 class TCoefficientType =
double >
88 public InterpolateImageFunction<TImageType,TCoordRep>
93 typedef InterpolateImageFunction<TImageType,TCoordRep>
Superclass;
105 typedef typename Superclass::OutputType
OutputType;
111 itkStaticConstMacro(ImageDimension,
unsigned int,Superclass::ImageDimension);
123 typedef ImageLinearIteratorWithIndex<TImageType>
Iterator;
128 itkGetStaticConstMacro(ImageDimension)
150 itkGetStaticConstMacro(ImageDimension)
156 this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
157 return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
160 CovariantVectorType EvaluateDerivativeAtContinuousIndex(
161 const ContinuousIndexType & x )
const;
166 void SetSplineOrder(
unsigned int SplineOrder);
167 itkGetConstMacro(SplineOrder,
int);
171 virtual void SetInputImage(
const TImageType * inputData);
186 itkSetMacro( UseImageDirection,
bool );
187 itkGetConstMacro( UseImageDirection,
bool );
188 itkBooleanMacro( UseImageDirection );
194 void PrintSelf(std::ostream& os, Indent indent)
const;
205 void operator=(
const Self& );
209 const vnl_matrix<long> & EvaluateIndex,
210 vnl_matrix<double> & weights,
211 unsigned int splineOrder )
const;
215 const vnl_matrix<long> & EvaluateIndex,
216 vnl_matrix<double> & weights,
217 unsigned int splineOrder )
const;
221 void GeneratePointsToIndex( );
224 void DetermineRegionOfSupport( vnl_matrix<long> & evaluateIndex,
226 unsigned int splineOrder )
const;
230 void ApplyMirrorBoundaryConditions(vnl_matrix<long> & evaluateIndex,
231 unsigned int splineOrder)
const;
248 #ifndef ITK_MANUAL_INSTANTIATION
249 #include "itkReducedDimensionBSplineInterpolateImageFunction.txx"