OSG关键类(osg::Geode,osg::Drawable,osg::Shape,osg::Geometry)介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35097289/article/details/88662370

一、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<Drawable> >

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<Node*>。返回值为父结点列表。

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<PrimitiveSet>

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。

猜你喜欢

转载自blog.csdn.net/qq_35097289/article/details/88662370