21 #ifndef otbVariableLengthVectorConverter_h
22 #define otbVariableLengthVectorConverter_h
24 #include "itkProcessObject.h"
25 #include "itkVariableLengthVector.h"
26 #include "itkFixedArray.h"
27 #include "itkHistogram.h"
28 #include "itkSmartPointer.h"
45 template <
class TInputType,
class TPrecisionType =
double>
62 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
80 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
82 Superclass::PrintSelf(os, indent);
83 os <<
"Attempt to use inexistent implementation of the converter!" << std::endl;
88 void operator=(
const Self&) =
delete;
92 template <
class TInternalInputType,
class TPrecisionType>
109 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
110 typedef itk::VariableLengthVector<TInternalInputType>
InputType;
124 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
126 Superclass::PrintSelf(os, indent);
127 os <<
"Attempt to use inexistent implementation of the converter!" << std::endl;
132 void operator=(
const Self&) =
delete;
137 template <
class TInternalInputType,
class TPrecisionType>
154 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
155 typedef typename std::vector<std::vector<TInternalInputType>>
InputType;
166 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
168 Superclass::PrintSelf(os, indent);
169 os <<
"Converter: std::vector<std::vector<RealType>> => VariableLengthVector<RealType>" << std::endl;
174 void operator=(
const Self&) =
delete;
179 template <
class TInternalInputType,
class TPrecisionType>
196 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
197 typedef typename std::vector<std::vector<std::complex<TInternalInputType>>>
InputType;
208 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
210 Superclass::PrintSelf(os, indent);
211 os <<
"Converter: std::vector<std::vector<std::complex<RealType>>> => VariableLengthVector<RealType>" << std::endl;
216 void operator=(
const Self&) =
delete;
221 template <
class TInternalInputType,
unsigned int VArrayDimension,
class TPrecisionType>
238 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
239 typedef typename itk::FixedArray<TInternalInputType, VArrayDimension>
InputType;
250 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
252 Superclass::PrintSelf(os, indent);
253 os <<
"Converter: itk::FixedArray<RealType, VArrayDimension> => VariableLengthVector<RealType>" << std::endl;
258 void operator=(
const Self&) =
delete;
262 template <
class TPixel,
class TPrecisionType>
279 typedef typename itk::VariableLengthVector<OutputPrecisionType>
OutputType;
280 typedef typename itk::SmartPointer<itk::Statistics::Histogram<TPixel>>
InputType;
291 void PrintSelf(std::ostream& os, itk::Indent indent)
const override
293 Superclass::PrintSelf(os, indent);
294 os <<
"Converter: itk::Statistics::Histogram<RealType, VMeasurementVectorSize, TFrequencyContainer> => VariableLengthVector<RealType>" << std::endl;
299 void operator=(
const Self&) =
delete;
304 #ifndef OTB_MANUAL_INSTANTIATION