21 #ifndef otbImageFunctionAdaptor_h
22 #define otbImageFunctionAdaptor_h
24 #include "itkImageFunction.h"
27 #include "OTBImageBaseExport.h"
48 template <
class TInternalImageFunctionType,
class TOutputPrecision =
double>
50 :
public itk::ImageFunction<typename TInternalImageFunctionType::InputImageType, itk::VariableLengthVector<TOutputPrecision>,
51 typename TInternalImageFunctionType::CoordRepType>
56 typedef itk::ImageFunction<typename TInternalImageFunctionType::InputImageType, itk::VariableLengthVector<TOutputPrecision>,
57 typename TInternalImageFunctionType::CoordRepType>
70 typedef typename TInternalImageFunctionType::CoordRepType
CoordRepType;
86 itkStaticConstMacro(ImageDimension,
unsigned int, InputImageType::ImageDimension);
95 this->ConvertPointToNearestIndex(point, index);
96 return this->EvaluateAtIndex(index);
101 this->ConvertContinuousIndexToNearestIndex(cindex, index);
102 return this->EvaluateAtIndex(index);
106 itkGetConstMacro(InternalImageFunction,
typename InternalImageFunctionType::Pointer);
107 itkSetMacro(InternalImageFunction,
typename InternalImageFunctionType::Pointer);
114 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
128 #ifndef OTB_MANUAL_INSTANTIATION
Adapt the output of the internal image function to be a itk::VariableLengthVector.
OutputType::ValueType OutputValueType
VariableLengthVectorConverter< InternalImageFunctionOutputType, TOutputPrecision > ConverterType
OutputType EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
TInternalImageFunctionType::InputImageType InputImageType
itk::SmartPointer< const Self > ConstPointer
Superclass::PointType PointType
ImageFunctionAdaptor Self
Superclass::ContinuousIndexType ContinuousIndexType
Superclass::IndexType IndexType
ConverterType::Pointer m_Converter
OutputType Evaluate(const PointType &point) const override
itk::SmartPointer< Self > Pointer
~ImageFunctionAdaptor() override
TInternalImageFunctionType::CoordRepType CoordRepType
InternalImageFunctionType::Pointer m_InternalImageFunction
itk::ImageFunction< typename TInternalImageFunctionType::InputImageType, itk::VariableLengthVector< TOutputPrecision >, typename TInternalImageFunctionType::CoordRepType > Superclass
void operator=(const Self &)=delete
TInternalImageFunctionType InternalImageFunctionType
Superclass::OutputType OutputType
InternalImageFunctionType::OutputType InternalImageFunctionOutputType
ImageFunctionAdaptor(const Self &)=delete
Convert any data container type into a VariableLengthVector.
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.