21 #ifndef otbVectorDataIOBase_h
22 #define otbVectorDataIOBase_h
26 #include "itkLightProcessObject.h"
27 #include "itkIndent.h"
29 #include "itkDataObject.h"
31 #include "OTBVectorDataBaseExport.h"
71 itkStaticConstMacro(VDimension,
unsigned int, 3);
76 itkSetStringMacro(FileName);
77 itkGetStringMacro(FileName);
82 typedef enum {
BigEndian, LittleEndian, OrderNotApplicable } ByteOrder;
99 this->SetByteOrder(BigEndian);
103 this->SetByteOrder(LittleEndian);
132 virtual void Read(itk::DataObject* data) = 0;
154 virtual void Write(
const itk::DataObject* data,
char** papszOptions =
nullptr) = 0;
160 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
172 virtual void Reset(
const bool freeDynamic =
true);
Abstract superclass defines VectorData IO interface.
virtual void Read(itk::DataObject *data)=0
void SetByteOrderToLittleEndian()
virtual bool CanStreamWrite() const
itk::Point< double, VDimension > PointType
itk::SmartPointer< Self > Pointer
itk::Vector< double, VDimension > SpacingType
virtual void Reset(const bool freeDynamic=true)
itk::LightProcessObject Superclass
void SetByteOrderToBigEndian()
VectorDataIOBase(const Self &)=delete
~VectorDataIOBase() override
virtual bool CanWriteFile(const char *) const =0
virtual void Write(const itk::DataObject *data, char **papszOptions=nullptr)=0
void operator=(const Self &)=delete
void PrintSelf(std::ostream &os, itk::Indent indent) const override
virtual bool CanReadFile(const char *) const =0
virtual bool CanStreamRead() const
std::string GetByteOrderAsString(ByteOrder) const
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.