OpenSceneGraph  3.0.1
Classes | Namespaces | Defines
Serializer File Reference
#include <osg/ref_ptr>
#include <osg/Notify>
#include <osg/Object>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
#include <string>
#include <sstream>
#include <limits.h>

Classes

class  osgDB::IntLookup
class  osgDB::UserLookupTableProxy
class  osgDB::BaseSerializer
class  osgDB::UserSerializer
class  osgDB::TemplateSerializer
class  osgDB::PropByValSerializer
class  osgDB::PropByRefSerializer
class  osgDB::MatrixSerializer
class  osgDB::GLenumSerializer
class  osgDB::StringSerializer
class  osgDB::ObjectSerializer
class  osgDB::ImageSerializer
class  osgDB::EnumSerializer
class  osgDB::ListSerializer

Namespaces

namespace  osgDB
 

The osgDB library provides support for reading and writing scene graphs, providing a plugin framework and file utility classes.


Defines

#define OSGDB__SERIALIZER
#define OBJECT_CAST   static_cast
#define BEGIN_USER_TABLE(NAME, CLASS)
#define ADD_USER_VALUE(VALUE)   lookup->add(#VALUE, MyClass::VALUE)
#define END_USER_TABLE()   }
#define USER_READ_FUNC(NAME, FUNCNAME)
#define USER_WRITE_FUNC(NAME, FUNCNAME)
#define ADD_SERIALIZER(S)   wrapper->addSerializer( (S) )
#define ADD_USER_SERIALIZER(PROP)
#define ADD_BOOL_SERIALIZER(PROP, DEF)
#define ADD_CHAR_SERIALIZER(PROP, DEF)
#define ADD_UCHAR_SERIALIZER(PROP, DEF)
#define ADD_SHORT_SERIALIZER(PROP, DEF)
#define ADD_USHORT_SERIALIZER(PROP, DEF)
#define ADD_HEXSHORT_SERIALIZER(PROP, DEF)
#define ADD_INT_SERIALIZER(PROP, DEF)
#define ADD_UINT_SERIALIZER(PROP, DEF)
#define ADD_GLINT_SERIALIZER(PROP, DEF)
#define ADD_HEXINT_SERIALIZER(PROP, DEF)
#define ADD_FLOAT_SERIALIZER(PROP, DEF)
#define ADD_DOUBLE_SERIALIZER(PROP, DEF)
#define ADD_REF_BOOL_SERIALIZER(PROP, DEF)
#define ADD_REF_CHAR_SERIALIZER(PROP, DEF)
#define ADD_REF_UCHAR_SERIALIZER(PROP, DEF)
#define ADD_REF_SHORT_SERIALIZER(PROP, DEF)
#define ADD_REF_USHORT_SERIALIZER(PROP, DEF)
#define ADD_REF_HEXSHORT_SERIALIZER(PROP, DEF)
#define ADD_REF_INT_SERIALIZER(PROP, DEF)
#define ADD_REF_UINT_SERIALIZER(PROP, DEF)
#define ADD_REF_GLINT_SERIALIZER(PROP, DEF)
#define ADD_REF_HEXINT_SERIALIZER(PROP, DEF)
#define ADD_REF_FLOAT_SERIALIZER(PROP, DEF)
#define ADD_REF_DOUBLE_SERIALIZER(PROP, DEF)
#define ADD_VEC2F_SERIALIZER(PROP, DEF)
#define ADD_VEC2D_SERIALIZER(PROP, DEF)
#define ADD_VEC2_SERIALIZER(PROP, DEF)   ADD_VEC2F_SERIALIZER(PROP, DEF)
#define ADD_VEC3F_SERIALIZER(PROP, DEF)
#define ADD_VEC3D_SERIALIZER(PROP, DEF)
#define ADD_VEC3_SERIALIZER(PROP, DEF)   ADD_VEC3F_SERIALIZER(PROP, DEF)
#define ADD_VEC4F_SERIALIZER(PROP, DEF)
#define ADD_VEC4D_SERIALIZER(PROP, DEF)
#define ADD_VEC4_SERIALIZER(PROP, DEF)   ADD_VEC4F_SERIALIZER(PROP, DEF)
#define ADD_QUAT_SERIALIZER(PROP, DEF)
#define ADD_PLANE_SERIALIZER(PROP, DEF)
#define ADD_MATRIXF_SERIALIZER(PROP, DEF)
#define ADD_MATRIXD_SERIALIZER(PROP, DEF)
#define ADD_MATRIX_SERIALIZER(PROP, DEF)
#define ADD_GLENUM_SERIALIZER(PROP, TYPE, DEF)
#define ADD_STRING_SERIALIZER(PROP, DEF)
#define ADD_OBJECT_SERIALIZER(PROP, TYPE, DEF)
#define ADD_IMAGE_SERIALIZER(PROP, TYPE, DEF)
#define ADD_LIST_SERIALIZER(PROP, TYPE)
#define BEGIN_ENUM_SERIALIZER(PROP, DEF)
#define BEGIN_ENUM_SERIALIZER2(PROP, TYPE, DEF)
#define BEGIN_ENUM_SERIALIZER3(PROP, DEF)
#define BEGIN_ENUM_SERIALIZER4(PROPERTIES_CLASS, PROP, DEF)
#define ADD_ENUM_VALUE(VALUE)   serializer->add(#VALUE, MyClass::VALUE)
#define ADD_ENUM_CLASS_VALUE(CLASS, VALUE)   serializer->add(#VALUE, CLASS::VALUE)
#define END_ENUM_SERIALIZER()   wrapper->addSerializer(serializer.get(), osgDB::BaseSerializer::RW_ENUM); }
#define UPDATE_TO_VERSION(VER)   wrapper->setUpdatedVersion( (VER) );
#define REMOVE_SERIALIZER(PROP)   wrapper->markSerializerAsRemoved( #PROP );

Define Documentation

#define ADD_BOOL_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, bool >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOOL )
#define ADD_CHAR_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, char >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_CHAR )
#define ADD_DOUBLE_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, double >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_DOUBLE )
#define ADD_ENUM_CLASS_VALUE (   CLASS,
  VALUE 
)    serializer->add(#VALUE, CLASS::VALUE)
#define ADD_ENUM_VALUE (   VALUE)    serializer->add(#VALUE, MyClass::VALUE)
#define ADD_FLOAT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, float >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_FLOAT )
#define ADD_GLENUM_SERIALIZER (   PROP,
  TYPE,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::GLenumSerializer< MyClass, TYPE >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_GLENUM )
#define ADD_GLINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, GLint >( \
        #PROP, ((int)(DEF)), &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_INT )
#define ADD_HEXINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true), osgDB::BaseSerializer::RW_UINT )
#define ADD_HEXSHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true), osgDB::BaseSerializer::RW_USHORT )
#define ADD_IMAGE_SERIALIZER (   PROP,
  TYPE,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::ImageSerializer< MyClass, TYPE >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_IMAGE )
#define ADD_INT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_INT )
#define ADD_LIST_SERIALIZER (   PROP,
  TYPE 
)
Value:
wrapper->addSerializer( new osgDB::ListSerializer< MyClass, TYPE >( \
        #PROP, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_LIST )
#define ADD_MATRIX_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::MatrixSerializer< MyClass >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_MATRIX )
#define ADD_MATRIXD_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Matrixd >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_MATRIXD )
#define ADD_MATRIXF_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Matrixf >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_MATRIXF )
#define ADD_OBJECT_SERIALIZER (   PROP,
  TYPE,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::ObjectSerializer< MyClass, TYPE >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_OBJECT )
#define ADD_PLANE_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Plane >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_PLANE )
#define ADD_QUAT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Quat >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_QUAT )
#define ADD_REF_BOOL_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, bool >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOOL )
#define ADD_REF_CHAR_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, char >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_CHAR )
#define ADD_REF_DOUBLE_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, double >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_DOUBLE )
#define ADD_REF_FLOAT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, float >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_FLOAT )
#define ADD_REF_GLINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, GLint >( \
        #PROP, ((int)(DEF)), &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_INT )
#define ADD_REF_HEXINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, unsigned int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true), osgDB::BaseSerializer::RW_UINT )
#define ADD_REF_HEXSHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, unsigned short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true), osgDB::BaseSerializer::RW_USHORT )
#define ADD_REF_INT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_INT )
#define ADD_REF_SHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_SHORT )
#define ADD_REF_UCHAR_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, unsigned char >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_UCHAR )
#define ADD_REF_UINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, unsigned int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_UINT )
#define ADD_REF_USHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, unsigned short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_USHORT )
#define ADD_SERIALIZER (   S)    wrapper->addSerializer( (S) )
#define ADD_SHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_SHORT )
#define ADD_STRING_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::StringSerializer< MyClass >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_STRING )
#define ADD_UCHAR_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned char >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_UCHAR )
#define ADD_UINT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned int >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_UINT )
#define ADD_USER_SERIALIZER (   PROP)
Value:
wrapper->addSerializer( new osgDB::UserSerializer<MyClass>( \
        #PROP, &check##PROP, &read##PROP, &write##PROP), osgDB::BaseSerializer::RW_USER )
#define ADD_USER_VALUE (   VALUE)    lookup->add(#VALUE, MyClass::VALUE)
#define ADD_USHORT_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned short >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_USHORT )
#define ADD_VEC2_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC2F_SERIALIZER(PROP, DEF)
#define ADD_VEC2D_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2d >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2D )
#define ADD_VEC2F_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2f >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2F )
#define ADD_VEC3_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC3F_SERIALIZER(PROP, DEF)
#define ADD_VEC3D_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3d >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3D )
#define ADD_VEC3F_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3f >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3F )
#define ADD_VEC4_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC4F_SERIALIZER(PROP, DEF)
#define ADD_VEC4D_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4d >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4D )
#define ADD_VEC4F_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4f >( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4F )
#define BEGIN_ENUM_SERIALIZER (   PROP,
  DEF 
)
Value:
{ typedef osgDB::EnumSerializer<MyClass, MyClass::PROP, void> MySerializer; \
    osg::ref_ptr<MySerializer> serializer = new MySerializer( \
        #PROP, MyClass::DEF, &MyClass::get##PROP, &MyClass::set##PROP)
#define BEGIN_ENUM_SERIALIZER2 (   PROP,
  TYPE,
  DEF 
)
Value:
{ typedef osgDB::EnumSerializer<MyClass, TYPE, void> MySerializer; \
    osg::ref_ptr<MySerializer> serializer = new MySerializer( \
        #PROP, MyClass::DEF, &MyClass::get##PROP, &MyClass::set##PROP)
#define BEGIN_ENUM_SERIALIZER3 (   PROP,
  DEF 
)
Value:
{ typedef osgDB::EnumSerializer<MyClass, MyClass::PROP, bool> MySerializer; \
    osg::ref_ptr<MySerializer> serializer = new MySerializer( \
        #PROP, MyClass::DEF, &MyClass::get##PROP, &MyClass::set##PROP)
#define BEGIN_ENUM_SERIALIZER4 (   PROPERTIES_CLASS,
  PROP,
  DEF 
)
Value:
{ typedef osgDB::EnumSerializer<MyClass, PROPERTIES_CLASS::PROP, void> MySerializer; \
    osg::ref_ptr<MySerializer> serializer = new MySerializer( \
        #PROP, PROPERTIES_CLASS::DEF, &MyClass::get##PROP, &MyClass::set##PROP)
#define BEGIN_USER_TABLE (   NAME,
  CLASS 
)
Value:
static void add_user_value_func_##NAME(osgDB::IntLookup*); \
    static osgDB::UserLookupTableProxy s_user_lookup_table_##NAME(&add_user_value_func_##NAME); \
    static void add_user_value_func_##NAME(osgDB::IntLookup* lookup) { typedef CLASS MyClass
#define END_ENUM_SERIALIZER ( )    wrapper->addSerializer(serializer.get(), osgDB::BaseSerializer::RW_ENUM); }
#define END_USER_TABLE ( )    }
#define OBJECT_CAST   static_cast
#define OSGDB__SERIALIZER
#define REMOVE_SERIALIZER (   PROP)    wrapper->markSerializerAsRemoved( #PROP );
#define UPDATE_TO_VERSION (   VER)    wrapper->setUpdatedVersion( (VER) );
#define USER_READ_FUNC (   NAME,
  FUNCNAME 
)
Value:
static int FUNCNAME(osgDB::InputStream& is) { \
        int value; if (is.isBinary()) is >> value; \
        else { std::string str; is >> str; \
        value = (s_user_lookup_table_##NAME)._lookup.getValue(str.c_str()); } \
        return value; }
#define USER_WRITE_FUNC (   NAME,
  FUNCNAME 
)
Value:
static void FUNCNAME(osgDB::OutputStream& os, int value) { \
        if (os.isBinary()) os << value; \
        else os << (s_user_lookup_table_##NAME)._lookup.getString(value); } \

osg logo
Generated at Mon Oct 3 2011 12:39:39 for the OpenSceneGraph by doxygen 1.7.5.