From 25bc487763265af835a692ccee763aa7193d1c5c Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 22 Apr 2010 13:07:49 +0000 Subject: [PATCH] From John Ivar Haugland, "I have added the serializer for UserData in osg::Object. See the attached modified file: src\osgWrappers\serializers\osg\Object.cpp" --- src/osgWrappers/serializers/osg/Object.cpp | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/osgWrappers/serializers/osg/Object.cpp b/src/osgWrappers/serializers/osg/Object.cpp index 3af02866f..273222922 100644 --- a/src/osgWrappers/serializers/osg/Object.cpp +++ b/src/osgWrappers/serializers/osg/Object.cpp @@ -3,6 +3,29 @@ #include #include +static bool checkUserData( const osg::Object& obj ) +{ + return (obj.getUserData() && dynamic_cast(obj.getUserData())); +} + +static bool readUserData( osgDB::InputStream& is, osg::Object& obj ) +{ + is >> osgDB::BEGIN_BRACKET; + osg::Object* object = is.readObject(); + if(object) obj.setUserData(object); + is >> osgDB::END_BRACKET; + return true; +} + +static bool writeUserData( osgDB::OutputStream& os, const osg::Object& obj ) +{ + os << osgDB::BEGIN_BRACKET << std::endl; + os.writeObject(dynamic_cast(obj.getUserData())); + os << osgDB::END_BRACKET << std::endl; + return true; +} + + REGISTER_OBJECT_WRAPPER( Object, /*new osg::Object*/NULL, osg::Object, @@ -15,4 +38,6 @@ REGISTER_OBJECT_WRAPPER( Object, ADD_ENUM_VALUE( DYNAMIC ); ADD_ENUM_VALUE( UNSPECIFIED ); END_ENUM_SERIALIZER(); // _dataVariance + + ADD_USER_SERIALIZER( UserData ); // _userData }