From Pjotr Svetachov, "have added some missing serializers for RigGeomery. Withouth them I

ran into two issues.

At first you get a bunch of warnings that osg::ComputeBoundCallback
and osg::UpdateCallback were unsupported wrapper classes when
converting fbx models with skeletal animation to osg(t/b).

The second issue was that when reading, the readers fail to read the
ComputeBoundCallback and UpdateCallback and set them to NULL which
messes up the RigGeometry.

Because a RigGeometry makes his own classes in the constructor it
might be preferable to not write them at all, because now those
classes are being made two times when reading a RigGeometry. But after
thinking about this that would place too much limits on them (you
won't be able to share or name them and save that information or make
a new inherited class from them and write that one) So I ended up
thinking the best way was to just write the files.
"
This commit is contained in:
Robert Osfield
2014-04-29 15:14:39 +00:00
parent b6404d18c3
commit a04232a75a
6 changed files with 149 additions and 66 deletions

View File

@@ -0,0 +1,17 @@
#undef OBJECT_CAST
#define OBJECT_CAST dynamic_cast
#include <osg/Drawable>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER2(osg_ComputeBoundingBoxCallback,
new osg::Drawable::ComputeBoundingBoxCallback,
osg::Drawable::ComputeBoundingBoxCallback,
"osg::ComputeBoundingBoxCallback",
"osg::Object osg::ComputeBoundingBoxCallback") {
}
#undef OBJECT_CAST
#define OBJECT_CAST static_cast

View File

@@ -0,0 +1,16 @@
#undef OBJECT_CAST
#define OBJECT_CAST dynamic_cast
#include <osg/Drawable>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER2(osg_Drawable_UpdateCallback,
new osg::Drawable::UpdateCallback,
osg::Drawable::UpdateCallback,
"osg::UpdateCallback",
"osg::Object osg::UpdateCallback") {}
#undef OBJECT_CAST
#define OBJECT_CAST static_cast

View File

@@ -0,0 +1,16 @@
#undef OBJECT_CAST
#define OBJECT_CAST dynamic_cast
#include <osgAnimation/RigGeometry>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER(osgAnimation_RigComputeBoundingBoxCallback,
new osgAnimation::RigComputeBoundingBoxCallback,
osgAnimation::RigComputeBoundingBoxCallback,
"osg::Object osg::ComputeBoundingBoxCallback osgAnimation::RigComputeBoundingBoxCallback") {
}
#undef OBJECT_CAST
#define OBJECT_CAST static_cast

View File

@@ -0,0 +1,16 @@
#undef OBJECT_CAST
#define OBJECT_CAST dynamic_cast
#include <osgAnimation/RigGeometry>
#include <osgDB/ObjectWrapper>
#include <osgDB/InputStream>
#include <osgDB/OutputStream>
REGISTER_OBJECT_WRAPPER2(osg_Drawable_UpdateCallback,
new osgAnimation::RigGeometry::UpdateVertex,
osgAnimation::RigGeometry::UpdateVertex,
"osgAnimation::UpdateVertex",
"osg::Object osg::UpdateCallback osgAnimation::UpdateVertex") {}
#undef OBJECT_CAST
#define OBJECT_CAST static_cast