osg.CullStack类用于实现OpenGL剔除(culling)操作。这个类管理了当前视锥体(frustum)内可见对象的列表,并且跟踪OpenGL state stack和matrix stack。
osg::CullStack::CullStack()
构造函数,创建一个空的视锥体。
void osg::CullStack::clear()
清空视锥体内的对象列表,并且回到初始状态。
bool osg::CullStack::empty() const
返回视锥体内的对象列表是否为空。
bool osg::CullStack::containsNode(const osg::Node* node) const
返回视锥体内的对象列表中是否包含指定的节点。
void osg::CullStack::pushFrustum(osg::Frustum* frustum)
将指定的视锥体压入堆栈。
osg::ref_ptr<osg::Frustum> osg::CullStack::popFrustum()
弹出堆栈中的最顶层视锥体,并返回其指针。
osg::ref_ptr<osg::Frustum> osg::CullStack::getCurrentFrustum()
返回当前正在使用的视锥体的指针。
void osg::CullStack::setProjectionMatrix(osg::RefMatrix* matrix)
设置当前使用的投影矩阵。
osg::RefMatrix* osg::CullStack::getProjectionMatrix()
返回当前使用的投影矩阵。
void osg::CullStack::setModelViewMatrix(osg::RefMatrix* matrix)
设置当前使用的模型视图矩阵。
osg::RefMatrix* osg::CullStack::getModelViewMatrix()
返回当前使用的模型视图矩阵。
osg::RefMatrix* osg::CullStack::getModelViewInverseMatrix()
返回当前使用的模型视图矩阵的逆矩阵。
osg::RefMatrix* osg::CullStack::getModelViewInverseTransposeMatrix()
返回当前使用的模型视图矩阵的逆转置矩阵。
osg::Matrixd osg::CullStack::getModelViewMatrixWithoutRefPoint()
返回当前使用的模型视图矩阵,去掉参考点(reference point)的影响。
osg::Matrixd osg::CullStack::getModelViewInverseMatrixWithoutRefPoint()
返回当前使用的模型视图矩阵的逆矩阵,去掉参考点(reference point)的影响。
void osg::CullStack::pushViewport(osg::Viewport* viewport)
将指定的视口压入堆栈。
osg::ref_ptr<osg::Viewport> osg::CullStack::popViewport()
弹出堆栈中的最顶层视口,并返回其指针。
osg::ref_ptr<osg::Viewport> osg::CullStack::getCurrentViewport()
返回当前正在使用的视口的指针。
void osg::CullStack::setViewportAspectRatio(const double aspectRatio)
设置当前视口的宽高比。
double osg::CullStack::getViewportAspectRatio() const
返回当前视口的宽高比。
void osg::CullStack::setClampingColor(const osg::Vec4& color)
设置当前颜色限制值。
osg::Vec4& osg::CullStack::getClampingColor()
返回当前颜色限制值。
void osg::CullStack::setWindowMatrix(osg::RefMatrix* matrix)
设置当前使用的窗口矩阵。
osg::RefMatrix* osg::CullStack::getWindowMatrix()
返回当前使用的窗口矩阵。
void osg::CullStack::setProjectionResizePolicy(osg::CullSettings::ClampProjectionMatrixToFarPlanePolicy policy)
设置投影矩阵调整策略。
osg::CullSettings::ClampProjectionMatrixToFarPlanePolicy osg::CullStack::getProjectionResizePolicy() const
返回当前投影矩阵调整策略。
osg::Vec2 osg::CullStack::getWindowSize() const
返回当前窗口的尺寸。
GLenum osg::CullStack::getSmallFeatureCullingPixelSize() const
返回剔除小物体的像素大小。
void osg::CullStack::setCamera(osg::Camera* camera)
设置当前使用的相机。
osg::Camera* osg::CullStack::getCamera()
返回当前使用的相机。
void osg::CullStack::pushProjectionMatrix(osg::RefMatrix* matrix)
将指定的投影矩阵压入堆栈。
osg::RefMatrix* osg::CullStack::popProjectionMatrix()
弹出堆栈中的最顶层投影矩阵,并返回其指针。
osg::RefMatrix* osg::CullStack::getCurrentProjectionMatrix()
返回当前正在使用的投影矩阵的指针。
void osg::CullStack::pushModelViewMatrix(osg::RefMatrix* matrix)
将指定的模型视图矩阵压入堆栈。
osg::RefMatrix* osg::CullStack::popModelViewMatrix()
弹出堆栈中的最顶层模型视图矩阵,并返回其指针。
osg::MatrixMode osg::CullStack::getMatrixMode() const
返回当前矩阵模式,取值为GL_(MODELVIEW|PROJECTION)_MATRIX
。
void osg::CullStack::setInitialViewMatrix(osg::RefMatrix* matrix)
设置视图矩阵的初始化值。
osg::RefMatrix* osg::CullStack::getInitialViewMatrix()
返回视图矩阵的初始化值。
unsigned int osg::CullStack::getFBOID() const
返回当前使用的framebuffer object(FBO)的ID号。
void osg::CullStack::setViewport(osg::Viewport* viewport)
设置当前使用的视口。
void osg::CullStack::setModelView(osg::RefMatrix* matrix)
设置当前使用的模型视图矩阵。
osg::ref_ptr<osg::GraphicsContext> osg::CullStack::getGraphicsContext() const
返回当前使用的图形上下文
osg::ref_ptr<osg::Texture> osg::CullStack::getTexture(unsigned int textureUnit)
返回指定纹理单元上的当前纹理。
unsigned int osg::CullStack::getTextureAttributePopNumber(unsigned int textureUnit) const
返回指定纹理单元上的attribute stack pop操作的数量。
void osg::CullStack::setTextureAttribute(unsigned int textureUnit, osg::StateAttribute* attribute, osg::StateAttribute::OverrideValue value)
设置指定纹理单元的StateAttribute和OverrideValue。
void osg::CullStack::setTextureMode(unsigned int textureUnit, unsigned int mode, osg::StateAttribute::GLModeValue value)
设置指定纹理单元的mode。
void osg::CullStack::setTexture(unsigned int textureUnit, osg::Texture* texture)
设置指定纹理单元的texture。
osg::CullStack::~CullStack()
析构函数。