openscenegraph
Classes | Namespaces | Macros | Typedefs | Functions
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>

Go to the source code of this file.

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 >
 
class  osgDB::VectorBaseSerializer
 
class  osgDB::VectorSerializer< C, P >
 
class  osgDB::IsAVectorSerializer< C >
 
class  osgDB::MapIteratorObject
 
class  osgDB::MapBaseSerializer
 
class  osgDB::MapSerializer< C, P >
 
struct  osgDB::MapSerializer< C, P >::MapIterator
 
struct  osgDB::MapSerializer< C, P >::ReverseMapIterator
 
class  osgDB::BitFlagsSerializer< C, P >
 

Namespaces

namespace  osgDB
 

Macros

#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_INT_SERIALIZER_NO_SET(PROP, DEF)
 
#define ADD_UINT_SERIALIZER(PROP, DEF)
 
#define ADD_UINT_SERIALIZER_NO_SET(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_VEC2B_SERIALIZER(PROP, DEF)
 
#define ADD_VEC2UB_SERIALIZER(PROP, DEF)
 
#define ADD_VEC2S_SERIALIZER(PROP, DEF)
 
#define ADD_VEC2US_SERIALIZER(PROP, DEF)
 
#define ADD_VEC2I_SERIALIZER(PROP, DEF)
 
#define ADD_VEC2UI_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_VEC3B_SERIALIZER(PROP, DEF)
 
#define ADD_VEC3UB_SERIALIZER(PROP, DEF)
 
#define ADD_VEC3S_SERIALIZER(PROP, DEF)
 
#define ADD_VEC3US_SERIALIZER(PROP, DEF)
 
#define ADD_VEC3I_SERIALIZER(PROP, DEF)
 
#define ADD_VEC3UI_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_VEC4B_SERIALIZER(PROP, DEF)
 
#define ADD_VEC4UB_SERIALIZER(PROP, DEF)
 
#define ADD_VEC4S_SERIALIZER(PROP, DEF)
 
#define ADD_VEC4US_SERIALIZER(PROP, DEF)
 
#define ADD_VEC4I_SERIALIZER(PROP, DEF)
 
#define ADD_VEC4UI_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_BOUNDINGBOXF_SERIALIZER(PROP, DEF)
 
#define ADD_BOUNDINGBOXD_SERIALIZER(PROP, DEF)
 
#define ADD_BOUNDINGSPHEREF_SERIALIZER(PROP, DEF)
 
#define ADD_BOUNDINGSPHERED_SERIALIZER(PROP, DEF)
 
#define ADD_GLENUM_SERIALIZER(PROP, TYPE, DEF)
 
#define ADD_GLENUM_SERIALIZER_NO_SET(PROP, TYPE, DEF)
 
#define ADD_STRING_SERIALIZER(PROP, DEF)
 
#define ADD_OBJECT_SERIALIZER(PROP, TYPE, DEF)
 
#define ADD_OBJECT_SERIALIZER_NO_SET(PROP, TYPE, DEF)
 
#define ADD_IMAGE_SERIALIZER(PROP, TYPE, DEF)
 
#define ADD_LIST_SERIALIZER(PROP, TYPE)
 
#define ADD_VECTOR_SERIALIZER(PROP, TYPE, ELEMENTTYPE, NUMELEMENTSONROW)
 
#define ADD_ISAVECTOR_SERIALIZER(PROP, ELEMENTTYPE, NUMELEMENTSONROW)    wrapper->addSerializer( new osgDB::IsAVectorSerializer< MyClass >( #PROP, ELEMENTTYPE, NUMELEMENTSONROW), osgDB::BaseSerializer::RW_VECTOR )
 
#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 BEGIN_ENUM_SERIALIZER_NO_SET(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 BEGIN_BITFLAGS_SERIALIZER(PROP, DEF)
 
#define BEGIN_UINT_BITFLAGS_SERIALIZER(PROP, DEF)
 
#define BEGIN_INT_BITFLAGS_SERIALIZER(PROP, DEF)
 
#define ADD_BITFLAG_VALUE(VALUE_NAME, VALUE)    serializer->add(#VALUE_NAME, VALUE)
 
#define END_BITFLAGS_SERIALIZER()    wrapper->addSerializer(serializer.get(), osgDB::BaseSerializer::RW_INT); }
 
#define UPDATE_TO_VERSION(VER)    wrapper->setUpdatedVersion( (VER) );
 
#define UPDATE_TO_VERSION_SCOPED(VER)    osgDB::UpdateWrapperVersionProxy uwvp(wrapper, (VER));
 
#define ADDED_ASSOCIATE(STR)    wrapper->markAssociateAsAdded( STR );
 
#define REMOVED_ASSOCIATE(STR)    wrapper->markAssociateAsRemoved( STR );
 
#define REMOVE_SERIALIZER(PROP)    wrapper->markSerializerAsRemoved( #PROP );
 
#define ADD_MAP_SERIALIZER(PROP, TYPE, KEYTYPE, ELEMENTTYPE)
 
#define ADD_METHOD_OBJECT(METHODNAME, METHODOBJECTCLASS)   wrapper->addMethodObject(METHODNAME, new METHODOBJECTCLASS());
 
#define ADD_METHOD(METHODNAME)
 
#define SET_USAGE(VALUE)   wrapper->getLastSerializer()->setUsage(VALUE)
 

Typedefs

typedef std::vector< std::string > osgDB::StringList
 

Functions

OSGDB_EXPORT void osgDB::split (const std::string &src, StringList &list, char separator=' ')
 

Macro Definition Documentation

◆ ADD_BITFLAG_VALUE

#define ADD_BITFLAG_VALUE (   VALUE_NAME,
  VALUE 
)     serializer->add(#VALUE_NAME, VALUE)

◆ ADD_BOOL_SERIALIZER

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

◆ ADD_BOUNDINGBOXD_SERIALIZER

#define ADD_BOUNDINGBOXD_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::BoundingBoxd >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOUNDINGBOXD )

◆ ADD_BOUNDINGBOXF_SERIALIZER

#define ADD_BOUNDINGBOXF_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::BoundingBoxf >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOUNDINGBOXF )

◆ ADD_BOUNDINGSPHERED_SERIALIZER

#define ADD_BOUNDINGSPHERED_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::BoundingSphered >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOUNDINGSPHERED )

◆ ADD_BOUNDINGSPHEREF_SERIALIZER

#define ADD_BOUNDINGSPHEREF_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::BoundingSpheref >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_BOUNDINGSPHEREF )

◆ ADD_CHAR_SERIALIZER

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

◆ ADD_DOUBLE_SERIALIZER

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

◆ ADD_ENUM_CLASS_VALUE

#define ADD_ENUM_CLASS_VALUE (   CLASS,
  VALUE 
)     serializer->add(#VALUE, CLASS::VALUE)

◆ ADD_ENUM_VALUE

#define ADD_ENUM_VALUE (   VALUE)     serializer->add(#VALUE, MyClass::VALUE)

◆ ADD_FLOAT_SERIALIZER

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

◆ ADD_GLENUM_SERIALIZER

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

◆ ADD_GLENUM_SERIALIZER_NO_SET

#define ADD_GLENUM_SERIALIZER_NO_SET (   PROP,
  TYPE,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::GLenumSerializer< MyClass, TYPE >( \
#PROP, DEF, &MyClass::get##PROP, 0), osgDB::BaseSerializer::RW_GLENUM )

◆ ADD_GLINT_SERIALIZER

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

◆ ADD_HEXINT_SERIALIZER

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

◆ ADD_HEXSHORT_SERIALIZER

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

◆ ADD_IMAGE_SERIALIZER

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

◆ ADD_INT_SERIALIZER

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

◆ ADD_INT_SERIALIZER_NO_SET

#define ADD_INT_SERIALIZER_NO_SET (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, int >( \
#PROP, DEF, &MyClass::get##PROP, 0), osgDB::BaseSerializer::RW_INT )

◆ ADD_ISAVECTOR_SERIALIZER

#define ADD_ISAVECTOR_SERIALIZER (   PROP,
  ELEMENTTYPE,
  NUMELEMENTSONROW 
)     wrapper->addSerializer( new osgDB::IsAVectorSerializer< MyClass >( #PROP, ELEMENTTYPE, NUMELEMENTSONROW), osgDB::BaseSerializer::RW_VECTOR )

◆ ADD_LIST_SERIALIZER

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

◆ ADD_MAP_SERIALIZER

#define ADD_MAP_SERIALIZER (   PROP,
  TYPE,
  KEYTYPE,
  ELEMENTTYPE 
)
Value:
wrapper->addSerializer( new osgDB::MapSerializer< MyClass, TYPE >( \
#PROP, &MyClass::get##PROP, &MyClass::get##PROP, &MyClass::set##PROP, KEYTYPE, ELEMENTTYPE), osgDB::BaseSerializer::RW_MAP )

◆ ADD_MATRIX_SERIALIZER

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

◆ ADD_MATRIXD_SERIALIZER

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

◆ ADD_MATRIXF_SERIALIZER

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

◆ ADD_METHOD

#define ADD_METHOD (   METHODNAME)
Value:
{ \
struct MethodCaller : public osgDB::MethodObject \
{ \
virtual bool run(void* objectPtr, osg::Parameters&, osg::Parameters&) const \
{ \
MyClass* obj = reinterpret_cast<MyClass*>(objectPtr); \
obj->METHODNAME(); \
return true; \
} \
}; \
wrapper->addMethodObject(#METHODNAME, new MethodCaller()); \
}

◆ ADD_METHOD_OBJECT

#define ADD_METHOD_OBJECT (   METHODNAME,
  METHODOBJECTCLASS 
)    wrapper->addMethodObject(METHODNAME, new METHODOBJECTCLASS());

◆ ADD_OBJECT_SERIALIZER

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

◆ ADD_OBJECT_SERIALIZER_NO_SET

#define ADD_OBJECT_SERIALIZER_NO_SET (   PROP,
  TYPE,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::ObjectSerializer< MyClass, TYPE >( \
#PROP, DEF, &MyClass::get##PROP, 0), osgDB::BaseSerializer::RW_OBJECT )

◆ ADD_PLANE_SERIALIZER

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

◆ ADD_QUAT_SERIALIZER

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

◆ ADD_REF_BOOL_SERIALIZER

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

◆ ADD_REF_CHAR_SERIALIZER

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

◆ ADD_REF_DOUBLE_SERIALIZER

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

◆ ADD_REF_FLOAT_SERIALIZER

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

◆ ADD_REF_GLINT_SERIALIZER

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

◆ ADD_REF_HEXINT_SERIALIZER

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

◆ ADD_REF_HEXSHORT_SERIALIZER

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

◆ ADD_REF_INT_SERIALIZER

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

◆ ADD_REF_SHORT_SERIALIZER

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

◆ ADD_REF_UCHAR_SERIALIZER

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

◆ ADD_REF_UINT_SERIALIZER

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

◆ ADD_REF_USHORT_SERIALIZER

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

◆ ADD_SERIALIZER

#define ADD_SERIALIZER (   S)     wrapper->addSerializer( (S) )

◆ ADD_SHORT_SERIALIZER

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

◆ ADD_STRING_SERIALIZER

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

◆ ADD_UCHAR_SERIALIZER

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

◆ ADD_UINT_SERIALIZER

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

◆ ADD_UINT_SERIALIZER_NO_SET

#define ADD_UINT_SERIALIZER_NO_SET (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByValSerializer< MyClass, unsigned int >( \
#PROP, DEF, &MyClass::get##PROP, 0), osgDB::BaseSerializer::RW_UINT )

◆ ADD_USER_SERIALIZER

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

◆ ADD_USER_VALUE

#define ADD_USER_VALUE (   VALUE)    lookup->add(#VALUE, MyClass::VALUE)

◆ ADD_USHORT_SERIALIZER

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

◆ ADD_VEC2_SERIALIZER

#define ADD_VEC2_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC2F_SERIALIZER(PROP, DEF)

◆ ADD_VEC2B_SERIALIZER

#define ADD_VEC2B_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2b >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2B )

◆ ADD_VEC2D_SERIALIZER

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

◆ ADD_VEC2F_SERIALIZER

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

◆ ADD_VEC2I_SERIALIZER

#define ADD_VEC2I_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2i >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2I )

◆ ADD_VEC2S_SERIALIZER

#define ADD_VEC2S_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2s >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2S )

◆ ADD_VEC2UB_SERIALIZER

#define ADD_VEC2UB_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2ub >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2UB )

◆ ADD_VEC2UI_SERIALIZER

#define ADD_VEC2UI_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2ui >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2UI )

◆ ADD_VEC2US_SERIALIZER

#define ADD_VEC2US_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec2us >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC2US )

◆ ADD_VEC3_SERIALIZER

#define ADD_VEC3_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC3F_SERIALIZER(PROP, DEF)

◆ ADD_VEC3B_SERIALIZER

#define ADD_VEC3B_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3b >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3B )

◆ ADD_VEC3D_SERIALIZER

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

◆ ADD_VEC3F_SERIALIZER

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

◆ ADD_VEC3I_SERIALIZER

#define ADD_VEC3I_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3i >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3I )

◆ ADD_VEC3S_SERIALIZER

#define ADD_VEC3S_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3s >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3S )

◆ ADD_VEC3UB_SERIALIZER

#define ADD_VEC3UB_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3ub >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3UB )

◆ ADD_VEC3UI_SERIALIZER

#define ADD_VEC3UI_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3ui >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3UI )

◆ ADD_VEC3US_SERIALIZER

#define ADD_VEC3US_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec3us >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC3US )

◆ ADD_VEC4_SERIALIZER

#define ADD_VEC4_SERIALIZER (   PROP,
  DEF 
)    ADD_VEC4F_SERIALIZER(PROP, DEF)

◆ ADD_VEC4B_SERIALIZER

#define ADD_VEC4B_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4b >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4B )

◆ ADD_VEC4D_SERIALIZER

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

◆ ADD_VEC4F_SERIALIZER

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

◆ ADD_VEC4I_SERIALIZER

#define ADD_VEC4I_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4i >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4I )

◆ ADD_VEC4S_SERIALIZER

#define ADD_VEC4S_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4s >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4S )

◆ ADD_VEC4UB_SERIALIZER

#define ADD_VEC4UB_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4ub >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4UB )

◆ ADD_VEC4UI_SERIALIZER

#define ADD_VEC4UI_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4ui >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4UI )

◆ ADD_VEC4US_SERIALIZER

#define ADD_VEC4US_SERIALIZER (   PROP,
  DEF 
)
Value:
wrapper->addSerializer( new osgDB::PropByRefSerializer< MyClass, osg::Vec4us >( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_VEC4US )

◆ ADD_VECTOR_SERIALIZER

#define ADD_VECTOR_SERIALIZER (   PROP,
  TYPE,
  ELEMENTTYPE,
  NUMELEMENTSONROW 
)
Value:
wrapper->addSerializer( new osgDB::VectorSerializer< MyClass, TYPE >( \
#PROP, &MyClass::get##PROP, &MyClass::get##PROP, &MyClass::set##PROP, ELEMENTTYPE, NUMELEMENTSONROW), osgDB::BaseSerializer::RW_VECTOR )

◆ ADDED_ASSOCIATE

#define ADDED_ASSOCIATE (   STR)     wrapper->markAssociateAsAdded( STR );

◆ BEGIN_BITFLAGS_SERIALIZER

#define BEGIN_BITFLAGS_SERIALIZER (   PROP,
  DEF 
)
Value:
{ typedef osgDB::BitFlagsSerializer<MyClass> MySerializer; \
osg::ref_ptr<MySerializer> serializer = new MySerializer( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP)

defaults to uint bitfield type.

◆ BEGIN_ENUM_SERIALIZER

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

◆ BEGIN_ENUM_SERIALIZER2

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

◆ BEGIN_ENUM_SERIALIZER3

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

◆ BEGIN_ENUM_SERIALIZER4

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

◆ BEGIN_ENUM_SERIALIZER_NO_SET

#define BEGIN_ENUM_SERIALIZER_NO_SET (   PROP,
  DEF 
)
Value:
{ typedef osgDB::EnumSerializer<MyClass, MyClass::PROP, void> MySerializer; \
osg::ref_ptr<MySerializer> serializer = new MySerializer( \
#PROP, MyClass::DEF, &MyClass::get##PROP, 0)

◆ BEGIN_INT_BITFLAGS_SERIALIZER

#define BEGIN_INT_BITFLAGS_SERIALIZER (   PROP,
  DEF 
)
Value:
{ typedef osgDB::BitFlagsSerializer<MyClass, int> MySerializer; \
osg::ref_ptr<MySerializer> serializer = new MySerializer( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP)

◆ BEGIN_UINT_BITFLAGS_SERIALIZER

#define BEGIN_UINT_BITFLAGS_SERIALIZER (   PROP,
  DEF 
)
Value:
{ typedef osgDB::BitFlagsSerializer<MyClass, unsigned int> MySerializer; \
osg::ref_ptr<MySerializer> serializer = new MySerializer( \
#PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP)

◆ BEGIN_USER_TABLE

#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

◆ END_BITFLAGS_SERIALIZER

#define END_BITFLAGS_SERIALIZER ( )     wrapper->addSerializer(serializer.get(), osgDB::BaseSerializer::RW_INT); }

◆ END_ENUM_SERIALIZER

#define END_ENUM_SERIALIZER ( )     wrapper->addSerializer(serializer.get(), osgDB::BaseSerializer::RW_ENUM); }

◆ END_USER_TABLE

#define END_USER_TABLE ( )    }

◆ OBJECT_CAST

#define OBJECT_CAST   static_cast

◆ OSGDB__SERIALIZER

#define OSGDB__SERIALIZER

◆ REMOVE_SERIALIZER

#define REMOVE_SERIALIZER (   PROP)     wrapper->markSerializerAsRemoved( #PROP );

◆ REMOVED_ASSOCIATE

#define REMOVED_ASSOCIATE (   STR)     wrapper->markAssociateAsRemoved( STR );

◆ SET_USAGE

#define SET_USAGE (   VALUE)    wrapper->getLastSerializer()->setUsage(VALUE)

◆ UPDATE_TO_VERSION

#define UPDATE_TO_VERSION (   VER)     wrapper->setUpdatedVersion( (VER) );

◆ UPDATE_TO_VERSION_SCOPED

#define UPDATE_TO_VERSION_SCOPED (   VER)     osgDB::UpdateWrapperVersionProxy uwvp(wrapper, (VER));

◆ USER_READ_FUNC

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

◆ USER_WRITE_FUNC

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