#include <osg/ref_ptr>
#include <osg/Notify>
#include <osg/Object>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
#include <string>
#include <sstream>
#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 | ( | 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) )
#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); } \