RigGeometry clone fix

This commit is contained in:
scrawl 2015-05-30 00:59:34 +02:00
parent a56d0e9cc3
commit 6231cd8557

View file

@ -48,8 +48,7 @@ namespace SceneUtil
{ {
if (const osgParticle::ParticleSystem* partsys = dynamic_cast<const osgParticle::ParticleSystem*>(drawable)) if (const osgParticle::ParticleSystem* partsys = dynamic_cast<const osgParticle::ParticleSystem*>(drawable))
return operator()(partsys); return operator()(partsys);
if (dynamic_cast<const SceneUtil::RigGeometry*>(drawable) if (dynamic_cast<const osgAnimation::MorphGeometry*>(drawable))
|| dynamic_cast<const osgAnimation::MorphGeometry*>(drawable))
{ {
osg::CopyOp copyop = *this; osg::CopyOp copyop = *this;
copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_ARRAYS); copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_ARRAYS);
@ -58,6 +57,11 @@ namespace SceneUtil
cloned->setUpdateCallback(osg::clone(cloned->getUpdateCallback(), *this)); cloned->setUpdateCallback(osg::clone(cloned->getUpdateCallback(), *this));
return cloned; return cloned;
} }
if (dynamic_cast<const SceneUtil::RigGeometry*>(drawable))
{
return osg::clone(drawable, *this);
}
return osg::CopyOp::operator()(drawable); return osg::CopyOp::operator()(drawable);
} }