一、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 ©, const osg::CopyOp ©op=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)
说明:设置边框线的宽度。