diff --git a/Modules/Core/Functor/include/otbFunctorImageFilter.h b/Modules/Core/Functor/include/otbFunctorImageFilter.h index 44d99daaac9b78f03d6a64bd62a2d94d484dd81c..276da9d447c274d100a3e971ee38321d76e43f7e 100644 --- a/Modules/Core/Functor/include/otbFunctorImageFilter.h +++ b/Modules/Core/Functor/include/otbFunctorImageFilter.h @@ -43,14 +43,7 @@ namespace otb * - value set to true or false */ template <class T> struct IsNeighborhood : std::false_type {}; -/* -/// Partial specialisation for itk::Neighborhood<T> -template <class T> struct IsNeighborhood<itk::Neighborhood<T>> : std::true_type {}; -*/ -/* -/// Partial specialisation for const itk::Neighborhood<T> & -template <class T> struct IsNeighborhood<const itk::Neighborhood<T>&> : std::true_type {}; -*/ + /// Partial specialisation for const ConstNeighborhoodIterator<Image::T> & template <class T> struct IsNeighborhood<const itk::ConstNeighborhoodIterator<Image<T>>&> : std::true_type {}; @@ -84,9 +77,9 @@ template <class T> struct IsSuitableType<itk::RGBAPixel<T>> : IsSuitableType<T>: * \struct PixelTypeDeduction * \brief Helper struct to derive PixelType from template parameter. * - * T -> PixelType = T - * itk::Neighborhood<T> -> PixelType = T - * const itk::Neighborhood<T>& -> PixelType = T + * T -> PixelType = T + * const ConstNeighborhoodIterator<Image::T>& -> PixelType = T + * const ConstNeighborhoodIterator<VectorImage::T>& -> PixelType = itk::VariableLengthVector<T> */ template <class T> struct PixelTypeDeduction { @@ -95,7 +88,7 @@ template <class T> struct PixelTypeDeduction using PixelType = T; }; -/// Partial specialisation for itk::Neighborhood<T> +/// Partial specialisation for itk::ConstNeighborhoodIterator<Image<T>> template <class T> struct PixelTypeDeduction<itk::ConstNeighborhoodIterator<Image<T>>> { static_assert(IsSuitableType<T>::value, @@ -103,7 +96,7 @@ template <class T> struct PixelTypeDeduction<itk::ConstNeighborhoodIterator<Imag using PixelType = T; }; -/// Partial specialisation for itk::Neighborhood<T> +/// Partial specialisation for itk::ConstNeighborhoodIterator<VectorImage<T>> template <class T> struct PixelTypeDeduction<itk::ConstNeighborhoodIterator<VectorImage<T>>> { static_assert(IsSuitableType<T>::value, @@ -243,9 +236,9 @@ template <typename C, typename R, typename... T, typename TNameMap> struct Funct * * \tparam Functor can be any operator() (const or non-const) that matches the following: * - Accepts any number of arguments of T, - * (const) itk::VariableLengthVector<T> (&),(const) - * itk::Neighborhood<T> (&), (const) - * itk::Neighborhood<itk::VariableLengthVector<T>> (&) with T a scalar type + * (const) itk::VariableLengthVector<T> (&),const + * itk::ConstNeighborhoodIterator<VectorImage<T>> &, (const) + * itk::ConstNeighborhoodIterator<Image<T>> & with T a scalar type * - returns T or itk::VariableLengthVector<T>, with T a scalar type * or returns void and has first parameter as output (i.e. T& or itk::VariableLengthVector<T>&) * @@ -255,7 +248,7 @@ template <typename C, typename R, typename... T, typename TNameMap> struct Funct * * \param[in] the Functor to build the filter from * \param[in] radius The size of neighborhood to use, if there is any - * itk::Neighborhood<T> in the operator() arguments. + * ConstNeighborhoodIterator<VectorImage<T>> in the operator() arguments. * \return A ready to use OTB filter, which accepts n input image of * type derived from the operator() arguments, and producing an image * correpsonding to the operator() return type. @@ -272,9 +265,9 @@ template <typename Functor, typename TNameMap = void> auto NewFunctorFilter(Func * * \tparam TFunction can be any operator() (const or non-const) that matches the following: * - Accepts any number of arguments of T, - * (const) itk::VariableLengthVector<T> (&),(const) - * itk::Neighborhood<T> (&), (const) - * itk::Neighborhood<itk::VariableLengthVector<T>> (&) with T a scalar type + * (const) itk::VariableLengthVector<T> (&),const + * itk::ConstNeighborhoodIterator<Image<T>> &, const + * itk::ConstNeighborhoodIterator<VectorImage<T>> & with T a scalar type * - returns T or itk::VariableLengthVector<T>, with T a scalar type * or returns void and has first parameter as output (i.e. T& or itk::VariableLengthVector<T>&) * @@ -438,7 +431,7 @@ private: * \param[in] numberOfOutputBands The number of output bands that * this filter will return * \param radius The size of neighborhood to use, if there is any - * itk::Neighborhood<T> in the operator() arguments. + * ConstNeighborhoodIterator in the operator() arguments. * \return A ready to use OTB filter, which accepts n input image of * type derived from the operator() arguments, and producing an image * correpsonding to the operator() return type.