# osg::CullStack Class Reference

A CullStack class which accumulates the current project, modelview matrices and the CullingSet. More...

Inheritance diagram for osg::CullStack:

[legend]
List of all members.

## Public Types

typedef std::vector< ShadowVolumeOccluder > | OccluderList
typedef std::vector< CullingSet > | CullingStack

## Public Member Functions

| CullStack ()
| ~CullStack ()
void | reset ()
void | setOccluderList (const ShadowVolumeOccluderList &svol)
ShadowVolumeOccluderList & | getOccluderList ()
const ShadowVolumeOccluderList & | getOccluderList () const
void | pushViewport (osg::Viewport *viewport)
void | popViewport ()
void | pushProjectionMatrix (osg::RefMatrix *matrix)
void | popProjectionMatrix ()
void | pushModelViewMatrix (osg::RefMatrix *matrix)
void | popModelViewMatrix ()
float | getFrustumVolume ()
float | pixelSize (const Vec3 &v, float radius) const
| Compute the pixel of an object at position v, with specified radius.
float | pixelSize (const BoundingSphere &bs) const
| Compute the pixel of the bounding sphere.
void | disableAndPushOccludersCurrentMask (NodePath &nodePath)
void | popOccludersCurrentMask (NodePath &nodePath)
bool | isCulled (const std::vector< Vec3 > &vertices)
bool | isCulled (const BoundingBox &bb)
bool | isCulled (const BoundingSphere &bs)
bool | isCulled (const osg::Node &node)
void | pushCurrentMask ()
void | popCurrentMask ()
CullingStack & | getClipSpaceCullingStack ()
CullingStack & | getProjectionCullingStack ()
CullingStack & | getModelViewCullingStack ()
CullingSet & | getCurrentCullingSet ()
const CullingSet & | getCurrentCullingSet () const
osg::Viewport * | getViewport ()
osg::RefMatrix & | getModelViewMatrix ()
osg::RefMatrix & | getProjectionMatrix ()
osg::Matrix | getWindowMatrix ()
const osg::RefMatrix & | getMVPW ()
const osg::Vec3 & | getEyeLocal () const
const osg::Vec3 | getUpLocal () const
const osg::Vec3 | getLookVectorLocal () const

## Protected Types

typedef fast_back_stack< ref_ptr< RefMatrix > > | MatrixStack
typedef fast_back_stack< ref_ptr< Viewport > > | ViewportStack
typedef fast_back_stack< Vec3 > | EyePointStack
typedef std::vector< osg::ref_ptr< osg::RefMatrix > > | MatrixList

## Protected Member Functions

void | pushCullingSet ()
void | popCullingSet ()
void | computeFrustumVolume ()
osg::RefMatrix * | createOrReuseMatrix (const osg::Matrix &value)

## Protected Attributes

ShadowVolumeOccluderList | _occluderList
MatrixStack | _projectionStack
MatrixStack | _modelviewStack
MatrixStack | _MVPW_Stack
ViewportStack | _viewportStack
EyePointStack | _eyePointStack
CullingStack | _clipspaceCullingStack
CullingStack | _projectionCullingStack
CullingStack | _modelviewCullingStack
unsigned int | _index_modelviewCullingStack
CullingSet * | _back_modelviewCullingStack
float | _frustumVolume
unsigned int | _bbCornerNear
unsigned int | _bbCornerFar
ref_ptr< osg::RefMatrix > | _identity
MatrixList | _reuseMatrixList
unsigned int | _currentReuseMatrixIndex

## Detailed Description

A CullStack class which accumulates the current project, modelview matrices and the CullingSet.

## Member Typedef Documentation

typedef std::vector< CullingSet > osg::CullStack::CullingStack

typedef fast_back_stack<Vec3> osg::CullStack::EyePointStack `[protected]`

typedef std::vector< osg::ref_ptr<osg::RefMatrix> > osg::CullStack::MatrixList `[protected]`

typedef fast_back_stack< ref_ptr<RefMatrix> > osg::CullStack::MatrixStack `[protected]`

typedef std::vector<ShadowVolumeOccluder> osg::CullStack::OccluderList

typedef fast_back_stack<ref_ptr<Viewport> > osg::CullStack::ViewportStack `[protected]`

## Constructor & Destructor Documentation

CullStack::CullStack | ( |  | ) |

CullStack::~CullStack | ( |  | ) |

## Member Function Documentation

void CullStack::computeFrustumVolume | ( |  | ) | `[protected]`

RefMatrix * osg::CullStack::createOrReuseMatrix | ( | const osg::Matrix & | value | ) | `[inline, protected]`

void osg::CullStack::disableAndPushOccludersCurrentMask | ( | NodePath & | nodePath | ) | `[inline]`

CullingStack& osg::CullStack::getClipSpaceCullingStack | ( |  | ) | `[inline]`

const CullingSet& osg::CullStack::getCurrentCullingSet | ( |  | ) | const`[inline]`

CullingSet& osg::CullStack::getCurrentCullingSet | ( |  | ) | `[inline]`

const osg::Vec3& osg::CullStack::getEyeLocal | ( |  | ) | const`[inline]`

float osg::CullStack::getFrustumVolume | ( |  | ) | `[inline]`

const osg::Vec3 osg::CullStack::getLookVectorLocal | ( |  | ) | const`[inline]`

CullingStack& osg::CullStack::getModelViewCullingStack | ( |  | ) | `[inline]`

osg::RefMatrix & osg::CullStack::getModelViewMatrix | ( |  | ) | `[inline]`

const osg::RefMatrix & osg::CullStack::getMVPW | ( |  | ) | `[inline]`

const ShadowVolumeOccluderList& osg::CullStack::getOccluderList | ( |  | ) | const`[inline]`

ShadowVolumeOccluderList& osg::CullStack::getOccluderList | ( |  | ) | `[inline]`

CullingStack& osg::CullStack::getProjectionCullingStack | ( |  | ) | `[inline]`

osg::RefMatrix & osg::CullStack::getProjectionMatrix | ( |  | ) | `[inline]`

const osg::Vec3 osg::CullStack::getUpLocal | ( |  | ) | const`[inline]`

osg::Viewport * osg::CullStack::getViewport | ( |  | ) | `[inline]`

osg::Matrix osg::CullStack::getWindowMatrix | ( |  | ) | `[inline]`

bool osg::CullStack::isCulled | ( | const osg::Node & | node | ) | `[inline]`

bool osg::CullStack::isCulled | ( | const BoundingSphere & | bs | ) | `[inline]`

bool osg::CullStack::isCulled | ( | const BoundingBox & | bb | ) | `[inline]`

bool osg::CullStack::isCulled | ( | const std::vector< Vec3 > & | vertices | ) | `[inline]`

float osg::CullStack::pixelSize | ( | const BoundingSphere & | bs | ) | const`[inline]`

| Compute the pixel of the bounding sphere.

float osg::CullStack::pixelSize | ( | const Vec3 & | v,
|  | float | radius
| ) | const`[inline]`

| Compute the pixel of an object at position v, with specified radius.

void CullStack::popCullingSet | ( |  | ) | `[protected]`

void osg::CullStack::popCurrentMask | ( |  | ) | `[inline]`

void CullStack::popModelViewMatrix | ( |  | ) |

void osg::CullStack::popOccludersCurrentMask | ( | NodePath & | nodePath | ) | `[inline]`

void CullStack::popProjectionMatrix | ( |  | ) |

| Reimplemented in osgUtil::CullVisitor.

void CullStack::popViewport | ( |  | ) |

void CullStack::pushCullingSet | ( |  | ) | `[protected]`

void osg::CullStack::pushCurrentMask | ( |  | ) | `[inline]`

void CullStack::pushModelViewMatrix | ( | osg::RefMatrix * | matrix | ) |

void CullStack::pushProjectionMatrix | ( | osg::RefMatrix * | matrix | ) |

void CullStack::pushViewport | ( | osg::Viewport * | viewport | ) |

void CullStack::reset | ( |  | ) |

| Reimplemented in osg::CollectOccludersVisitor, and osgUtil::CullVisitor.

void osg::CullStack::setOccluderList | ( | const ShadowVolumeOccluderList & | svol | ) | `[inline]`

## Member Data Documentation

CullingSet* osg::CullStack::_back_modelviewCullingStack `[protected]`

unsigned int osg::CullStack::_bbCornerFar `[protected]`

unsigned int osg::CullStack::_bbCornerNear `[protected]`

CullingStack osg::CullStack::_clipspaceCullingStack `[protected]`

unsigned int osg::CullStack::_currentReuseMatrixIndex `[protected]`

EyePointStack osg::CullStack::_eyePointStack `[protected]`

float osg::CullStack::_frustumVolume `[protected]`

ref_ptr<osg::RefMatrix> osg::CullStack::_identity `[protected]`

unsigned int osg::CullStack::_index_modelviewCullingStack `[protected]`

CullingStack osg::CullStack::_modelviewCullingStack `[protected]`

MatrixStack osg::CullStack::_modelviewStack `[protected]`

MatrixStack osg::CullStack::_MVPW_Stack `[protected]`

ShadowVolumeOccluderList osg::CullStack::_occluderList `[protected]`

CullingStack osg::CullStack::_projectionCullingStack `[protected]`

MatrixStack osg::CullStack::_projectionStack `[protected]`

MatrixList osg::CullStack::_reuseMatrixList `[protected]`

ViewportStack osg::CullStack::_viewportStack `[protected]`

The documentation for this class was generated from the following files:

- CullStack
- CullStack.cpp