查看: 1754|回复: 3

实时获取模型姿态

[复制链接]

该用户从未签到

发表于 2011-1-7 19:36:53 | 显示全部楼层 |阅读模式
我之前发了个帖子可能问题 问的不太明确 我把代码整理了出来
我用osg::HeightField做了个地形模型,当我用鼠标旋转这个模型时要实时获取旋转过程中的地形模型姿态 代码如下
double angle=0.0;//全局变量
osg::Vec3 axis; //全局变量
bool handle(const osgGA::GUIEventAdapter& ea,  osgGA::GUIActionAdapter& aa) {
  osg::ref_ptr < osgViewer::Viewer > viewer  =
dynamic_cast<osgViewer::Viewer*> (&aa);
  osg::ref_ptr < osg:ositionAttitudeTransform > mt
    = dynamic_cast<osg::PositionAttitudeTransform*> (viewer->getSceneData());
if (ea.getEventType() == osgGA::GUIEventAdapter::PUSH) {
   if (ea.getButton() == 1) {
    mt->getAttitude().getRotate(angle,axis);
     cout<<angle<<endl;
   }
  }
主函数:
osg::ref_ptr <osg::PositionAttitudeTransform> position_heightmap = new osg::PositionAttitudeTransform();
        position_heightmap->addChild(node.get());
        position_heightmap->setEventCallback(new GetpositionCallback());
viewer->setSceneData(position_heightmap.get());
viewer_run();
按鼠标左键输出angle始终是0 无法做到用鼠标旋转模型实时获取模型的姿态 改怎么解决这个问题

该用户从未签到

发表于 2011-1-7 20:33:36 | 显示全部楼层
这么多头像,看的眼花。。。

该用户从未签到

 楼主| 发表于 2011-1-7 21:09:37 | 显示全部楼层
就是字母P 粘到上面就这样了 其实我是想实现一个罗盘 通过实时获取模型姿态 将旋转到角度给罗盘

该用户从未签到

发表于 2011-1-10 08:44:28 | 显示全部楼层
当我用鼠标旋转这个模型时
您是如何实现这一步的,请说明
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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