OpenSceneGraph 3.6.5
osgDB::OutputStream Class Reference

#include <OutputStream>

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.
void start (OutputIterator *outIterator, WriteType type)
 start writing to OutputStream treating it as a traditional file related stream, handles headers and versioning
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()

◆ ~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

References _exception.

◆ getFileVersion()

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

◆ getOptions()

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

References _options.

◆ getSchemaName()

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

References _schemaName.

◆ getWriteImageHint()

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

References _writeImageHint.

◆ isBinary()

◆ operator<<() [1/61]

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

References _out, and OutputStream().

◆ operator<<() [2/61]

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

References _out, and OutputStream().

◆ operator<<() [3/61]

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

References _out, and OutputStream().

◆ operator<<() [4/61]

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

References _out, and OutputStream().

◆ operator<<() [5/61]

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

References _out, and OutputStream().

◆ operator<<() [6/61]

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

References _out, and OutputStream().

◆ operator<<() [7/61]

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

◆ operator<<() [8/61]

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

References OutputStream().

◆ operator<<() [9/61]

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

References OutputStream().

◆ operator<<() [10/61]

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

References OutputStream().

◆ operator<<() [11/61]

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

References OutputStream().

◆ operator<<() [12/61]

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

References OutputStream(), and writeImage().

◆ operator<<() [13/61]

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

References OutputStream().

◆ operator<<() [14/61]

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

References OutputStream().

◆ operator<<() [15/61]

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

References OutputStream(), and writeObject().

◆ operator<<() [16/61]

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

References OutputStream().

◆ operator<<() [17/61]

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

◆ operator<<() [18/61]

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

References OutputStream().

◆ operator<<() [19/61]

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

◆ operator<<() [20/61]

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

◆ operator<<() [21/61]

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

◆ operator<<() [22/61]

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

◆ operator<<() [23/61]

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

References OutputStream().

◆ operator<<() [24/61]

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

References OutputStream().

◆ operator<<() [25/61]

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

References OutputStream().

◆ operator<<() [26/61]

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

References OutputStream().

◆ operator<<() [27/61]

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

References OutputStream().

◆ operator<<() [28/61]

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

References OutputStream().

◆ operator<<() [29/61]

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

References OutputStream().

◆ operator<<() [30/61]

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

References OutputStream().

◆ operator<<() [31/61]

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

References OutputStream().

◆ operator<<() [32/61]

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

References OutputStream().

◆ operator<<() [33/61]

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

References OutputStream().

◆ operator<<() [34/61]

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

References OutputStream().

◆ operator<<() [35/61]

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

References OutputStream().

◆ operator<<() [36/61]

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

References OutputStream().

◆ operator<<() [37/61]

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

References OutputStream().

◆ operator<<() [38/61]

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

References OutputStream().

◆ operator<<() [39/61]

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

References OutputStream().

◆ operator<<() [40/61]

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

References OutputStream().

◆ operator<<() [41/61]

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

References OutputStream().

◆ operator<<() [42/61]

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

References OutputStream().

◆ operator<<() [43/61]

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

References OutputStream().

◆ operator<<() [44/61]

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

References OutputStream().

◆ operator<<() [45/61]

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

References OutputStream().

◆ operator<<() [46/61]

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

References OutputStream().

◆ operator<<() [47/61]

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

References _out, and OutputStream().

◆ operator<<() [48/61]

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

References _out, and OutputStream().

◆ operator<<() [49/61]

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

References _out, and OutputStream().

◆ operator<<() [50/61]

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

References _out, and OutputStream().

◆ operator<<() [51/61]

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

References _out, and OutputStream().

◆ operator<<() [52/61]

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

References _out, and OutputStream().

◆ operator<<() [53/61]

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

References _out, and OutputStream().

◆ operator<<() [54/61]

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

References _out, and OutputStream().

◆ operator<<() [55/61]

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

References _out, and OutputStream().

◆ operator<<() [56/61]

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

References _out, and OutputStream().

◆ operator<<() [57/61]

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

References _out, and OutputStream().

◆ operator<<() [58/61]

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

References _out, and OutputStream().

◆ operator<<() [59/61]

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

References _out, and OutputStream().

◆ operator<<() [60/61]

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

References _out, and OutputStream().

◆ operator<<() [61/61]

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

References _out, and OutputStream().

◆ 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.

References _out.

◆ setWriteImageHint()

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

References _writeImageHint.

◆ 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

References _exception, and _fields.

Referenced by writeSchema().

◆ writeArray()

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

Referenced by operator<<(), and operator<<().

◆ 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

References _out.

◆ 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)

Referenced by operator<<(), and operator<<().

◆ writeSchema()

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

References throwException().

◆ writeSize()

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

◆ writeWrappedString()

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

References _out.

Referenced by osgDB::StringSerializer< C >::write().

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

Referenced by getException(), and throwException().

◆ _fields

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

Referenced by throwException().

◆ _inbuiltSchemaMap

SchemaMap osgDB::OutputStream::_inbuiltSchemaMap
protected

◆ _objectMap

ObjectMap osgDB::OutputStream::_objectMap
protected

◆ _options

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

Referenced by getOptions().

◆ _out

◆ _schemaName

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

Referenced by getSchemaName().

◆ _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

◆ END_BRACKET

◆ PROPERTY


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

osg logo
Generated at Sun Jul 27 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.