查看: 3275|回复: 2

请问。怎样使用GraphicsWindow来控制摄像机?

[复制链接]

该用户从未签到

发表于 2008-6-24 20:20:25 | 显示全部楼层 |阅读模式
我把OSG自带的一个例子修改了一下。加了一些功能;
我现在想用程序来控制摄像机。但不见效;
我想是因为程序中有像
  1. 。。。
  2. connect(&_timer, SIGNAL(timeout()), this, SLOT(updateGL()));
  3. _timer.start(10);
  4. 。。。
  5. _gw = new osgViewer::GraphicsWindowEmbedded(0,0,width(),height());
  6. 。。。
  7. void AdapterWidget::resizeGL( int width, int height )
  8. {
  9.     _gw->getEventQueue()->windowResize(0, 0, width, height );
  10.     _gw->resized(0,0,width,height);
  11. }
  12. 。。。
  13. void AdapterWidget::mousePressEvent( QMouseEvent* event )
  14. {
  15.     int button = 0;
  16.     switch(event->button())
  17.     {
  18.         case(Qt:eftButton): button = 1; break;
  19.         case(Qt::MidButton): button = 2; break;
  20.         case(Qt::RightButton): button = 3; break;
  21.         case(Qt::NoButton): button = 0; break;
  22.         default: button = 0; break;
  23.     }
  24.     _gw->getEventQueue()->mouseButtonPress(event->x(), event->y(), button);
  25. }
  26. 。。。
复制代码
这样的代码;
我想。在这个例子中。和摄像机有关的操作。都由GraphicsWindow来完成了;
那我能不能用GraphicsWindow提供的接口操纵摄像机呢?
谢谢;

该用户从未签到

发表于 2008-6-24 22:10:57 | 显示全部楼层
GraphicsWindow操作的应该是窗口。
操作摄像机请使用osg::Camera类,例如在回调中使用viewer.getCamera()

该用户从未签到

 楼主| 发表于 2008-6-30 17:11:40 | 显示全部楼层
谢谢您;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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