osgGA::GUIEventAdapter是GUI事件适配器,他继承于osg::Object
首先,定义了各种GUI事件枚举

在其中,还定义了类TouchData,其中定义的结构体TouchPoint用来存储接触点坐标,后typedef std::vector<TouchPoint> TouchSet;TouchSet  _touches;容器存储所有接触点。   friend class GUIEventAdapter;使GUIEventAdapter可随意访问其属性、方法。

方法:

//基本所有的事件队列将共享一个GUIEventAdapter对象跟踪鼠标的位置,键盘和鼠标操作

static osg::ref_ptr<GUIEventAdapter>& getAccumulatedEventState();

//获取x坐标(OSG平面坐标系为窗口左下角(0,0)点,x轴水平向右,y轴竖直向上)

 float getX() const { return _mx; }

//把但前鼠标点击x映射到-1到1之间          

inline float getXnormalized() const { return 2.0f*(getX()-getXmin())/(getXmax()-getXmin())-1.0f; }

...

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐