OpenSceneGraph
Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
osgDB::OutputStream Class Reference

Public Types

enum  WriteType { WRITE_UNKNOWN = 0, WRITE_SCENE, WRITE_IMAGE, WRITE_OBJECT }
 
enum  WriteImageHint {
  WRITE_USE_IMAGE_HINT = 0, WRITE_USE_EXTERNAL, WRITE_INLINE_DATA, WRITE_INLINE_FILE,
  WRITE_EXTERNAL_FILE
}
 
typedef std::map< const osg::Array *, unsigned int > ArrayMap
 
typedef std::map< const osg::Object *, unsigned int > ObjectMap
 

Public Member Functions

 OutputStream (const osgDB::Options *options)
 
virtual ~OutputStream ()
 
void setFileVersion (const std::string &d, int v)
 
int getFileVersion (const std::string &d=std::string()) const
 
bool isBinary () const
 
const std::string & getSchemaName () const
 
const osgDB::OptionsgetOptions () const
 
void setWriteImageHint (WriteImageHint hint)
 
WriteImageHint getWriteImageHint () const
 
OutputStreamoperator<< (bool b)
 
OutputStreamoperator<< (char c)
 
OutputStreamoperator<< (signed char c)
 
OutputStreamoperator<< (unsigned char c)
 
OutputStreamoperator<< (short s)
 
OutputStreamoperator<< (unsigned short s)
 
OutputStreamoperator<< (int i)
 
OutputStreamoperator<< (unsigned int i)
 
OutputStreamoperator<< (long l)
 
OutputStreamoperator<< (unsigned long l)
 
OutputStreamoperator<< (float f)
 
OutputStreamoperator<< (double d)
 
OutputStreamoperator<< (long long ll)
 
OutputStreamoperator<< (unsigned long long ull)
 
OutputStreamoperator<< (const std::string &s)
 
OutputStreamoperator<< (const char *s)
 
OutputStreamoperator<< (std::ostream &(*fn)(std::ostream &))
 
OutputStreamoperator<< (std::ios_base &(*fn)(std::ios_base &))
 
OutputStreamoperator<< (const ObjectGLenum &value)
 
OutputStreamoperator<< (const ObjectProperty &prop)
 
OutputStreamoperator<< (const ObjectMark &mark)
 
OutputStreamoperator<< (const osg::Vec2b &v)
 
OutputStreamoperator<< (const osg::Vec3b &v)
 
OutputStreamoperator<< (const osg::Vec4b &v)
 
OutputStreamoperator<< (const osg::Vec2ub &v)
 
OutputStreamoperator<< (const osg::Vec3ub &v)
 
OutputStreamoperator<< (const osg::Vec4ub &v)
 
OutputStreamoperator<< (const osg::Vec2s &v)
 
OutputStreamoperator<< (const osg::Vec3s &v)
 
OutputStreamoperator<< (const osg::Vec4s &v)
 
OutputStreamoperator<< (const osg::Vec2us &v)
 
OutputStreamoperator<< (const osg::Vec3us &v)
 
OutputStreamoperator<< (const osg::Vec4us &v)
 
OutputStreamoperator<< (const osg::Vec2i &v)
 
OutputStreamoperator<< (const osg::Vec3i &v)
 
OutputStreamoperator<< (const osg::Vec4i &v)
 
OutputStreamoperator<< (const osg::Vec2ui &v)
 
OutputStreamoperator<< (const osg::Vec3ui &v)
 
OutputStreamoperator<< (const osg::Vec4ui &v)
 
OutputStreamoperator<< (const osg::Vec2f &v)
 
OutputStreamoperator<< (const osg::Vec3f &v)
 
OutputStreamoperator<< (const osg::Vec4f &v)
 
OutputStreamoperator<< (const osg::Vec2d &v)
 
OutputStreamoperator<< (const osg::Vec3d &v)
 
OutputStreamoperator<< (const osg::Vec4d &v)
 
OutputStreamoperator<< (const osg::Quat &q)
 
OutputStreamoperator<< (const osg::Plane &p)
 
OutputStreamoperator<< (const osg::Matrixf &mat)
 
OutputStreamoperator<< (const osg::Matrixd &mat)
 
OutputStreamoperator<< (const osg::BoundingBoxf &bb)
 
OutputStreamoperator<< (const osg::BoundingBoxd &bb)
 
OutputStreamoperator<< (const osg::BoundingSpheref &bb)
 
OutputStreamoperator<< (const osg::BoundingSphered &bb)
 
OutputStreamoperator<< (const osg::Image *img)
 
OutputStreamoperator<< (const osg::Array *a)
 
OutputStreamoperator<< (const osg::PrimitiveSet *p)
 
OutputStreamoperator<< (const osg::Object *obj)
 
OutputStreamoperator<< (const osg::ref_ptr< osg::Image > &ptr)
 
OutputStreamoperator<< (const osg::ref_ptr< osg::Array > &ptr)
 
OutputStreamoperator<< (const osg::ref_ptr< osg::PrimitiveSet > &ptr)
 
template<typename T >
OutputStreamoperator<< (const osg::ref_ptr< T > &ptr)
 
void writeWrappedString (const std::string &str)
 
void writeCharArray (const char *s, unsigned int size)
 
template<typename T >
void writeSize (T size)
 
void writeArray (const osg::Array *a)
 
void writePrimitiveSet (const osg::PrimitiveSet *p)
 
void writeImage (const osg::Image *img)
 
void writeObject (const osg::Object *obj)
 
void writeObjectFields (const osg::Object *obj)
 
void writeObjectFields (const osg::Object *obj, const std::string &compoundName)
 
void setOutputIterator (OutputIterator *oi)
 set an output iterator, used directly when not using OutputStream with a traditional file related stream. More...
 
void start (OutputIterator *outIterator, WriteType type)
 start writing to OutputStream treating it as a traditional file related stream, handles headers and versioning More...
 
void compress (std::ostream *ostream)
 
void writeSchema (std::ostream &fout)
 
void throwException (const std::string &msg)
 
const OutputExceptiongetException () const
 

Public Attributes

ObjectProperty PROPERTY
 
ObjectMark BEGIN_BRACKET
 
ObjectMark END_BRACKET
 

Protected Types

typedef std::map< std::string, int > VersionMap
 
typedef std::map< std::string, std::string > SchemaMap
 

Protected Member Functions

template<typename T >
void writeArrayImplementation (const T *, int write_size, unsigned int numInRow=1)
 
unsigned int findOrCreateArrayID (const osg::Array *array, bool &newID)
 
unsigned int findOrCreateObjectID (const osg::Object *obj, bool &newID)
 

Protected Attributes

ArrayMap _arrayMap
 
ObjectMap _objectMap
 
VersionMap _domainVersionMap
 
WriteImageHint _writeImageHint
 
bool _useSchemaData
 
bool _useRobustBinaryFormat
 
SchemaMap _inbuiltSchemaMap
 
std::vector< std::string > _fields
 
std::string _schemaName
 
std::string _compressorName
 
std::stringstream _compressSource
 
osg::ref_ptr< OutputIterator_out
 
osg::ref_ptr< OutputException_exception
 
osg::ref_ptr< const osgDB::Options_options
 
int _targetFileVersion
 

Member Typedef Documentation

◆ ArrayMap

typedef std::map<const osg::Array*, unsigned int> osgDB::OutputStream::ArrayMap

◆ ObjectMap

typedef std::map<const osg::Object*, unsigned int> osgDB::OutputStream::ObjectMap

◆ SchemaMap

typedef std::map<std::string, std::string> osgDB::OutputStream::SchemaMap
protected

◆ VersionMap

typedef std::map<std::string, int> osgDB::OutputStream::VersionMap
protected

Member Enumeration Documentation

◆ WriteImageHint

Enumerator
WRITE_USE_IMAGE_HINT 

Use image hint, write inline data or use external

WRITE_USE_EXTERNAL 

Use external file on disk and write only the filename

WRITE_INLINE_DATA 

Write Image::data() to stream

WRITE_INLINE_FILE 

Write the image file itself to stream

WRITE_EXTERNAL_FILE 

Write Image::data() to disk and use it as external file

◆ WriteType

Enumerator
WRITE_UNKNOWN 
WRITE_SCENE 
WRITE_IMAGE 
WRITE_OBJECT 

Constructor & Destructor Documentation

◆ OutputStream()

osgDB::OutputStream::OutputStream ( const osgDB::Options options)

◆ ~OutputStream()

virtual osgDB::OutputStream::~OutputStream ( )
virtual

Member Function Documentation

◆ compress()

void osgDB::OutputStream::compress ( std::ostream *  ostream)

◆ findOrCreateArrayID()

unsigned int osgDB::OutputStream::findOrCreateArrayID ( const osg::Array array,
bool &  newID 
)
protected

◆ findOrCreateObjectID()

unsigned int osgDB::OutputStream::findOrCreateObjectID ( const osg::Object obj,
bool &  newID 
)
protected

◆ getException()

const OutputException* osgDB::OutputStream::getException ( ) const
inline

◆ getFileVersion()

int osgDB::OutputStream::getFileVersion ( const std::string &  d = std::string()) const

◆ getOptions()

const osgDB::Options* osgDB::OutputStream::getOptions ( ) const
inline

◆ getSchemaName()

const std::string& osgDB::OutputStream::getSchemaName ( ) const
inline

◆ getWriteImageHint()

WriteImageHint osgDB::OutputStream::getWriteImageHint ( ) const
inline

◆ isBinary()

bool osgDB::OutputStream::isBinary ( ) const
inline

◆ operator<<() [1/61]

OutputStream& osgDB::OutputStream::operator<< ( bool  b)
inline

◆ operator<<() [2/61]

OutputStream& osgDB::OutputStream::operator<< ( char  c)
inline

◆ operator<<() [3/61]

OutputStream& osgDB::OutputStream::operator<< ( signed char  c)
inline

◆ operator<<() [4/61]

OutputStream& osgDB::OutputStream::operator<< ( unsigned char  c)
inline

◆ operator<<() [5/61]

OutputStream& osgDB::OutputStream::operator<< ( short  s)
inline

◆ operator<<() [6/61]

OutputStream& osgDB::OutputStream::operator<< ( unsigned short  s)
inline

◆ operator<<() [7/61]

OutputStream& osgDB::OutputStream::operator<< ( int  i)
inline

◆ operator<<() [8/61]

OutputStream& osgDB::OutputStream::operator<< ( unsigned int  i)
inline

◆ operator<<() [9/61]

OutputStream& osgDB::OutputStream::operator<< ( long  l)
inline

◆ operator<<() [10/61]

OutputStream& osgDB::OutputStream::operator<< ( unsigned long  l)
inline

◆ operator<<() [11/61]

OutputStream& osgDB::OutputStream::operator<< ( float  f)
inline

◆ operator<<() [12/61]

OutputStream& osgDB::OutputStream::operator<< ( double  d)
inline

◆ operator<<() [13/61]

OutputStream& osgDB::OutputStream::operator<< ( long long  ll)
inline

◆ operator<<() [14/61]

OutputStream& osgDB::OutputStream::operator<< ( unsigned long long  ull)
inline

◆ operator<<() [15/61]

OutputStream& osgDB::OutputStream::operator<< ( const std::string &  s)
inline

◆ operator<<() [16/61]

OutputStream& osgDB::OutputStream::operator<< ( const char *  s)
inline

◆ operator<<() [17/61]

OutputStream& osgDB::OutputStream::operator<< ( std::ostream &(*)(std::ostream &)  fn)
inline

◆ operator<<() [18/61]

OutputStream& osgDB::OutputStream::operator<< ( std::ios_base &(*)(std::ios_base &)  fn)
inline

◆ operator<<() [19/61]

OutputStream& osgDB::OutputStream::operator<< ( const ObjectGLenum value)
inline

◆ operator<<() [20/61]

OutputStream& osgDB::OutputStream::operator<< ( const ObjectProperty prop)
inline

◆ operator<<() [21/61]

OutputStream& osgDB::OutputStream::operator<< ( const ObjectMark mark)
inline

References osg::operator<<().

◆ operator<<() [22/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2b v)

◆ operator<<() [23/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3b v)

◆ operator<<() [24/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4b v)

◆ operator<<() [25/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2ub v)

◆ operator<<() [26/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3ub v)

◆ operator<<() [27/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4ub v)

◆ operator<<() [28/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2s v)

◆ operator<<() [29/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3s v)

◆ operator<<() [30/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4s v)

◆ operator<<() [31/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2us v)

◆ operator<<() [32/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3us v)

◆ operator<<() [33/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4us v)

◆ operator<<() [34/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2i v)

◆ operator<<() [35/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3i v)

◆ operator<<() [36/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4i v)

◆ operator<<() [37/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2ui v)

◆ operator<<() [38/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3ui v)

◆ operator<<() [39/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4ui v)

◆ operator<<() [40/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2f v)

◆ operator<<() [41/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3f v)

◆ operator<<() [42/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4f v)

◆ operator<<() [43/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec2d v)

◆ operator<<() [44/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec3d v)

◆ operator<<() [45/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Vec4d v)

◆ operator<<() [46/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Quat q)

◆ operator<<() [47/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Plane p)

◆ operator<<() [48/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Matrixf mat)

◆ operator<<() [49/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Matrixd mat)

◆ operator<<() [50/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::BoundingBoxf bb)

◆ operator<<() [51/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::BoundingBoxd bb)

◆ operator<<() [52/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::BoundingSpheref bb)

◆ operator<<() [53/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::BoundingSphered bb)

◆ operator<<() [54/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Image img)
inline

◆ operator<<() [55/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Array a)
inline

References osgDB::writeArray().

◆ operator<<() [56/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::PrimitiveSet p)
inline

◆ operator<<() [57/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::Object obj)
inline

◆ operator<<() [58/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::ref_ptr< osg::Image > &  ptr)
inline

◆ operator<<() [59/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::ref_ptr< osg::Array > &  ptr)
inline

References osgDB::writeArray().

◆ operator<<() [60/61]

OutputStream& osgDB::OutputStream::operator<< ( const osg::ref_ptr< osg::PrimitiveSet > &  ptr)
inline

◆ operator<<() [61/61]

template<typename T >
OutputStream& osgDB::OutputStream::operator<< ( const osg::ref_ptr< T > &  ptr)
inline

◆ setFileVersion()

void osgDB::OutputStream::setFileVersion ( const std::string &  d,
int  v 
)

◆ setOutputIterator()

void osgDB::OutputStream::setOutputIterator ( OutputIterator oi)
inline

set an output iterator, used directly when not using OutputStream with a traditional file related stream.

◆ setWriteImageHint()

void osgDB::OutputStream::setWriteImageHint ( WriteImageHint  hint)
inline

◆ start()

void osgDB::OutputStream::start ( OutputIterator outIterator,
WriteType  type 
)

start writing to OutputStream treating it as a traditional file related stream, handles headers and versioning

◆ throwException()

void osgDB::OutputStream::throwException ( const std::string &  msg)
inline

◆ writeArray()

void osgDB::OutputStream::writeArray ( const osg::Array a)

◆ writeArrayImplementation()

template<typename T >
void osgDB::OutputStream::writeArrayImplementation ( const T *  ,
int  write_size,
unsigned int  numInRow = 1 
)
protected

◆ writeCharArray()

void osgDB::OutputStream::writeCharArray ( const char *  s,
unsigned int  size 
)
inline

◆ writeImage()

void osgDB::OutputStream::writeImage ( const osg::Image img)

◆ writeObject()

void osgDB::OutputStream::writeObject ( const osg::Object obj)

◆ writeObjectFields() [1/2]

void osgDB::OutputStream::writeObjectFields ( const osg::Object obj)

◆ writeObjectFields() [2/2]

void osgDB::OutputStream::writeObjectFields ( const osg::Object obj,
const std::string &  compoundName 
)

◆ writePrimitiveSet()

void osgDB::OutputStream::writePrimitiveSet ( const osg::PrimitiveSet p)

◆ writeSchema()

void osgDB::OutputStream::writeSchema ( std::ostream &  fout)

◆ writeSize()

template<typename T >
void osgDB::OutputStream::writeSize ( size)
inline

References osgDB::writeArray().

◆ writeWrappedString()

void osgDB::OutputStream::writeWrappedString ( const std::string &  str)
inline

Member Data Documentation

◆ _arrayMap

ArrayMap osgDB::OutputStream::_arrayMap
protected

◆ _compressorName

std::string osgDB::OutputStream::_compressorName
protected

◆ _compressSource

std::stringstream osgDB::OutputStream::_compressSource
protected

◆ _domainVersionMap

VersionMap osgDB::OutputStream::_domainVersionMap
protected

◆ _exception

osg::ref_ptr<OutputException> osgDB::OutputStream::_exception
protected

◆ _fields

std::vector<std::string> osgDB::OutputStream::_fields
protected

◆ _inbuiltSchemaMap

SchemaMap osgDB::OutputStream::_inbuiltSchemaMap
protected

◆ _objectMap

ObjectMap osgDB::OutputStream::_objectMap
protected

◆ _options

osg::ref_ptr<const osgDB::Options> osgDB::OutputStream::_options
protected

◆ _out

osg::ref_ptr<OutputIterator> osgDB::OutputStream::_out
protected

◆ _schemaName

std::string osgDB::OutputStream::_schemaName
protected

◆ _targetFileVersion

int osgDB::OutputStream::_targetFileVersion
protected

◆ _useRobustBinaryFormat

bool osgDB::OutputStream::_useRobustBinaryFormat
protected

◆ _useSchemaData

bool osgDB::OutputStream::_useSchemaData
protected

◆ _writeImageHint

WriteImageHint osgDB::OutputStream::_writeImageHint
protected

◆ BEGIN_BRACKET

ObjectMark osgDB::OutputStream::BEGIN_BRACKET

◆ END_BRACKET

ObjectMark osgDB::OutputStream::END_BRACKET

◆ PROPERTY

ObjectProperty osgDB::OutputStream::PROPERTY

The documentation for this class was generated from the following file: