diff --git a/components/sceneutil/clone.cpp b/components/sceneutil/clone.cpp index 0131adc89..36c5c02a1 100644 --- a/components/sceneutil/clone.cpp +++ b/components/sceneutil/clone.cpp @@ -48,8 +48,7 @@ namespace SceneUtil { if (const osgParticle::ParticleSystem* partsys = dynamic_cast(drawable)) return operator()(partsys); - if (dynamic_cast(drawable) - || dynamic_cast(drawable)) + if (dynamic_cast(drawable)) { osg::CopyOp copyop = *this; copyop.setCopyFlags(copyop.getCopyFlags()|osg::CopyOp::DEEP_COPY_ARRAYS); @@ -58,6 +57,11 @@ namespace SceneUtil cloned->setUpdateCallback(osg::clone(cloned->getUpdateCallback(), *this)); return cloned; } + if (dynamic_cast(drawable)) + { + return osg::clone(drawable, *this); + } + return osg::CopyOp::operator()(drawable); }