예제 #1
0
    virtual void setPause(SlideEventHandler*, bool pause)
    {
        osg::NodeCallback* nc = dynamic_cast<osg::NodeCallback*>(_callback.get());
        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;
            apc->setPause(pause);
        }
        else if (tc)
        {
            OSG_INFO<<"tc->setPause("<<pause<<")"<<std::endl;
            tc->setPause(pause);
        }
        else if (amc)
        {
            OSG_INFO<<"amc->setPause("<<pause<<")"<<std::endl;
            amc->setPause(pause);
        }
        else if (pa)
        {
            pa->setPause(pause);
        }
        else if (nc)
        {
            OSG_INFO<<"Need to pause callback : "<<nc->className()<<std::endl;
        }

    }
예제 #2
0
 virtual void setPause(bool pause)
 {
     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());
     if (apc)
     {
         OSG_INFO<<"apc->setPause("<<pause<<")"<<std::endl;
         apc->setPause(pause);
     }
     if (tc)
     {
         OSG_INFO<<"tc->setPause("<<pause<<")"<<std::endl;
         tc->setPause(pause);
     }
     if (amc)
     {
         OSG_INFO<<"amc->setPause("<<pause<<")"<<std::endl;
         amc->setPause(pause);
     }
 }