Added support for pausing and restart the property_animation.

This commit is contained in:
Robert Osfield
2012-11-30 15:43:31 +00:00
parent 236e75b2be
commit 6eb3b2f091
3 changed files with 21 additions and 6 deletions

View File

@@ -249,6 +249,7 @@ struct CallbackOperator : public ObjectOperator
osg::AnimationPathCallback* apc = dynamic_cast<osg::AnimationPathCallback*>(_callback.get());
osgUtil::TransformCallback* tc = dynamic_cast<osgUtil::TransformCallback*>(_callback.get());
AnimationMaterialCallback* amc = dynamic_cast<AnimationMaterialCallback*>(_callback.get());
PropertyAnimation* pa = dynamic_cast<PropertyAnimation*>(_callback.get());
if (apc)
{
OSG_INFO<<"apc->setPause("<<pause<<")"<<std::endl;
@@ -264,6 +265,10 @@ struct CallbackOperator : public ObjectOperator
OSG_INFO<<"amc->setPause("<<pause<<")"<<std::endl;
amc->setPause(pause);
}
else if (pa)
{
pa->setPause(pause);
}
else if (nc)
{
OSG_NOTICE<<"Need to pause callback : "<<nc->className()<<std::endl;
@@ -277,6 +282,7 @@ struct CallbackOperator : public ObjectOperator
osg::AnimationPathCallback* apc = dynamic_cast<osg::AnimationPathCallback*>(_callback.get());
osgUtil::TransformCallback* tc = dynamic_cast<osgUtil::TransformCallback*>(_callback.get());
AnimationMaterialCallback* amc = dynamic_cast<AnimationMaterialCallback*>(_callback.get());
PropertyAnimation* pa = dynamic_cast<PropertyAnimation*>(_callback.get());
if (apc)
{
apc->reset();
@@ -290,6 +296,11 @@ struct CallbackOperator : public ObjectOperator
amc->reset();
amc->update(*_node);
}
else if (pa)
{
pa->reset();
pa->update(*_node);
}
else
{
OSG_NOTICE<<"Need to reset callback : "<<nc->className()<<std::endl;