OSG 交互

开源共享原则

        此文章参考至OSG程序设计-杨石兴。转载请附带出处

一 基础操作

在这里首先介绍一下交互的原理。我们在平时操作的主要是场景的数据,而场景中的数据主要类 viewer 负
责进行渲染。要得到数据可以使用 viewer ->getSceneData()就可以了。当然也可以把数据指针设置成全局的。
交互主要是针对鼠标与键盘的响应来对应数据的改变。 
 
viewer 的主要的功能是控制场景,它是场景的核心类,如果能响应键盘时得到 viewer,那么也可以从键盘
的响应中控制整个场景。 
 
viewer 中有一个方法,名为 addEventHandler 就是专门做这件事情的。他会加入一个事件处理器。于是我们
就想,一定要自己写一个事件处理器才行,这就必须要了解事件处理器的格式,只要有一个接口就可以了
解它的格式,这个接口就是:osgGA::GUIEventHandler,于是我们可以写一个类 A 从该类公有派生出来,即:
class A:public osgGA::GUIEventHandler, 在里面处理好各种操作然后加入到 viewer 当中,即:

viewer.addEventHadler(new A(里面可以有参数)) ;这样就可以完成操作