9、osgGA::GUIEventHandler,osgFX::Scribe

一、osgGA::GUIEventHandler类

类说明:处理OSG程序与用户交互的类。非常重要。

1、GUIEventHandler ()

      GUIEventHandler (const GUIEventHandler &eh, const osg::CopyOp &)

说明:构造函数,第二个构造函数为从已知的类EventHandler来构造新的EventHandler,第二个参数是拷贝类型。可以是以下值: SHALLOW_COPY [浅拷贝], DEEP_COPY_OBJECTS[深拷贝]。

2、META_Object (osgGA, GUIEventHandler)

说明:是一个宏,宏中定义了标准Clone,且具有isSameAs,ClassName,accept三个重要方法。目的是让从osgGA派生的子类方便的定义所需要的纯虚方法。

3、virtual void operator() (osg::Node *node, osg::NodeVisitor *nv)

说明:使用callback方式向下遍历Node,node是需要遍历的node,nv是遍历器。

4、virtual void event (osg::NodeVisitor *nv, osg::Drawable *drawable)

说明:事件遍历Drawable,采用callback方式,nv是遍历器,drawable是需要被遍历的drawable。

5、virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *, osg::NodeVisitor *)

说明:还带nodevisitor的handle。事件全靠handle,全都在handle中处理。const GUIEventAdapter&ea用来控制事件类型,GUIActionAdapter用来获得viewer和视口以及上下文,还可以传入一个额外的类object,还可以传入一个Nodevisitor,一般只用前两个参数即可,ea主要用来控制所得到的事件类型,aa用于控制场景viewer以及上下文,窗口等等,object额外类参数传入,NodeVisitor额外的NodeVisitor传入。

6、bool handleWithCheckAgainstIgnoreHandledEventsMask (const GUIEventAdapter &ea, GUIActionAdapter &aa, osg::Object *object, osg::NodeVisitor *nv)

说明:有一个操作叫做ignore可以忽略handle,这样事件就可以不检测了,而这个是专门对付忽略的,它告诉viewer什么时候都要检查它。

参数一:主要用来控制所得到的事件类型。

参数二:用于控制场景viewer以及上下文,窗口等等。

参数三:额外类参数传入

参数四:额外的NodeVisitor传入

7、virtual bool handle (const GUIEventAdapter &, GUIActionAdapter &)

说明:现实中这个才是handle的正宗,是用的最多的handle.

参数一:主要用来控制所得到的事件类型。

参数二:用于控制场景viewer以及上下文,窗口等等。

8、bool handleWithCheckAgainstIgnoreHandledEventsMask (const GUIEventAdapter &ea, GUIActionAdapter &aa)

说明:有一个操作叫做ignore可以忽略handle,这样事件就可以不检测了,而这个是专门对付忽略的,它告诉viewer什么时候都要检查它。

参数一:主要用来控制所得到的事件类型。

参数二:用于控制场景viewer以及上下文,窗口等等。

9、virtual void getUsage (osg::ApplicationUsage &) const

说明:得到应用程序的一些信息,程序名称啊什么的。

10、void setIgnoreHandledEventsMask (unsigned int mask)

说明:是否忽略handle,有一些handle是不能被忽略的。它们是类似于这样的函数,从机制上不可能被忽略:handleWithCheckAgainstIgnoreHandledEventsMask,mask如果设置为0则不忽略,否则忽略。

11、unsigned int getIgnoreHandledEventsMask () const

说明:得到是否设置了忽略handle。如果设置了忽略则返回真,否则返回假。

二、osgFX::Scribe类

类说明:用来修饰模型所用,可以把模型的三角片元全部用高亮显示。

1、Scribe ()

      Scribe (const Scribe &copy, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)

说明:构建函数,第二个重载为从一个已知的Scribe创建新的Scribe。参数二为拷贝类型。默认为浅拷贝。可以为深拷贝DEEP_COPY_OBJECTS。

2、const osg::Vec4 & getWireframeColor () const

说明:得到边框颜色值。得到为一RGBA数组。

3、void setWireframeColor (const osg::Vec4 &color)

说明:设置边框颜色值。参数为一个RGBA数组。

4、float getWireframeLineWidth () const

说明:得到边框线宽度。返回浮点数值。

5、void setWireframeLineWidth (float w)

说明:设置边框线的宽度。

你可能感兴趣的:(9、osgGA::GUIEventHandler,osgFX::Scribe)