查看: 1167|回复: 3

视点切换

[复制链接]

该用户从未签到

发表于 2013-7-22 12:05:58 | 显示全部楼层 |阅读模式
  1. viewer->setSceneData(gp);                                    //把根节点加入场景中
  2.        
  3.         viewer->realize();
  4.        
  5.         while(!viewer->done())
  6.         {
  7.                
  8.                 viewer->getCamera()->setViewMatrixAsLookAt(osg::Vec3f(0,-40,0),osg::Vec3f(0,0,0),osg::Vec3f(0,0,1));
  9.                 viewer->frame();
  10.         }
  11.         return 0 ;
复制代码
我想按下键盘上的"1"、“2”、“3”将同一个场景切换到不同视点(该场景添加了点选物体某个部位触发事件class CPickHandler:public osgGA::GUIEventHandler,由于场景较大,为方便进行这些部位的点击,需要通过键盘触发,快速到达便于观察该部位的视点,然后点选该部位触发事件,免去鼠标缩放,拖拽物体到达指定位置的漫长过程)
现遇到困难如下:
如上加入该设置视点位置代码后,初始视点是改变了,可是鼠标不能对场景进行拖拽平移等操作了,这是什么原因,该如何解决?(如果用viewer->run()就又可以用鼠标拖拽并点选场景触发响应事件了),请各位前辈能给予解答,已经纠结好久了,晚辈不胜感激啊!谢谢各位了

该用户从未签到

发表于 2013-7-22 13:23:45 | 显示全部楼层
拖拽平移是针对视点吗?还是对某个物体的操作?

该用户从未签到

发表于 2013-7-22 14:06:44 | 显示全部楼层
回复二楼:操作器是针对视点的,拖拽器是针对物体的
回复楼主:你这样是不行的,确实无法进行拖拽操作了,可以使用摄影机操作器的setByInverseMAtrix(ViewMatrix)来实现你的需求

该用户从未签到

 楼主| 发表于 2013-7-22 17:18:39 | 显示全部楼层
fenma3422 发表于 2013-7-22 14:06
回复二楼:操作器是针对视点的,拖拽器是针对物体的
回复楼主:你这样是不行的,确实无法进行拖拽操作了,可 ...

好的,太谢谢了,已经实现该功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表