diff --git a/Code/ApplicationEngine/otbWrapperInputImageParameter.cxx b/Code/ApplicationEngine/otbWrapperInputImageParameter.cxx index db38925881ed4e852ae76bd8394b4a8e89d703c6..fe53083a81b0df3ebc9db13903c2931c593e9599 100644 --- a/Code/ApplicationEngine/otbWrapperInputImageParameter.cxx +++ b/Code/ApplicationEngine/otbWrapperInputImageParameter.cxx @@ -288,1372 +288,81 @@ InputImageParameter::CastVectorImageFromImage() return caster->GetOutput(); } -/********************************************************************* -********************** Image -> Image -**********************************************************************/ -/////////// Int8ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<Int8ImageType, Int8ImageType>(){ - return this->SimpleCastImage<Int8ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<Int8ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<Int8ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<Int8ImageType, Int16ImageType>(){ - return this->SimpleCastImage<Int8ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<Int8ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<Int8ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<Int8ImageType, Int32ImageType>(){ - return this->SimpleCastImage<Int8ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<Int8ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<Int8ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<Int8ImageType, FloatImageType>(){ - return this->SimpleCastImage<Int8ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<Int8ImageType, DoubleImageType>(){ - return this->SimpleCastImage<Int8ImageType, DoubleImageType>(); -} - - -/////////// UInt8ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<UInt8ImageType, Int8ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<UInt8ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<UInt8ImageType, Int16ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<UInt8ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<UInt8ImageType, Int32ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<UInt8ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<UInt8ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<UInt8ImageType, FloatImageType>(){ - return this->SimpleCastImage<UInt8ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<UInt8ImageType, DoubleImageType>(){ - return this->SimpleCastImage<UInt8ImageType, DoubleImageType>(); -} - -/////////// Int16ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<Int16ImageType, Int8ImageType>(){ - return this->SimpleCastImage<Int16ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<Int16ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<Int16ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<Int16ImageType, Int16ImageType>(){ - return this->SimpleCastImage<Int16ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<Int16ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<Int16ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<Int16ImageType, Int32ImageType>(){ - return this->SimpleCastImage<Int16ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<Int16ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<Int16ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<Int16ImageType, FloatImageType>(){ - return this->SimpleCastImage<Int16ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<Int16ImageType, DoubleImageType>(){ - return this->SimpleCastImage<Int16ImageType, DoubleImageType>(); -} - -/////////// UInt16ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<UInt16ImageType, Int8ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<UInt16ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<UInt16ImageType, Int16ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<UInt16ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<UInt16ImageType, Int32ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<UInt16ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<UInt16ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<UInt16ImageType, FloatImageType>(){ - return this->SimpleCastImage<UInt16ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<UInt16ImageType, DoubleImageType>(){ - return this->SimpleCastImage<UInt16ImageType, DoubleImageType>(); -} - -/////////// Int32ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<Int32ImageType, Int8ImageType>(){ - return this->SimpleCastImage<Int32ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<Int32ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<Int32ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<Int32ImageType, Int16ImageType>(){ - return this->SimpleCastImage<Int32ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<Int32ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<Int32ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<Int32ImageType, Int32ImageType>(){ - return this->SimpleCastImage<Int32ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<Int32ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<Int32ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<Int32ImageType, FloatImageType>(){ - return this->SimpleCastImage<Int32ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<Int32ImageType, DoubleImageType>(){ - return this->SimpleCastImage<Int32ImageType, DoubleImageType>(); -} - - -/////////// UInt32ImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<UInt32ImageType, Int8ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<UInt32ImageType, UInt8ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<UInt32ImageType, Int16ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<UInt32ImageType, UInt16ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<UInt32ImageType, Int32ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<UInt32ImageType, UInt32ImageType>(){ - return this->SimpleCastImage<UInt32ImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<UInt32ImageType, FloatImageType>(){ - return this->SimpleCastImage<UInt32ImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<UInt32ImageType, DoubleImageType>(){ - return this->SimpleCastImage<UInt32ImageType, DoubleImageType>(); -} - -/////////// FloatImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<FloatImageType, Int8ImageType>(){ - return this->SimpleCastImage<FloatImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<FloatImageType, UInt8ImageType>(){ - return this->SimpleCastImage<FloatImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<FloatImageType, Int16ImageType>(){ - return this->SimpleCastImage<FloatImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<FloatImageType, UInt16ImageType>(){ - return this->SimpleCastImage<FloatImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<FloatImageType, Int32ImageType>(){ - return this->SimpleCastImage<FloatImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<FloatImageType, UInt32ImageType>(){ - return this->SimpleCastImage<FloatImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<FloatImageType, FloatImageType>(){ - return this->SimpleCastImage<FloatImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<FloatImageType, DoubleImageType>(){ - return this->SimpleCastImage<FloatImageType, DoubleImageType>(); -} - -/////////// DoubleImageType->... -template <> Int8ImageType * -InputImageParameter::CastImage<DoubleImageType, Int8ImageType>(){ - return this->SimpleCastImage<DoubleImageType, Int8ImageType>(); -} - -template <> UInt8ImageType * -InputImageParameter::CastImage<DoubleImageType, UInt8ImageType>(){ - return this->SimpleCastImage<DoubleImageType, UInt8ImageType>(); -} - -template <> Int16ImageType* -InputImageParameter::CastImage<DoubleImageType, Int16ImageType>(){ - return this->SimpleCastImage<DoubleImageType, Int16ImageType>(); -} - -template <> UInt16ImageType* -InputImageParameter::CastImage<DoubleImageType, UInt16ImageType>(){ - return this->SimpleCastImage<DoubleImageType, UInt16ImageType>(); -} - -template <> Int32ImageType* -InputImageParameter::CastImage<DoubleImageType, Int32ImageType>(){ - return this->SimpleCastImage<DoubleImageType, Int32ImageType>(); -} - - -template <> UInt32ImageType* -InputImageParameter::CastImage<DoubleImageType, UInt32ImageType>(){ - return this->SimpleCastImage<DoubleImageType, UInt32ImageType>(); -} - -template <> FloatImageType * -InputImageParameter::CastImage<DoubleImageType, FloatImageType>(){ - return this->SimpleCastImage<DoubleImageType, FloatImageType>(); -} - -template <> DoubleImageType * -InputImageParameter::CastImage<DoubleImageType, DoubleImageType>(){ - return this->SimpleCastImage<DoubleImageType, DoubleImageType>(); -} - - -/********************************************************************* -********************** VectorImage -> VectorImage -**********************************************************************/ -/////////// Int8VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int8VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int8VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int8VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int8VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int8VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int8VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int8VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int8VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<Int8VectorImageType, DoubleVectorImageType>(); -} - - -/////////// UInt8VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt8VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt8VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt8VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt8VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt8VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt8VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt8VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt8VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<UInt8VectorImageType, DoubleVectorImageType>(); -} - -/////////// Int16VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int16VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int16VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int16VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int16VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int16VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int16VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int16VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int16VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<Int16VectorImageType, DoubleVectorImageType>(); -} - -/////////// UInt16VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt16VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt16VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt16VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt16VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt16VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt16VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt16VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt16VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<UInt16VectorImageType, DoubleVectorImageType>(); -} - -/////////// Int32VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int32VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int32VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int32VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int32VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int32VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int32VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int32VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int32VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<Int32VectorImageType, DoubleVectorImageType>(); -} - - -/////////// UInt32VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt32VectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt32VectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt32VectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt32VectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt32VectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt32VectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt32VectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt32VectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<UInt32VectorImageType, DoubleVectorImageType>(); -} - -/////////// FloatVectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<FloatVectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<FloatVectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<FloatVectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<FloatVectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<FloatVectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<FloatVectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<FloatVectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<FloatVectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<FloatVectorImageType, DoubleVectorImageType>(); -} - -/////////// DoubleVectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<DoubleVectorImageType, Int8VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<DoubleVectorImageType, UInt8VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<DoubleVectorImageType, Int16VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<DoubleVectorImageType, UInt16VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<DoubleVectorImageType, Int32VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<DoubleVectorImageType, UInt32VectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<DoubleVectorImageType, FloatVectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<DoubleVectorImageType, DoubleVectorImageType>(){ - return this->SimpleCastImage<DoubleVectorImageType, DoubleVectorImageType>(); -} - - -/********************************************************************* -********************** RGBAImage -> RGBAImage -**********************************************************************/ -/////////// Int8RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<Int8RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<Int8RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<Int8RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<Int8RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<Int8RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, Int32RGBAImageType>(); -} - - -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<Int8RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<Int8RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<Int8RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<Int8RGBAImageType, DoubleRGBAImageType>(); -} - - -/////////// UInt8RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<UInt8RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<UInt8RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<UInt8RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<UInt8RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<UInt8RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, Int32RGBAImageType>(); -} - - -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<UInt8RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<UInt8RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<UInt8RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<UInt8RGBAImageType, DoubleRGBAImageType>(); -} - -/////////// Int16RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<Int16RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<Int16RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<Int16RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<Int16RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<Int16RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, Int32RGBAImageType>(); -} - - -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<Int16RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<Int16RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<Int16RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<Int16RGBAImageType, DoubleRGBAImageType>(); -} - -/////////// UInt16RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<UInt16RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<UInt16RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<UInt16RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<UInt16RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<UInt16RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, Int32RGBAImageType>(); -} - - -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<UInt16RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<UInt16RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<UInt16RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<UInt16RGBAImageType, DoubleRGBAImageType>(); -} - -/////////// Int32RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<Int32RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<Int32RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<Int32RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<Int32RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<Int32RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, Int32RGBAImageType>(); -} -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<Int32RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<Int32RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<Int32RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<Int32RGBAImageType, DoubleRGBAImageType>(); -} - - -/////////// UInt32RGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<UInt32RGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<UInt32RGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<UInt32RGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<UInt32RGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<UInt32RGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, Int32RGBAImageType>(); -} - - -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<UInt32RGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, UInt32RGBAImageType>(); -} - -template <> FloatRGBAImageType * -InputImageParameter::CastImage<UInt32RGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, FloatRGBAImageType>(); -} - -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<UInt32RGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<UInt32RGBAImageType, DoubleRGBAImageType>(); -} - -/////////// FloatRGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<FloatRGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, Int8RGBAImageType>(); -} - -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<FloatRGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, UInt8RGBAImageType>(); -} - -template <> Int16RGBAImageType* -InputImageParameter::CastImage<FloatRGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, Int16RGBAImageType>(); -} - -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<FloatRGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, UInt16RGBAImageType>(); -} - -template <> Int32RGBAImageType* -InputImageParameter::CastImage<FloatRGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, Int32RGBAImageType>(); -} - +#define otbCastImageMacro(InputImageType, OutputImageType, theMethod) \ + template<> OutputImageType * \ + InputImageParameter::CastImage<InputImageType , OutputImageType>() \ + { \ + return this->theMethod<InputImageType , OutputImageType>(); \ + } -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<FloatRGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, UInt32RGBAImageType>(); -} +#define otbGenericCastImageMacro(InputImageType, theMethod, prefix) \ + otbCastImageMacro(InputImageType, UInt8##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, Int8##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, UInt16##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, Int16##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, UInt32##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, Int32##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, Float##prefix##ImageType, theMethod) \ + otbCastImageMacro(InputImageType, Double##prefix##ImageType, theMethod) -template <> FloatRGBAImageType * -InputImageParameter::CastImage<FloatRGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, FloatRGBAImageType>(); -} -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<FloatRGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<FloatRGBAImageType, DoubleRGBAImageType>(); -} -/////////// DoubleRGBAImageType->... -template <> Int8RGBAImageType * -InputImageParameter::CastImage<DoubleRGBAImageType, Int8RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, Int8RGBAImageType>(); -} +/********************************************************************* +********************** Image -> Image +**********************************************************************/ +otbCastImageMacro(Int8ImageType, Int8ImageType, SimpleCastImage ) -template <> UInt8RGBAImageType * -InputImageParameter::CastImage<DoubleRGBAImageType, UInt8RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, UInt8RGBAImageType>(); -} +otbGenericCastImageMacro(UInt8ImageType, SimpleCastImage, ) +otbGenericCastImageMacro(Int16ImageType, SimpleCastImage, ) +otbGenericCastImageMacro(UInt16ImageType, SimpleCastImage, ) +otbGenericCastImageMacro(Int32ImageType, SimpleCastImage, ) +otbGenericCastImageMacro(UInt32ImageType, SimpleCastImage, ) +otbGenericCastImageMacro(FloatImageType, SimpleCastImage, ) +otbGenericCastImageMacro(DoubleImageType, SimpleCastImage, ) -template <> Int16RGBAImageType* -InputImageParameter::CastImage<DoubleRGBAImageType, Int16RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, Int16RGBAImageType>(); -} -template <> UInt16RGBAImageType* -InputImageParameter::CastImage<DoubleRGBAImageType, UInt16RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, UInt16RGBAImageType>(); -} -template <> Int32RGBAImageType* -InputImageParameter::CastImage<DoubleRGBAImageType, Int32RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, Int32RGBAImageType>(); -} +/********************************************************************* +********************** VectorImage -> VectorImage +**********************************************************************/ +otbGenericCastImageMacro(Int8VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(UInt8VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(Int16VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(UInt16VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(Int32VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(UInt32VectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(FloatVectorImageType, SimpleCastImage, Vector) +otbGenericCastImageMacro(DoubleVectorImageType, SimpleCastImage, Vector) -template <> UInt32RGBAImageType* -InputImageParameter::CastImage<DoubleRGBAImageType, UInt32RGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, UInt32RGBAImageType>(); -} -template <> FloatRGBAImageType * -InputImageParameter::CastImage<DoubleRGBAImageType, FloatRGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, FloatRGBAImageType>(); -} -template <> DoubleRGBAImageType * -InputImageParameter::CastImage<DoubleRGBAImageType, DoubleRGBAImageType>(){ - return this->SimpleCastImage<DoubleRGBAImageType, DoubleRGBAImageType>(); -} +/********************************************************************* +********************** RGBAImage -> RGBAImage +**********************************************************************/ +otbGenericCastImageMacro(Int8RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(UInt8RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(Int16RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(UInt16RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(Int32RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(UInt32RGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(FloatRGBAImageType, SimpleCastImage, RGBA) +otbGenericCastImageMacro(DoubleRGBAImageType, SimpleCastImage, RGBA) /********************************************************************* ********************** Image -> VectorImage **********************************************************************/ -/////////// Int8ImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int8ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int8ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int8ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int8ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int8ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int8ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int8ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int8ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<Int8ImageType, DoubleVectorImageType>(); -} - - -/////////// UInt8ImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt8ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt8ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt8ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt8ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt8ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt8ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt8ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt8ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<UInt8ImageType, DoubleVectorImageType>(); -} - -/////////// Int16ImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int16ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int16ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int16ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int16ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int16ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int16ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int16ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int16ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<Int16ImageType, DoubleVectorImageType>(); -} - -/////////// UInt16VectorImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt16ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt16ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt16ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt16ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt16ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt16ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt16ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt16ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<UInt16ImageType, DoubleVectorImageType>(); -} - -/////////// Int32ImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<Int32ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<Int32ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<Int32ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<Int32ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<Int32ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<Int32ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<Int32ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<Int32ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<Int32ImageType, DoubleVectorImageType>(); -} - - -/////////// UInt32ImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<UInt32ImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<UInt32ImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<UInt32ImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<UInt32ImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<UInt32ImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<UInt32ImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<UInt32ImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<UInt32ImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<UInt32ImageType, DoubleVectorImageType>(); -} - -/////////// FloatImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<FloatImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<FloatImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<FloatImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<FloatImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<FloatImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<FloatImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<FloatImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<FloatImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<FloatImageType, DoubleVectorImageType>(); -} - -/////////// DoubleImageType->... -template <> Int8VectorImageType * -InputImageParameter::CastImage<DoubleImageType, Int8VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, Int8VectorImageType>(); -} - -template <> UInt8VectorImageType * -InputImageParameter::CastImage<DoubleImageType, UInt8VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, UInt8VectorImageType>(); -} - -template <> Int16VectorImageType* -InputImageParameter::CastImage<DoubleImageType, Int16VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, Int16VectorImageType>(); -} - -template <> UInt16VectorImageType* -InputImageParameter::CastImage<DoubleImageType, UInt16VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, UInt16VectorImageType>(); -} - -template <> Int32VectorImageType* -InputImageParameter::CastImage<DoubleImageType, Int32VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, Int32VectorImageType>(); -} - - -template <> UInt32VectorImageType* -InputImageParameter::CastImage<DoubleImageType, UInt32VectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, UInt32VectorImageType>(); -} - -template <> FloatVectorImageType * -InputImageParameter::CastImage<DoubleImageType, FloatVectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, FloatVectorImageType>(); -} - -template <> DoubleVectorImageType * -InputImageParameter::CastImage<DoubleImageType, DoubleVectorImageType>(){ - return this->CastVectorImageFromImage<DoubleImageType, DoubleVectorImageType>(); -} +otbGenericCastImageMacro(Int8ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(UInt8ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(Int16ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(UInt16ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(Int32ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(UInt32ImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(FloatImageType, CastVectorImageFromImage, Vector) +otbGenericCastImageMacro(DoubleImageType, CastVectorImageFromImage, Vector) void