OpenSceneGraph
Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
osgDB::OutputStream Class Reference
Collaboration diagram for osgDB::OutputStream:
Collaboration graph
[legend]

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

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.


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