一、osg::Camera类
类说明:为视口添加camera的类。用于显示。
1、 Camera ()
Camera (const Camera &, const CopyOp ©op=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 ¢er, 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 ©op=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 ¢er)
说明:设置中心点。
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 ©op=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
说明:计算包围球。