17、osg::Camera,osg::LOD,osgSim::Impostor类函数说明

2024-02-22 00:18

本文主要是介绍17、osg::Camera,osg::LOD,osgSim::Impostor类函数说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、osg::Camera类

类说明:为视口添加camera的类。用于显示。

1、 Camera () 

       Camera (const Camera &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
说明:构造函数,第一个是否为自动组建该类,将采用一些默认参数。默认为真。第二个构造函数为从已知的Camera创建新的Camera。拷贝类型,默认为浅拷贝,可以为深拷贝。DEEP_COPY_OBJECTS.

2、void setView (View *view) 

说明:为camera设置依附的view,view为拥有该camera的view。

3、View * getView () 

     const View * getView () const 

说明:得到该camera的view。

4、void setStats (osg::Stats *stats) 

说明:为该camera设置stats。stats为设置好的stats类。

5、osg::Stats * getStats () 

      const osg::Stats * getStats () const 

说明:得到当前camera的stats.

6、void setAllowEventFocus (bool focus) 

说明:设置可以得到事件焦点,就是可以接受外界消息。对于从视口,这个是不需要的。设置是否得到事件的焦点。

7、bool getAllowEventFocus () const 

说明:是否允许得到事件的焦点。

8、void setDisplaySettings (osg::DisplaySettings *ds) 

说明:设置displaySettings,控制在渲染时的一些信息。ds为自定义的DisplaySettings类。

9、osg::DisplaySettings * getDisplaySettings () const

 说明:得到displaysettings.

10、void setClearColor (const Vec4 &color) 

说明:设置清除缓存区背景的颜色。RGBA格式。

11、const Vec4 & getClearColor () const

 说明:得到清除缓存区颜色设置。

12、void setClearMask (GLbitfield mask) 

说明:设置使用清除标志。清除标志,可以为以下值:GL_COLOR_BUFFER_BIT 或者 GL_DEPTH_BUFFER_BIT.

13、GLbitfield getClearMask () const 

说明:得到所设置的清除标志。

14、void setColorMask (osg::ColorMask *colorMask) 

说明:设置屏蔽颜色。屏蔽色值。

15、void setColorMask (bool red, bool green, bool blue, bool alpha) 

说明:设置屏蔽颜色。red为是否屏蔽红色。green为是否屏蔽蓝色。blue为是否屏蔽绿色。alpha为是否屏蔽A通道。

16、const ColorMask * getColorMask ()

         const ColorMask * getColorMask () 

说明:得到所设置屏蔽的颜色。

17、void setViewport (osg::Viewport *viewport) 

         void setViewport (int x, int y, int width, int height) 

说明:设置视口的尺寸与位置。viewport为归设置的视口类。x为视口的左下角坐标X值。y为视口的左下角坐标Y值。width为视口的宽度。heigth为视口的高度。

18、const Viewport * getViewport () 

         const Viewport * getViewport () 

说明:得到camera的视口高宽值。

19、void setTransformOrder (TransformOrder order) 

说明:设置当局部向世界以及世界向局部转化时矩阵相乘顺序。相乘顺序,可以为以下值:PRE_MULTIPLY POST_MULTIPLY

20、TransformOrder getTransformOrder () const 

说明:得到当局部向世界以及世界向局部转化时矩阵相乘顺序。

21、void setProjectionResizePolicy (ProjectionResizePolicy policy) 

说明:设置模型如何调整以适应视口。policy为调整策略,可以是以下值:FIXED HORIZONTAL VERTICAL

22、ProjectionResizePolicy getProjectionResizePolicy () const 

说明:得到调整策略:即,模型如何调整以适应视口。

23、void setProjectionMatrix (const osg::Matrixf &matrix) 

        void setProjectionMatrix (const osg::Matrixd &matrix)

 说明:直接设置投影矩阵。matrix为透视矩阵值。

24、void setProjectionMatrixAsOrtho (double left, double right, double bottom, double top, double zNear, double zFar) 

说明:以正交投影的方式设置投影矩阵。left为正交投影中的LEFT,right为正交投影中的right,bottom为正交投影中的bottom,top为正交投影中的top,zNear为正交投影中的zNear,zFar为正交投影中的zFar

25、void setProjectionMatrixAsOrtho2D (double left, double right, double bottom, double top)

 说明:以正交投影的方式来设置投影矩阵。left为正交投影中的LEFT,right为正交投影中的right,bottom为正交投影中的bottom,top为正交投影中的top。

26、void setProjectionMatrixAsFrustum (double left, double right, double bottom, double top, double zNear, double zFar)

 说明:以平头截体的方式来设置投影矩阵。left为平头截体中的LEFT,right为平头截体中的right,bottom为平头截体中的bottom,top为平头截体中的top,zNear为平头截体中的zNear,zFar为平头截体中的zFar

27、void setProjectionMatrixAsPerspective (double fovy, double aspectRatio, double zNear, double zFar) 

说明:以透视投影的方式来设置投影矩阵。fovy为透视投影中的fovy,aspectRatio为透视投影中的aspectRatio,zNear为透视投影中的zNear,zFar为透视投影中的zFar

28、osg::Matrixd & getProjectionMatrix () 

        const osg::Matrixd & getProjectionMatrix () const

 说明:得到投影矩阵。

29、bool getProjectionMatrixAsOrtho (double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) 

说明:以正交投影的方式得到投影矩阵。得到成功返回真。left为正交投影中的LEFT,right为正交投影中的right,bottom为正交投影中的bottom,top为正交投影中的top,zNear为正交投影中的zNear,zFar为正交投影中的zFar

30、bool getProjectionMatrixAsFrustum (double &left, double &right, double &bottom, double &top, double &zNear, double &zFar) 

说明:以平头截体的方式来得到投影矩阵。

31、bool getProjectionMatrixAsPerspective (double &fovy, double &aspectRatio, double &zNear, double &zFar)

 说明:以透视投影的方式来得到投影矩阵。得到成功返回真。

32、void setViewMatrix (const osg::Matrixf &matrix)

        void setViewMatrix (const osg::Matrixd &matrix) 

说明:直接设置观察矩阵。

33、void setViewMatrixAsLookAt (const osg::Vec3 &eye, const osg::Vec3 &center, const osg::Vec3 &up) 

说明:使用lookat的观察方式来设置观察矩阵。eye为lookat 中的eye,center为lookat 中的center,up为lookat 中的up

34、Matrixd getInverseViewMatrix () const

 说明:得到观察矩阵的逆矩阵。

35、void setRenderOrder (RenderOrder order, int orderNum=0) 

说明:设置渲染顺序,最后渲染会是顶层窗口。渲染顺序,order可以为以下值:PRE_RENDER NESTED_RENDER POST_RENDER,orderNum如果级别相同,具体指出渲染次序。

36、RenderOrder getRenderOrder () const 

说明:得到设置的渲染顺序,最后渲染会是顶层窗口。

37、int getRenderOrderNum () const 

说明:得到渲染次序数目

38、bool isRenderToTextureCamera () const 

说明:是否渲染至纹理相机。如果渲染了则返回真。

39、void setRenderTargetImplementation (RenderTargetImplementation impl) 

说明:设置渲染实现方式。impl为渲染目标实现方式,可以为以下值:FRAME_BUFFER_OBJECT PIXEL_BUFFER_RTT

40、void setRenderTargetImplementation (RenderTargetImplementation impl, RenderTargetImplementation fallback) 

说明:设置渲染目标实现方式。如果前方不可用,fallback.渲染目标实现方式,可以为以下值:FRAME_BUFFER_OBJECT PIXEL_BUFFER_RTT PIXEL_BUFFER FRAME_BUFFER SEPERATE_WINDOW

41、RenderTargetImplementation getRenderTargetImplementation () const

说明:得到渲染实现方式。

42、RenderTargetImplementation getRenderTargetFallback () const 

说明:得到渲染时的fallback.

43、void setDrawBuffer (GLenum buffer) 

说明:设置DrawBuffer,设置好的DrawBuffer

44、GLenum getDrawBuffer () const 

说明:得到设置的DrawBuffer.

45、void setReadBuffer (GLenum buffer) 

说明:设置ReadBuffer

46、GLenum getReadBuffer () const 

说明:得到所设置的ReadBuffer

47、void attach (BufferComponent buffer, GLenum internalFormat)

         void attach (BufferComponent buffer, osg::Texture *texture, unsigned int level=0, unsigned int face=0, bool mipMapGeneration=false) 

         void attach (BufferComponent buffer, osg::Image *image) 

说明:设置一些buffer.到特殊的用途。

48、void detach (BufferComponent buffer) 

说明:解除一些绑定到camera的Buffer。

49、BufferAttachmentMap & getBufferAttachmentMap () const

 说明:得到Buffer的绑定映射。

50、void createCameraThread () 

说明:创建Camera线程。

51、void setCameraThread (OperationThread *gt) 

说明:设置Camera线程。gt为设置已有的Camera线程。

52、OperationThread * getCameraThread () 

         const OperationThread * getCameraThread () const 

说明:得到设置好的camera线程。

53、void setGraphicsContext (GraphicsContext *context) 

说明:设置上下文。context传入需要设置的上下文。

54、GraphicsContext * getGraphicsContext () 

        const GraphicsContext * getGraphicsContext () const 

说明:得到所设置的图形上下文。

55、void setRenderer (osg::GraphicsOperation *rc) 

说明:设置GraphicsOperation,可以接受一个类的操作。rc传入的设置的图形操作。

56、osg::GraphicsOperation * getRenderer () const 

说明:得到设置的图形操作。

57、void setRenderingCache (osg::Object *rc) 

说明:设置渲染时的cache,会在渲染子类子图时使用到。

58、osg::Object * getRenderingCache ()

        const osg::Object * getRenderingCache () const 

说明:得到渲染时所设置的cache.

59、void setPreDrawCallback (DrawCallback *cb) 

说明:设置Draw前的callback.设置draw前的Drawback.

60、DrawCallback * getPreDrawCallback ()

         const DrawCallback * getPreDrawCallback () const 

说明:得到设置的Draw前Callback.

61、void setPostDrawCallback (DrawCallback *cb)

说明:设置Draw后callback.cb为设置draw后的Drawback.

62、DrawCallback * getPostDrawCallback () 

        const DrawCallback * getPostDrawCallback () const 

说明:得到设置的draw后callback.

63、OpenThreads::Mutex * getDataChangeMutex () const

 说明:得到数据改变的Mutex.

二、osg::LOD类

类说明:LOD控制结点。

1、LOD () 

      LOD (const LOD &, const CopyOp &copyop=CopyOp::SHALLOW_COPY) 

说明:构造函数,第二个构造函数为从已知的LOD构造新的LOD,第二个参数为拷贝类型。默认为是浅拷贝。拷贝方式,默认为是浅拷贝,可以为深拷贝:DEEP_COPY_OBJECTS

2、virtual void traverse (NodeVisitor &nv) 

说明:允许NodeVisitor向下遍历结点。

3、virtual bool addChild (Node *child) 

说明:添加孩子结点。需要的话,可以使用别的函数设置视矩。child为需要添加的孩子结点。

4、virtual bool addChild (Node *child, float min, float max) 

说明:添加孩子结点,且在添加的同时指明显示该函数的范围。child为需要添加的孩子结点。min为最近距离可视,max为远距离,与近矩离配对。

5、virtual bool removeChildren (unsigned int pos, unsigned int numChildrenToRemove=1)

 说明:移除某一个孩子结点,从pos个结点,移除numChildRenToR个。pos为第pos个孩子后开始移除。numChildrenToRemove为移除的孩子个数。默认为1个

6、void setCenterMode (CenterMode mode) 

说明:使用中心点模式。用户可以指定中心点,默认会使用包围球中心点。指定中心点模式,有两种模式: USE_BOUNDING_SPHERE_CENTER USER_DEFINED_CENTER

7、CenterMode getCenterMode () const 

说明:得到设置的中心点模式,可能是包围球中心点,也可能是用户定义的。

8、void setCenter (const Vec3 &center) 

说明:设置中心点。

9、const Vec3 & getCenter () const 

说明:得到设置或者自动的中心点。

10、void setRadius (float radius) 

说明:设置半径。

11、float getRadius () const

说明:得到设置的半径。

12、void setRangeMode (RangeMode mode) 

说明:设置范围的计算模式。可以是实际矩离,也可以是像素值。设置显示范围的计算模式。可以是以下两种:DISTANCE_FROM_EYE_POINT PIXEL_SIZE_ON_SCREEN

13、RangeMode getRangeMode () const

 说明:得到范围的计算模式。

14、void setRange (unsigned int childNo, float min, float max) 

说明:设置第childNo个孩子的显示范围。childNo为设置第childNo个孩子的显示范围。min为显示近距,max为显示远距

15、float getMinRange (unsigned int childNo) const

说明:得到第childNoe个孩子的最小显示距离。第childNo个孩子的最近显示距离。

16、float getMaxRange (unsigned int childNo) const 

说明:得到第childNoe个孩子的最大显示距离。

17、unsigned int getNumRanges () const 

说明:得到有多少个显示范围。可有很多的显示段。

18、void setRangeList (const RangeList &rangeList) 

说明:设置显示范围列表。

19、const RangeList & getRangeList () const

 说明:得到显示范围列表。

20、virtual BoundingSphere computeBound () const 

说明:得到包围球。

三、osgSim::Impostor类

类说明:用图代替模型的LOD技术。

1、Impostor () 

      Impostor (const Impostor &es, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY) 

说明:构造函数。第二个从已有的Imposter中构造现在的Imposter。拷贝方式,默认为是浅拷贝,可以为深拷贝:DEEP_COPY_OBJECTS

2、virtual void traverse (osg::NodeVisitor &nv) 

说明:接受NoeVisitor向下遍历.

3、void setImpostorThreshold (float distance)

 说明:设置视矩阀值。如果不设置按LOD的算。distance为距离值

4、float getImpostorThreshold () const 

说明:得到设置的阀值。

5、void setImpostorThresholdToBound (float ratio=1.0f)

说明:设置该阀值与包围球半径的比率关系。

6、ImpostorSprite * findBestImpostorSprite (unsigned int contextID, const osg::Vec3 &currLocalEyePoint) const 

说明:找到一个当前视点看起来最合适的Sprite。contextID为上下文ID,currLocalEyePoint为当前局部视点。

7、void addImpostorSprite (unsigned int contextID, ImpostorSprite *is) 

说明:添加一个Sprite到contextID所指内容当中。

8、ImpostorSpriteList & getImpostorSpriteList (unsigned int contexID) const 

说明:得到ID为contextID的Sprite的列表。

9、virtual osg::BoundingSphere computeBound () const

 说明:计算包围球。

这篇关于17、osg::Camera,osg::LOD,osgSim::Impostor类函数说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733542

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使