21 #ifndef otbSarParametricMapFunction_h
22 #define otbSarParametricMapFunction_h
24 #include "itkImageFunction.h"
25 #include "itkPointSet.h"
26 #include "itkVariableSizeMatrix.h"
42 template <
class TInputImage,
class TCoordRep =
float>
44 :
public itk::ImageFunction<TInputImage, typename itk::NumericTraits<typename TInputImage::PixelType>::ScalarRealType, TCoordRep>
49 typedef itk::ImageFunction<TInputImage, typename itk::NumericTraits<typename TInputImage::PixelType>::ScalarRealType, TCoordRep>
Superclass;
67 itkStaticConstMacro(ImageDimension,
unsigned int, InputImageType::ImageDimension);
78 typedef typename itk::NumericTraits<InputPixelType>::ScalarRealType
RealType;
87 point[0] =
static_cast<typename PointType::ValueType
>(index[0]);
88 point[1] =
static_cast<typename PointType::ValueType
>(index[1]);
89 return this->Evaluate(point);
96 this->ConvertContinuousIndexToNearestIndex(cindex, index);
97 return this->EvaluateAtIndex(index);
101 itkGetObjectMacro(PointSet, PointSetType);
102 itkGetConstObjectMacro(PointSet, PointSetType);
105 m_IsInitialize =
false;
112 itkSetMacro(Coeff, MatrixType);
113 itkGetMacro(Coeff, MatrixType);
114 itkGetConstMacro(Coeff, MatrixType);
118 itkGetConstReferenceMacro(IsInitialize,
bool);
121 void SetPolynomalSize(
const IndexType PolynomalSize);
122 void SetPolynomalSize(
const ArrayIndexType PolynomalSize);
126 void EvaluateParametricCoefficient();
129 void SetConstantValue(
const RealType& value);
136 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
140 void operator=(
const Self&) =
delete;
142 double Horner(PointType point)
const;
153 #ifndef OTB_MANUAL_INSTANTIATION