18 #ifndef __otbVectorImageTo3DScalarImageFilter_txx
19 #define __otbVectorImageTo3DScalarImageFilter_txx
30 template <
class TInputImage,
class TOutputImage>
35 template <
class TInputImage,
class TOutputImage>
47 for (
unsigned int i = 0; i < InputImageType::ImageDimension; ++i)
49 size[i] = inputLargestRegion.GetSize()[i];
50 index[i] = inputLargestRegion.GetIndex()[i];
52 size[OutputImageType::ImageDimension - 1] = inputPtr->GetNumberOfComponentsPerPixel();
53 index[OutputImageType::ImageDimension - 1] = 0;
56 outputRegion.SetSize(size);
57 outputRegion.SetIndex(index);
58 outputPtr->SetLargestPossibleRegion(outputRegion);
61 template <
class TInputImage,
class TOutputImage>
74 for (
unsigned int i = 0; i < InputImageType::ImageDimension; ++i)
76 size[i] = requestedRegion.GetSize()[i];
77 index[i] = requestedRegion.GetIndex()[i];
79 inputRequestedRegion.SetSize(size);
80 inputRequestedRegion.SetIndex(index);
81 inputPtr->SetRequestedRegion(inputRequestedRegion);
83 template <
class TInputImage,
class TOutputImage>
99 for (
unsigned int i = 0; i < InputImageType::ImageDimension; ++i)
101 size[i] = outputRegionForThread.GetSize()[i];
102 index[i] = outputRegionForThread.
GetIndex()[i];
104 inputRegion.SetSize(size);
105 inputRegion.SetIndex(index);
107 InputIteratorType inIt(inputPtr, inputRegion);
109 OutputIteratorType outIt(outputPtr, outputRegionForThread);
110 outIt.SetFirstDirection(0);
111 outIt.SetSecondDirection(1);
116 while (!outIt.IsAtEnd())
118 outIt.Set(static_cast<OutputPixelType>(inIt.Get()[outIt.GetIndex()[InputImageType::ImageDimension]]));
125 if (outIt.IsAtEndOfLine())
129 if (outIt.IsAtEndOfSlice())
138 template <
class TInputImage,
class TOutputImage>
143 Superclass::PrintSelf(os, indent);