osgGA::AnimationPathManipulator动画触发时间异常的解决方法
来源:互联网 发布:mysql 建立索引语句 编辑:程序博客网 时间:2024/05/16 09:09
关于osgGA::AnimationPathManipulator的使用,各种教材、帖子中已经介绍的比较详细了,这里只介绍一下如何设置动画操作器的时钟。
实践中发现,对于触发型动画,即程序运行了一段时间后,通过鼠标、键盘事件触发的动画,如果不设置动画操作器的时钟,动画可能出现异常,甚至根本不触发动画。分析认为操作器默认的起始时间是软件的启动时间,如果软件启动后一段时间再触发动画,osg很可能会认为动画是在过去(即软件启动时间)触发的。为了解决此问题,我们需要设置动画操作器的时钟,方法如下:
首先在软件启动时记录当前的时间:
osg::Timer_tl_llStartTime;l_llStartTime = osg::Timer::instance()->tick();
然后在执行动画时获取当前时间,并用两个时间差home操作器:
osg::ref_ptr<osgGA::AnimationPathManipulator> l_oAPM = new osgGA::AnimationPathManipulator;l_oAPM->setTimeScale(1);l_oAPM->setAnimationPath(this->CreatePath(l_ptOldEye, l_ptNewEye, l_stuOldRotation, l_stuNewRotation));osg::Timer_t l_llTime = osg::Timer::instance()->tick();double l_dDuring = osg::Timer::instance()->delta_s(l_llStartTime, l_llTime);l_oAPM->home(l_dDuring);
0 0
- osgGA::AnimationPathManipulator动画触发时间异常的解决方法
- osgGA::AnimationPathManipulator的使用(实现固定路径漫游)
- osgGA的CameraManipulator类
- GC的触发时间
- DBLINK触发的SCN异常
- 触发异常,自定义异常的例子。。
- Ubuntu/Windows双系统导致Windows系统时间异常的解决方法
- 动画触发
- tcp连接失败触发的异常
- jQuery动画的hover连续触发动画bug处理
- jQuery动画的hover连续触发动画bug处理
- jQuery动画的hover连续触发动画bug处理
- FileSystemWatcher事件多次触发的解决方法
- FileSystemWatcher事件多次触发的解决方法
- mouseout触发内层问题的解决方法
- FileSystemWatcher事件多次触发的解决方法
- WM_LBUTTONDBLCLK和WM_LBUTTONDOWN的触发解决方法
- FileSystemWatcher事件多次触发的解决方法
- 在CentOS7 上安装mosquitto1.4.1服务器,实现MQTT信息推送功能并增加websocket功能
- swift 学习记录(协议)
- 浅析:手游智能云更新使用方法
- LOAD DATA INFILE 语法
- Angular 2模板语法
- osgGA::AnimationPathManipulator动画触发时间异常的解决方法
- iOS中Block介绍(二)内存管理与其他特性
- Android中检测邮箱是否是有效邮箱
- java中23种常用设计模式
- Angular 2中的依赖注入
- iOS通知如何传值?
- Android自动化测试(MonkeyRunner)
- 性能测试监控数据 -- liunx服务器性能参数 -sysstat
- MyBatis中#和$的区别