OpenSceneGraph
3.0.1
|
#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 ADD_BOOL_SERIALIZER | ( | PROP, | |
DEF | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
wrapper->addSerializer( new osgDB::ListSerializer< MyClass, TYPE >( \ #PROP, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_LIST )
#define ADD_MATRIX_SERIALIZER | ( | PROP, | |
DEF | |||
) |
wrapper->addSerializer( new osgDB::MatrixSerializer< MyClass >( \ #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_MATRIX )
#define ADD_MATRIXD_SERIALIZER | ( | PROP, | |
DEF | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
wrapper->addSerializer( new osgDB::StringSerializer< MyClass >( \ #PROP, DEF, &MyClass::get##PROP, &MyClass::set##PROP), osgDB::BaseSerializer::RW_STRING )
#define ADD_UCHAR_SERIALIZER | ( | PROP, | |
DEF | |||
) |
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 | |||
) |
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 | ) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
{ 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 | |||
) |
{ 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 | |||
) |
{ 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 | |||
) |
{ 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 | |||
) |
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 | |||
) |
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 | |||
) |
static void FUNCNAME(osgDB::OutputStream& os, int value) { \ if (os.isBinary()) os << value; \ else os << (s_user_lookup_table_##NAME)._lookup.getString(value); } \
![]() | Generated at Mon Oct 3 2011 12:39:39 for the OpenSceneGraph by doxygen 1.7.5. |