查看: 1796|回复: 5

操作器相机位置

[复制链接]

该用户从未签到

发表于 2010-10-13 20:08:50 | 显示全部楼层 |阅读模式
我想问一下:怎么时时获得操作器中相机的位置,并把他的值传到main函数中?我用肖鹏 刘更代 徐明亮编著的《OpenSceneGraph三维渲染引擎编程指南》中第266页中的操作器,然后在main函数中写
TravelManipulator* aa=new TravelManipulator;
osg::Vec3f  pos;  
pos=aa->GetPosition();
osg::ref_ptr<osg:ositionAttitudeTransform>pat=new osg::PositionAttitudeTransform();
pat->addChild(node.get());
pat->setPosition(pos);
root->addChild(pat.get());
………………
结果节点node只能获得操作器相机的初始位置,不能时时随着相机的移动而移动。希望高手指点

该用户从未签到

发表于 2010-10-13 21:55:28 | 显示全部楼层
使用事件处理器  在处理帧事件的时候首先获取相机矩阵  根据相机矩阵获取相机位置

该用户从未签到

 楼主| 发表于 2010-10-13 22:22:29 | 显示全部楼层
谢谢!
while(!viewer->done())
{       
     pat->setPosition(travelm->pos);
    viewer->frame();
}我在上面代码中最后添加了while循环,为什么不能时时更新位置pos,难道这种方法不行?
高手,获取的相机矩阵是不是操作器里面的矩阵,如果不是怎么写?

该用户从未签到

发表于 2010-10-14 08:25:38 | 显示全部楼层
我不能从您的代码中看出您要做什么

该用户从未签到

发表于 2010-10-14 14:06:57 | 显示全部楼层
海军教程上面有个类型的例子

该用户从未签到

 楼主| 发表于 2010-10-16 08:01:32 | 显示全部楼层
谢谢了,我在海军教程里找到灵感啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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