一、osg::Geode类
类说明:Geode结点,是个几何结点,可以说是一个几何Group结点,一般的可绘制几何体都是通过它来传向root进行渲染。是OSG几何绘制的最高管理结点。
1、Geode ()
Geode (const Geode &, const CopyOp ©op=CopyOp::SHALLOW_COPY)
说明:构造函数,第二个构造函数意思为从一个已知的Geode结点构造一个新的Geode结点。第二个参数copyop代表拷贝类型,默认是浅拷贝,也可以是深拷贝,深拷贝:DEEP_COPY_OBJECTS
2、META_Node (osg, Switch)
说明:是一个宏,宏中定义了标准Clone,且具有isSameAs,ClassName,accept三个重要方法。目的是让从Node派生的子类方便的定义所需要的纯虚方法。
3、virtual bool addDrawable (Drawable *drawable)
说明:添加一个绘制结点。该结点中往往会有一些绘制的具体的内容。如果添加成功则返回真,否则返回假。
4、virtual bool removeDrawable (Drawable *drawable)
说明:删除一个可绘制结点,参数为可绘制结点的指针。如果删除成功则返回真,否则返回假。
5、virtual bool removeDrawables (unsigned int i, unsigned int numDrawablesToRemove=1)
说明:从第i个结点开始,移除numDrawablesToR个结点,默认为移除一个结点,当该结点不存在时返回假,成功移除时返回真。
6、virtual bool replaceDrawable (Drawable *origDraw, Drawable *newDraw)
说明:使用一个新的Drawable代替旧的Drawable。代替成功则返回真,否则返回假。源Drawable.即:需要被替换掉的Drawable.新的Drawable即:新的Drawable来替掉旧的那个。
7、virtual bool setDrawable (unsigned int i, Drawable *drawable)
说明:设置第i个位置为参数中的drawable。设置成功返回真,否则返回假。
8、unsigned int getNumDrawables () const
说明:得到该组结点中所有Drawables的数目。返回该数目。
9、Drawable * getDrawable (unsigned int i)
const Drawable * getDrawable (unsigned int i) const
说明:得到第i个Drawable指针。如果不存在则返回NULL。
10、bool containsDrawable (const Drawable *gset) const
说明:看该组中是否包含参数中所指的gset结点。如果包含则返回真,否则返回假。
11、unsigned int getDrawableIndex (const Drawable *drawable) const
说明:得到组内某个Drawable的索引。返回该索引值,如果不存在则返回-1。
12、const DrawableList & getDrawableList () const
说明:得到组内所有Drawable的向量列表。DrawableList实际定义为:std::vector< ref_ptr
13、void compileDrawables (RenderInfo &renderInfo)
说明:编译该组内所有的Drawable。参数表示渲染信息,包含状态,视口等等。
14、const BoundingBox & getBoundingBox () const
virtual BoundingSphere computeBound () const
说明:得到该组内的Drawable的大包围球与包围盒。
15、virtual void setThreadSafeRefUnref (bool threadSafe)
说明:设置是否查看ref以及unref的线程安全性,threadSafe为真表示查看,为假表示不查看。
16、virtual void resizeGLObjectBuffers (unsigned int)
说明:重新设置GL对象Buffer的大小为指定大小。
17、virtual void releaseGLObjects (osg::State *=0) const
说明:释放GL对象。如果State不为0则只释放与之有关联的对象,从而释放与之有关联的上下文。否则会为释放一切图像上下文释放一切对象。
二、osg::Drawable类
类说明:该类也是最重要的类之一,其下派生类无数,其中包含重要的粒子系统,文字显示等等。这些都可以归功于osg::Drawable。它还是OSG与OpenGL的接口,有谁知道呢,哪里还有渲染不是可绘制[Drawable]的呢。事实上也如上面描述的,它的子类比它更出名。
1、Drawable ()
Drawable (const Drawable &drawable, const CopyOp ©op=CopyOp::SHALLOW_COPY)
说明:构造函数。第二个构造函数为从一个已经存在的Drawable构造一个新的Drawable。参数二为拷贝类型,默认为浅拷贝,也可以是深拷贝:DEEP_COPY_OBJECTS
2、virtual bool isSameKindAs (const Object *obj) const
说明:判断一类与Drawable是否为同一类型。如果为同一类型返回true,返则返回false.
3、virtual const char * libraryName () const
说明:得到库文件名。返回库文件名的常量字符串指针。
4、virtual const char * className () const
说明:得到类类型名。返回类类型名的常量字符串指针。
5、virtual Geometry * asGeometry ()
virtual const Geometry * asGeometry () const
说明:返回一个指向Geometry的指针。被当作Geometry来使用。
6、virtual void computeDataVariance ()
说明:基于Callback等计算数据差异。
7、const ParentList & getParents () const
ParentList getParents ()
说明:得到其父结点列表,其实是一个std::vector
8、Node * getParent (unsigned int i)
const Node * getParent (unsigned int i) const
说明:得到第i个父结点。如果不存在该父结点,则返回空。
9、unsigned int getNumParents () const
说明:得到父结点的个数。.
10、void setStateSet (StateSet *stateset)
说明:设置状态设置。参数为状态设置指针,改变结点的状态设置。
11、StateSet * getStateSet ()
const StateSet * getStateSet () const
说明:得到结点的状态设置指针,如果没有设置过,则返回false.
12、StateSet * getOrCreateStateSet ()
说明:返回状态设置指针,如果没有状态设置将会创建,随后改变返回的指针就会改变状态。
13、void setInitialBound (const osg::BoundingBox &bbox)
说明:设置一个包围盒与该结点进行关联。随后计算会默认计算此盒。
14、const BoundingBox & getInitialBound () const
说明:得到与Drawable已经关联过的包围盒。返回包围盒的引用。
15、void dirtyBound ()
说明:重新计算包围盒或包围球。
16、const BoundingBox & getBound () const
说明:得到包围盒。
17、virtual BoundingBox computeBound () const
说明:计算现在的Drawable包围盒。并返回该包围盒。
18、void setComputeBoundingBoxCallback (ComputeBoundingBoxCallback *callback)
说明:设置计算包围盒的回调。当计算包围盒时会调用该回调。
19、ComputeBoundingBoxCallback * getComputeBoundingBoxCallback () const
说明:返回包围盒回调指针。
20、void setShape (Shape *shape)
说明:设置Drawable为一个Shape。可以为内置类型,内置图形数目是非常有限的。
21、Shape * getShape ()
const Shape * getShape () const
说明:得到Drawable中的Shape指针。Shape中的图形是非常有限的。
22、void setSupportsDisplayList (bool flag)
说明:设置是否支持渲染列表渲染。如果设置为真Drawable将按照渲染列表的方式进行渲染,如果列表不存在内部将会自动创建。
23、bool getSupportsDisplayList () const
说明:得到是否支持渲染列表进行渲染。
24、void setUseDisplayList (bool flag)
说明:设置是否支持渲染列表渲染。如果设置为真Drawable将按照渲染列表的方式进行渲染,如果列表不存在内部将会自动创建,为真表示支持,为假表示不支持。
25、bool getUseDisplayList () const
说明:得到是否支持渲染列表进行渲染。
26、GLuint & getDisplayList (unsigned int contextID) const
说明:得到第contextID个渲染列表。
27、virtual void setUseVertexBufferObjects (bool flag)
说明:设置是否使用顶点Buffer。如果设置为真将会忽略渲染列表使用顶点缓存对象方式进行渲染,为真表示支持,为假表示不支持。
28、bool getUseVertexBufferObjects () const
说明:返回是否采用顶点缓存对象方式进行渲染。
29、virtual void dirtyDisplayList ()
说明:重新计算渲染列表。
30、virtual unsigned int getGLObjectSizeHint () const
说明:返回估计大小的GLObject,该大小与里面需要被绘制的对象与采用的绘制方法有关。
31、void draw (RenderInfo &renderInfo) const
说明:绘制数据。如果设置了渲染列表进行绘制则会采用渲染列表的方式进行绘制。如果没有则会默认调用drawImplementation()函数进行绘制。
32、virtual void compileGLObjects (RenderInfo &renderInfo) const
说明:编译GL对象。参数中为相关的渲染信息。状态、数据、viewer等等。
33、virtual void setThreadSafeRefUnref (bool threadSafe)
说明:设置是否查看ref以及unref的线程安全性,为真表示查看,为假表示不查看。
34、virtual void resizeGLObjectBuffers (unsigned int)
说明:重新设置GL对象Buffer的大小为指定大小。
35、virtual void releaseGLObjects (osg::State *=0) const
说明:释放GL对象。如果State不为0则只释放与之有关联的对象,从而释放与之有关联的上下文。否则会为释放一切图像上下文释放一切对象。
36、virtual void setUpdateCallback (UpdateCallback *ac)
说明:设置更新回调,在更新时会调用该函数。
37、UpdateCallback * getUpdateCallback ()
const UpdateCallback * getUpdateCallback () const
说明:得到更新回调指针。
38、bool requiresUpdateTraversal () const
说明:是否要求更新时向下遍历。主要是看有没有更新回调函数已经与之关联,若已经关联,则必须向下遍历,就会返回TRUE。
39、virtual void setEventCallback (EventCallback *ac)
说明:设置事件回调,当事件发生时会调用该回调函数。
40、EventCallback * getEventCallback ()
const EventCallback * getEventCallback () const
说明:得到事件回调指针。如果没有设置事件回调则返回NULL.
41、bool requiresEventTraversal () const
说明:是否要求事件向下遍历。主要看有无事件回调函数与之关联,如果关联则必定会向下遍历,就会返回TRUE。
42、virtual void setCullCallback (CullCallback *cc)
说明:设置拣选回调。
43、CullCallback * getCullCallback ()
const CullCallback * getCullCallback () const
说明:返回拣选回调函数,如果没有设置拣选回调函数则返回NULL。
44、virtual void setDrawCallback (DrawCallback *dc)
说明:设置绘制回调。在绘制时会自动调用该函数。
45、DrawCallback * getDrawCallback ()
const DrawCallback * getDrawCallback () const
说明:得到绘制回调函数指针。
46、virtual void drawImplementation (RenderInfo &renderInfo) const =0
说明:绘制操作,一般而言,如果采用渲染列表进行绘制的话,将会调用draw函数,否则就会使用此函数来完成大多数的绘制工作。参数RenderInfo里含有基本的渲染信息,比如状态、Viewer等等。
47、virtual bool supports (const AttributeFunctor &) const
virtual bool supports (const ConstAttributeFunctor &) const
说明 :如果类支持accept(AttributeFunctor&)的话,则返回真。否则返回假,检查是否接受的对象类型。在这里为AttributeFunctor
48、virtual void accept (AttributeFunctor &)
virtual void accept (ConstAttributeFunctor &) const
说明:accept操作,接受一个属性Functor,告诉drawable全局属性情况。
49、virtual bool supports (const PrimitiveFunctor &) const
virtual bool supports (const PrimitiveIndexFunctor &) const
说明:如果类支持accept(PrimitiveFunctor&)则返回真,否则返回假,检查是否接受的对象类型。在这里为PrimitiveIndexFunctor。
三、osg::Shape类
类说明:Shape中存放了一些图形,它的子类包含了内置的比如盒子、球这类原始类型。从它的类名也可以看出来它主要的功能:绘制形状。
1、Shape ()
Shape (const Shape &sa, const CopyOp ©op=CopyOp::SHALLOW_COPY)
说明:构造函数,第二个构造函数用来从一个已知的Shape构建新Shape。拷贝类型默认为浅拷贝。可以为深拷贝:DEEP_COPY_OBJECTS.
2、virtual Object * cloneType () const =0
virtual Object * clone (const CopyOp &) const =0
说明:纯虚函数。第一个为返回克隆类型。第二个为克隆。
3、virtual bool isSameKindAs (const Object *obj) const
说明:判断与类obj是否为同一类型,判断obj是否为Shape类型。
4、virtual const char * libraryName () const
说明:得到库名。返回存有库名的常量指针。
5、virtual const char * className () const
说明:返回类类型名指针。
6、virtual void accept (ShapeVisitor &)=0
virtual void accept (ConstShapeVisitor &) const =0
说明:接受Shape遍历器。
四、osg::Geometry类
类说明:基本绘制几何体类,用于绘制基本的几何体。
1、Geometry ()
Geometry (const Geometry &geometry, const CopyOp ©op=CopyOp::SHALLOW_COPY)
说明:构造函数,第二个构造函数为从已知的Geometry来构造新的geometry。参数二为拷贝类型,默认为是浅拷贝,也可以设置为深拷贝DEEP_COPY_OBJECTS。
2、virtual Object * cloneType () const
说明:从一个已有geometry来克隆一个新的object,并返回该object指针。
3、virtual Object * clone (const CopyOp ©op) const
说明:从一个已有的geometry来克隆一个新的object,并返回该object指针,参数为克隆类型,可以是SHALLOW_COPY[浅拷贝],也可以是DEEP_COPY_OBJECTS[深拷贝]。
4、virtual bool isSameKindAs (const Object *obj) const
说明:与参数中的类型是否为同一类型,若为同一类型则返回真,否则返回假,判断此obj类型是否与调用函数的this类为同一类型。
5、virtual const char * libraryName () const
说明:得到类的库名。返回库名的指针。
6、virtual const char * className () const
说明:返回类名称,得到类名称指针。
7、virtual Geometry * asGeometry ()
virtual const Geometry * asGeometry () const
说明:返回一个指向geometry的指针,一般是对象是可以使用这个。第二个函数为常量版本。
8、bool empty () const
说明:判断此geometry是否有可绘制的元素,若空空如也则返回真,否则返回假。
9、void setVertexArray (Array *array)
说明:设置顶点列表,也就是在绘制过程中要使用到的顶点, 在一个Array当中,装有顶点的数组。
10、Array * getVertexArray ()
const Array * getVertexArray () const
说明:返回geometry中的顶点数组。如果没有顶点则返回空。
11、void setVertexIndices (IndexArray *array)
说明:设置索引顶点数组,要设置的顶点索引数组指针。
12、IndexArray * getVertexIndices ()
const IndexArray * getVertexIndices () const
说明:得到索引顶点数组,如果没有设置,则得到NULL。
13、void setVertexData (const ArrayData &arrayData)
说明:设置数组数具。这三种都是向geometry传递参数的方法,向geometry传递的数组数据。
14、ArrayData & getVertexData ()
const ArrayData & getVertexData () const
说明:得到数组数据,第二个为常量版本。
15、void setNormalBinding (AttributeBinding ab)
说明:设置法线绑定方式。一般有全不绑定,逐顶点,逐片元等等,设置法线绑定方式,可以为以下值:BIND_OFF,BIND_OVERALL,BIND_PER_PRIMITIVE_SET,BIND_PER_PRIMITIVE,BIND_PER_VERTEX
BIND_OFF 表示不绑定;
BIND_OVERALL 表示用一条法向绑定所有的顶点(顶点数组中);
BIND_PER_PRIMITIVE_SET表示 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)
BIND_PER_PRIMITIVE 表示为每个图元绑定一条法线;(法线的个数要与图元的个数一致)
BIND_PER_VERTEX表示 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)
16、AttributeBinding getNormalBinding () const
说明:得到顶点绑定方式。返回顶点绑定方式属性。
17、void setNormalArray (Array *array)
说明:设置法线数组,法线数组,用来设置法线,其中关乎绑定方式。
18、Array * getNormalArray ()
const Array * getNormalArray () const
说明:得到法线数组,第二个为常量版本。
19、void setNormalIndices (IndexArray *array)
说明:使用索引数组设置法线,索引数组,用来设置法线。
20、IndexArray * getNormalIndices ()
const IndexArray * getNormalIndices () const
说明:得到法线的索引数组。
21、void setNormalData (const ArrayData &arrayData)
说明:设置法线数据数组,数据数组,为设置法线传入法线数据数组。
22、ArrayData & getNormalData ()
const ArrayData & getNormalData () const
说明:得到已经设置的法线数据数组,如果没有设置则返回空。
23、void setColorBinding (AttributeBinding ab)
说明:设置颜色绑定方式,有片元、顶点等等方式,设置颜色绑定方式,可以为以下值:BIND_OFF,BIND_OVERALL,BIND_PER_PRIMITIVE_SET,BIND_PER_PRIMITIVE,BIND_PER_VERTEX。
BIND_OFF 表示不绑定;
BIND_OVERALL 表示用一条法向绑定所有的顶点(顶点数组中);
BIND_PER_PRIMITIVE_SET表示 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)
BIND_PER_PRIMITIVE 表示为每个图元绑定一条法线;(法线的个数要与图元的个数一致)
BIND_PER_VERTEX表示 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)
24、AttributeBinding getColorBinding () const
说明:得到颜色绑定方式。
25、void setColorArray (Array *array)
说明:设置颜色数组。四元数分别为RGBA。
26、Array * getColorArray ()
const Array * getColorArray () const
说明:得到颜色数组。第二个为常量版本。
27、void setColorIndices (IndexArray *array)
说明:以索引数组的方式来设置颜色数组,颜色索引数组,用来设置颜色,其中关乎绑定方式。
28、IndexArray * getColorIndices ()
const IndexArray * getColorIndices () const
说明:得到颜色索引数组。返回颜色数组指针,如果没有设置则返回空。
29、void setColorData (const ArrayData &arrayData)
说明:以数据数组的方式来设置颜色数组。
30、ArrayData & getColorData ()
const ArrayData & getColorData () const
说明:得到数据颜色数组。第二个为常量版本。
31、void setSecondaryColorBinding (AttributeBinding ab)
说明:设置次级颜色绑定方式,可以为以下值:BIND_OFF,BIND_OVERALL,BIND_PER_PRIMITIVE_SET,BIND_PER_PRIMITIVE,BIND_PER_VERTEX
BIND_OFF 表示不绑定;
BIND_OVERALL 表示用一条法向绑定所有的顶点(顶点数组中);
BIND_PER_PRIMITIVE_SET表示 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)
BIND_PER_PRIMITIVE 表示为每个图元绑定一条法线;(法线的个数要与图元的个数一致)
BIND_PER_VERTEX表示 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)
32、AttributeBinding getSecondaryColorBinding () const
说明:返回次级颜色绑定方式。
33、void setSecondaryColorArray (Array *array)
说明:设置次级颜色数组。参数以数组方式传入。
34、Array * getSecondaryColorArray ()
const Array * getSecondaryColorArray () const
说明:得到次级颜色数组。
35、void setSecondaryColorIndices (IndexArray *array)
说明:以索引数组方式设置次级颜色数组。
36、IndexArray * getSecondaryColorIndices ()
const IndexArray * getSecondaryColorIndices () const
说明:得到次级颜色数组,如果次级颜色数组并未设置,则返回NULL。
37、void setSecondaryColorData (const ArrayData &arrayData)
说明:以数据数组的方式来设置颜色数组。
38、ArrayData & getSecondaryColorData ()
const ArrayData & getSecondaryColorData () const
说明:获取次颜色数组的数据数组形式。如果未设置则返回NULL。
39、void setFogCoordBinding (AttributeBinding ab)
说明:设置雾顶点绑定方式,可以为以下值:BIND_OFF,BIND_OVERALL,BIND_PER_PRIMITIVE_SET,BIND_PER_PRIMITIVE,BIND_PER_VERTEX
BIND_OFF 表示不绑定;
BIND_OVERALL 表示用一条法向绑定所有的顶点(顶点数组中);
BIND_PER_PRIMITIVE_SET表示 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)
BIND_PER_PRIMITIVE 表示为每个图元绑定一条法线;(法线的个数要与图元的个数一致)
BIND_PER_VERTEX表示 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)
40、AttributeBinding getFogCoordBinding () const
说明:得到雾顶点绑定方式。
41、void setFogCoordArray (Array *array)
说明:设置雾与顶点的关联数组,设置雾与顶点的关联数组array.
42、Array * getFogCoordArray ()
const Array * getFogCoordArray () const
说明:得到雾与顶点的颜色关联数组。第二个为常量版本。
43、void setFogCoordIndices (IndexArray *array)
说明:以索引数组的方式设置雾与顶点的关联数组。
44、IndexArray * getFogCoordIndices ()
const IndexArray * getFogCoordIndices () const
说明:得到雾与顶点的关联数组。返回索引数组。如果没有设置索引数组则返回空。
45、void setFogCoordData (const ArrayData &arrayData)
说明:以数据数组的方式来设置雾与顶点的关联数组,设置雾与顶点的关联数组arrayData.
46、ArrayData & getFogCoordData ()
const ArrayData & getFogCoordData () const
说明:返回雾与顶点的关联数组。第二个函数为常量版本。
47、void setTexCoordArray (unsigned int unit, Array *)
说明:设置纹理的关联数组,unit为纹理数组的索引值,以array的方式设置纹理关联数组。值存入array中。
48、Array * getTexCoordArray (unsigned int unit)
const Array * getTexCoordArray (unsigned int unit) const
说明:得到索引值为uint的关联数组。以array的形式。
49、void setTexCoordIndices (unsigned int unit, IndexArray *)
说明:以索引数组的方式来设置纹理的关联数组。unit纹理数组的索引值,索引数组,IndexArray用来设置关联数组。
50、IndexArray * getTexCoordIndices (unsigned int unit)
const IndexArray * getTexCoordIndices (unsigned int unit) const
说明:得到索引值为uint的关联数组,以index array的方式,如果没有设置则返回null.
51、void setTexCoordData (unsigned int index, const ArrayData &arrayData)
说明:以数据数组的方式来设置纹理的关联数组。
52、ArrayData & getTexCoordData (unsigned int index)
const ArrayData & getTexCoordData (unsigned int index) const
说明:得到纹理的关联数组。以数据数组的形式,如果没有设置数据数组,则返回NULL。
53、unsigned int getNumTexCoordArrays () const
说明:得到纹理关联数组的个数。
54、ArrayDataList & getTexCoordArrayList ()
const ArrayDataList & getTexCoordArrayList () const
说明:得到纹理关联数组列表。ArrayDataList类型其实为:std::vector< ArrayData >
55、void setVertexAttribArray (unsigned int index, Array *array)
说明:设置顶点属性数组,index顶点属性数组的索引值,array顶点属性数组值。
56、Array * getVertexAttribArray (unsigned int index)
const Array * getVertexAttribArray (unsigned int index) const
说明:得到索引值为index的顶点属性数组。
57、void setVertexAttribIndices (unsigned int index, IndexArray *array)
说明:以索引数组的方引设置顶点属性数组。
58、IndexArray * getVertexAttribIndices (unsigned int index)
const IndexArray * getVertexAttribIndices (unsigned int index) const
说明:得到索引值为inex的顶点属性数组。第二个为常量版本。
59、void setVertexAttribBinding (unsigned int index, AttributeBinding ab)
说明:设置顶点属性绑定方式,index顶点属性数组的索引值,绑定方式,ab可以为以下值:BIND_OFF,BIND_OVERALL,BIND_PER_PRIMITIVE_SET,BIND_PER_PRIMITIVE,BIND_PER_VERTEX
BIND_OFF 表示不绑定;
BIND_OVERALL 表示用一条法向绑定所有的顶点(顶点数组中);
BIND_PER_PRIMITIVE_SET表示 为每个图元集绑定一条法线;(法线的个数要与图元集的个数一致)
BIND_PER_PRIMITIVE 表示为每个图元绑定一条法线;(法线的个数要与图元的个数一致)
BIND_PER_VERTEX表示 为每个顶点绑定一条法线。 (此时法线的个数要与顶点的个数一致)
60、AttributeBinding getVertexAttribBinding (unsigned int index) const
说明:得到索引值为index的顶点绑定方式。
61、void setVertexAttribNormalize (unsigned int index, GLboolean norm)
说明:是否设置顶点属性数组规格化。当norm为真是表示规格化,为假是表示不变。
62、GLboolean getVertexAttribNormalize (unsigned int index) const
说明:顶点属性数组是否被规格化。如果被规格化了,则返回真,否则返回假。
63、void setVertexAttribData (unsigned int index, const ArrayData &arrayData)
说明:以数据数组的方式设置顶点属性数组。
64、ArrayData & getVertexAttribData (unsigned int index)
const ArrayData & getVertexAttribData (unsigned int index) const
说明:得到索引值为index的顶点属性数组。如果没有设置则返回NULL。
65、unsigned int getNumVertexAttribArrays () const
说明:得到顶点属性数组的数目。
66、ArrayDataList & getVertexAttribArrayList ()
const ArrayDataList & getVertexAttribArrayList () const
说明:得到顶点属性数组链表。ArrayDataList定义其实为std::vector< ArrayData >。
67、void setPrimitiveSetList (const PrimitiveSetList &primitives)
说明:设置图元设置链表,图元设置链表。定义为:std::vector< ref_ptr
68、PrimitiveSetList & getPrimitiveSetList ()
const PrimitiveSetList & getPrimitiveSetList () const
说明:得到图元设置链表。如果没有设置则返回NULL。
69、unsigned int getNumPrimitiveSets () const
说明:得到图元设置个数。
70、PrimitiveSet * getPrimitiveSet (unsigned int pos)
const PrimitiveSet * getPrimitiveSet (unsigned int pos) const
说明:得到第pos个图元设置
71、bool addPrimitiveSet (PrimitiveSet *primitiveset)
说明:添加一个图元设置。如果添加成功则返回真,否则返回假。
72、bool setPrimitiveSet (unsigned int i, PrimitiveSet *primitiveset)
说明:修改第i个图元设置。如果修改成功则返回真,否则返回假。
73、bool insertPrimitiveSet (unsigned int i, PrimitiveSet *primitiveset)
说明:在第i个位置插入一个图元设置。如果插入成功则返回真,否则返回假。
74、bool removePrimitiveSet (unsigned int i, unsigned int numElementsToRemove=1)
说明:移除numElements个图元设置,从第i个后开始算起。默认移除1个。如果移除成功则返回真,否则返回假。
75、unsigned int getPrimitiveSetIndex (const PrimitiveSet *primitiveset) const
说明:得到某一图元设置的索引值。
76、virtual void setUseVertexBufferObjects (bool flag)
说明:是否设置顶点缓存对象。
77、virtual void dirtyDisplayList ()
说明:重新绘制渲染列表。
78、virtual void resizeGLObjectBuffers (unsigned int)
说明:重新设置GL对象Buffer的大小为指定大小。
79、virtual void releaseGLObjects (osg::State *=0) const
说明:释放GL对象。如果State不为0则只释放与之有关联的对象,从而释放与之有关联的上下文。否则会为释放一切图像上下文释放一切对象。
80、bool getArrayList (ArrayList &arrayList) const
说明:得到数组链表,该链表应该为需要绘制图像的顶点数组重新组合后链表。成功则返回真,否则返回假,得到数组链表,由于该类型为引用,故可以传入arrayList中。
81、bool getDrawElementsList (DrawElementsList &drawElementsList) const
说明:得到片元列表。如果得到成功则返回真,否则返回假,得到片元列表,由于是引用类型,故执行完可以传入。
82、osg::VertexBufferObject * getOrCreateVertexBufferObject ()
说明:得到顶点缓存对象,如果没有则创建,创建后可改变。
83、osg::ElementBufferObject * getOrCreateElementBufferObject ()
说明:得到片元缓存对象,如果没有则创建,创建后可改变。
84、void setFastPathHint (bool on)
说明:如果硬件支持是否使用FasePath.所谓FastPath是指OpenGL在绘制过程中是使用了FastPath [glDrawArrays/glDrawElements]. 还是使用了SlowPath[ glBegin()/glVertex.../glEnd()],设置为真表示打开FastPath,否则表示不打开。
85、bool getFastPathHint () const
说明:查看是否打开了FastPath.为真表示打开,为假表示关闭
86、bool areFastPathsUsed () const
说明:FastPath是不中在使用当中。
87、bool computeFastPathsUsed ()
说明:计算FastPaths是否在使用。如果在使用则返回真,否则返回假。
88、bool verifyBindings () const
说明:是否使用了多重绑定。如果使用了则返回真,否则返回假。
89、void computeCorrectBindingsAndArraySizes ()
说明:计算正确的绑定以及数组值大小。
90、bool suitableForOptimization () const
说明:是否适合优化,如果适合做优化则返回真,否则返回假。
91、void copyToAndOptimize (Geometry &target)
说明:把优化结果拷贝到另外一个Geometry.target重组后的目标geometry。
92、void computeInternalOptimizedGeometry ()
说明:计算全局优化geometry。
93、void removeInternalOptimizedGeometry ()
说明:移除全局优化geometry。
94、void setInternalOptimizedGeometry (osg::Geometry *geometry)
说明:设置全局优化Geometry.
95、osg::Geometry * getInternalOptimizedGeometry ()
const osg::Geometry * getInternalOptimizedGeometry () const
说明:返回全局优化的Geometry。
96、virtual unsigned int getGLObjectSizeHint () const
说明:返回估计大小的GLObject,该大小与里面需要被绘制的对象与采用的绘制方法有关。
97、virtual void drawImplementation (RenderInfo &renderInfo) const
说明:基础绘制。参数中含有绘制基本信息,包括数据,状态等等。
98、virtual bool supports (const AttributeFunctor &) const
virtual bool supports (const ConstAttributeFunctor &) const
说明 :如果类支持accept(AttributeFunctor&)的话,则返回真。否则返回假,检查是否接受的对象类型。在这里为AttributeFunctor。
99、virtual void accept (AttributeFunctor &)
virtual void accept (ConstAttributeFunctor &) const
说明:accept操作,接受一个属性Functor,告诉drawable全局属性情况。
100、virtual bool supports (const PrimitiveFunctor &) const
virtual bool supports (const PrimitiveIndexFunctor &) const
说明:如果类支持accept(PrimitiveFunctor&)则返回真,否则返回假,检查是否接受的对象类型。在这里为PrimitiveIndexFunctor。