Serializer File Reference

#include <osg/ref_ptr>
#include <osg/Notify>
#include <osg/Object>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
#include <string>
#include <sstream>

Namespaces

namespace  osgDB

Classes

class  osgDB::IntLookup
class  osgDB::UserLookupTableProxy
class  osgDB::BaseSerializer
class  osgDB::UserSerializer< C >
class  osgDB::TemplateSerializer< P >
class  osgDB::PropByValSerializer< C, P >
class  osgDB::PropByRefSerializer< C, P >
class  osgDB::MatrixSerializer< C >
class  osgDB::GLenumSerializer< C, P >
class  osgDB::StringSerializer< C >
class  osgDB::ObjectSerializer< C, P >
class  osgDB::ImageSerializer< C, P >
class  osgDB::EnumSerializer< C, P, B >
class  osgDB::ListSerializer< C, P >

Defines

#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_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_HEXINT_SERIALIZER(PROP, DEF)
#define ADD_FLOAT_SERIALIZER(PROP, DEF)
#define ADD_DOUBLE_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 ADD_ENUM_VALUE(VALUE)   serializer->add(#VALUE, MyClass::VALUE)
#define END_ENUM_SERIALIZER()   wrapper->addSerializer(serializer.get()); }

Define Documentation

#define ADD_BOOL_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, bool>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_DOUBLE_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, double>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

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

#define ADD_GLENUM_SERIALIZER ( PROP,
TYPE,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::GLenumSerializer<MyClass, TYPE>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_HEXINT_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, unsigned int>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true) )

#define ADD_HEXSHORT_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, unsigned short>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP, true) )

#define ADD_IMAGE_SERIALIZER ( PROP,
TYPE,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::ImageSerializer<MyClass, TYPE>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_INT_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, int>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_LIST_SERIALIZER ( PROP,
TYPE   ) 

Value:

wrapper->addSerializer( new osgDB::ListSerializer<MyClass, TYPE>( \
        #PROP, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_MATRIX_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::MatrixSerializer<MyClass>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_MATRIXD_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Matrixd>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_MATRIXF_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Matrixf>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_OBJECT_SERIALIZER ( PROP,
TYPE,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::ObjectSerializer<MyClass, TYPE>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_PLANE_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Plane>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_QUAT_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Quat>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_SERIALIZER (  )     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) )

#define ADD_STRING_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::StringSerializer<MyClass>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_UINT_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByValSerializer<MyClass, unsigned int>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#define ADD_USER_SERIALIZER ( PROP   ) 

Value:

wrapper->addSerializer( new osgDB::UserSerializer<MyClass>( \
        #PROP, &check##PROP, &read##PROP, &write##PROP) )

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

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

#define ADD_VEC3F_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Vec3f>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

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

#define ADD_VEC4F_SERIALIZER ( PROP,
DEF   ) 

Value:

wrapper->addSerializer( new osgDB::PropByRefSerializer<MyClass, osg::Vec4f>( \
        #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP) )

#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_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()); }

 
#define END_USER_TABLE (  )     }

#define OBJECT_CAST   static_cast

#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); } \


Generated on Sat Mar 20 12:33:55 2010 for openscenegraph by  doxygen 1.5.6