OpenSceneGraph 3.6.5
osg::CullStack Class Reference

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

#include <CullStack>

Inheritance diagram for osg::CullStack:

Public Types

typedef std::vector< ShadowVolumeOccluderOccluderList
typedef std::vector< CullingSetCullingStack
typedef fast_back_stack< ref_ptr< RefMatrix > > MatrixStack
Public Types inherited from osg::CullSettings
enum  VariablesMask {
  COMPUTE_NEAR_FAR_MODE = (0x1 << 0) , CULLING_MODE = (0x1 << 1) , LOD_SCALE = (0x1 << 2) , SMALL_FEATURE_CULLING_PIXEL_SIZE = (0x1 << 3) ,
  CLAMP_PROJECTION_MATRIX_CALLBACK = (0x1 << 4) , NEAR_FAR_RATIO = (0x1 << 5) , IMPOSTOR_ACTIVE = (0x1 << 6) , DEPTH_SORT_IMPOSTOR_SPRITES = (0x1 << 7) ,
  IMPOSTOR_PIXEL_ERROR_THRESHOLD = (0x1 << 8) , NUM_FRAMES_TO_KEEP_IMPOSTORS_SPRITES = (0x1 << 9) , CULL_MASK = (0x1 << 10) , CULL_MASK_LEFT = (0x1 << 11) ,
  CULL_MASK_RIGHT = (0x1 << 12) , CLEAR_COLOR = (0x1 << 13) , CLEAR_MASK = (0x1 << 14) , LIGHTING_MODE = (0x1 << 15) ,
  LIGHT = (0x1 << 16) , DRAW_BUFFER = (0x1 << 17) , READ_BUFFER = (0x1 << 18) , NO_VARIABLES = 0x00000000 ,
  ALL_VARIABLES = 0x7FFFFFFF
}
enum  InheritanceMaskActionOnAttributeSetting { DISABLE_ASSOCIATED_INHERITANCE_MASK_BIT , DO_NOT_MODIFY_INHERITANCE_MASK }
enum  ComputeNearFarMode { DO_NOT_COMPUTE_NEAR_FAR = 0 , COMPUTE_NEAR_FAR_USING_BOUNDING_VOLUMES , COMPUTE_NEAR_FAR_USING_PRIMITIVES , COMPUTE_NEAR_USING_PRIMITIVES }
enum  CullingModeValues {
  NO_CULLING = 0x0 , VIEW_FRUSTUM_SIDES_CULLING = 0x1 , NEAR_PLANE_CULLING = 0x2 , FAR_PLANE_CULLING = 0x4 ,
  VIEW_FRUSTUM_CULLING , SMALL_FEATURE_CULLING = 0x8 , SHADOW_OCCLUSION_CULLING = 0x10 , CLUSTER_CULLING = 0x20 ,
  DEFAULT_CULLING , ENABLE_ALL_CULLING
}
typedef int InheritanceMask
typedef int CullingMode

Public Member Functions

 CullStack ()
 CullStack (const CullStack &cs)
 ~CullStack ()
void reset ()
void pushCullingSet ()
void popCullingSet ()
void setOccluderList (const ShadowVolumeOccluderList &svol)
ShadowVolumeOccluderListgetOccluderList ()
const ShadowVolumeOccluderListgetOccluderList () const
void pushViewport (osg::Viewport *viewport)
void popViewport ()
void pushProjectionMatrix (osg::RefMatrix *matrix)
void popProjectionMatrix ()
void pushModelViewMatrix (osg::RefMatrix *matrix, Transform::ReferenceFrame referenceFrame)
void popModelViewMatrix ()
float getFrustumVolume ()
float pixelSize (const Vec3 &v, float radius) const
 Compute the pixel size of an object at position v, with specified radius.
float pixelSize (const BoundingSphere &bs) const
 Compute the pixel size of the bounding sphere.
float clampedPixelSize (const Vec3 &v, float radius) const
 Compute the pixel size of an object at position v, with specified radius.
float clampedPixelSize (const BoundingSphere &bs) const
 Compute the pixel size 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 ()
CullingStackgetClipSpaceCullingStack ()
CullingStackgetProjectionCullingStack ()
CullingStackgetModelViewCullingStack ()
CullingSetgetCurrentCullingSet ()
const CullingSetgetCurrentCullingSet () const
osg::ViewportgetViewport ()
const osg::ViewportgetViewport () const
osg::RefMatrixgetModelViewMatrix ()
const osg::RefMatrixgetModelViewMatrix () const
osg::RefMatrixgetProjectionMatrix ()
const osg::RefMatrixgetProjectionMatrix () const
osg::Matrix getWindowMatrix () const
const osg::RefMatrixgetMVPW ()
const osg::Vec3getReferenceViewPoint () const
void pushReferenceViewPoint (const osg::Vec3 &viewPoint)
void popReferenceViewPoint ()
const osg::Vec3getEyeLocal () const
const osg::Vec3getViewPointLocal () const
const osg::Vec3 getUpLocal () const
const osg::Vec3 getLookVectorLocal () const
MatrixStackgetProjectionStack ()
const MatrixStackgetProjectionStack () const
MatrixStackgetModelViewStack ()
const MatrixStackgetModelViewStack () const
MatrixStackgetMVPWStack ()
const MatrixStackgetMVPWStack () const
Public Member Functions inherited from osg::CullSettings
 CullSettings ()
 CullSettings (ArgumentParser &arguments)
 CullSettings (const CullSettings &cs)
virtual ~CullSettings ()
CullSettingsoperator= (const CullSettings &settings)
virtual void setDefaults ()
void setInheritanceMask (InheritanceMask mask)
 Set the inheritance mask used in inheritCullSettings to control which variables get overwritten by the passed in CullSettings object.
InheritanceMask getInheritanceMask () const
 Get the inheritance mask used in inheritCullSettings to control which variables get overwritten by the passed in CullSettings object.
void setCullSettings (const CullSettings &settings)
 Set the local cull settings values from specified CullSettings object.
virtual void inheritCullSettings (const CullSettings &settings)
 Inherit the local cull settings variable from specified CullSettings object, according to the inheritance mask.
virtual void inheritCullSettings (const CullSettings &settings, unsigned int inheritanceMask)
 Inherit the local cull settings variable from specified CullSettings object, according to the inheritance mask.
void readEnvironmentalVariables ()
 read the environmental variables.
void readCommandLine (ArgumentParser &arguments)
 read the commandline arguments.
void setInheritanceMaskActionOnAttributeSetting (InheritanceMaskActionOnAttributeSetting action)
InheritanceMaskActionOnAttributeSetting getInheritanceMaskActionOnAttributeSetting () const
void applyMaskAction (unsigned int maskBit)
 Apply the action, specified by the InheritanceMaskActionOnAttributeSetting, to apply to the inheritance bit mask.
void setImpostorsActive (bool active)
 Switch the creation of Impostors on or off.
bool getImpostorsActive () const
 Get whether impostors are active or not.
void setImpostorPixelErrorThreshold (float numPixels)
 Set the impostor error threshold.
float getImpostorPixelErrorThreshold () const
 Get the impostor error threshold.
void setDepthSortImpostorSprites (bool doDepthSort)
 Set whether ImpostorSprite's should be placed in a depth sorted bin for rendering.
bool getDepthSortImpostorSprites () const
 Get whether ImpostorSprite's are depth sorted bin for rendering.
void setNumberOfFrameToKeepImpostorSprites (int numFrames)
 Set the number of frames that an ImpostorSprite is kept whilst not being beyond, before being recycled.
int getNumberOfFrameToKeepImpostorSprites () const
 Get the number of frames that an ImpostorSprite is kept whilst not being beyond, before being recycled.
void setComputeNearFarMode (ComputeNearFarMode cnfm)
ComputeNearFarMode getComputeNearFarMode () const
void setNearFarRatio (double ratio)
double getNearFarRatio () const
void setCullingMode (CullingMode mode)
 Set the culling mode for the CullVisitor to use.
CullingMode getCullingMode () const
 Returns the current CullingMode.
void setCullMask (osg::Node::NodeMask nm)
osg::Node::NodeMask getCullMask () const
void setCullMaskLeft (osg::Node::NodeMask nm)
osg::Node::NodeMask getCullMaskLeft () const
void setCullMaskRight (osg::Node::NodeMask nm)
osg::Node::NodeMask getCullMaskRight () const
void setLODScale (float scale)
 Set the LOD bias for the CullVisitor to use.
float getLODScale () const
 Get the LOD bias.
void setSmallFeatureCullingPixelSize (float value)
 Threshold at which small features are culled.
float getSmallFeatureCullingPixelSize () const
 Get the Small Feature Culling Pixel Size.
void setClampProjectionMatrixCallback (ClampProjectionMatrixCallback *cpmc)
 set the ClampProjectionMatrixCallback.
ClampProjectionMatrixCallbackgetClampProjectionMatrixCallback ()
 get the non const ClampProjectionMatrixCallback.
const ClampProjectionMatrixCallbackgetClampProjectionMatrixCallback () const
 get the const ClampProjectionMatrixCallback.
void write (std::ostream &out)
 Write out internal settings of CullSettings.

Protected Types

typedef fast_back_stack< ref_ptr< Viewport > > ViewportStack
typedef fast_back_stack< Vec3EyePointStack
typedef std::vector< osg::ref_ptr< osg::RefMatrix > > MatrixList

Protected Member Functions

void computeFrustumVolume ()
osg::RefMatrixcreateOrReuseMatrix (const osg::Matrix &value)

Protected Attributes

ShadowVolumeOccluderList _occluderList
MatrixStack _projectionStack
MatrixStack _modelviewStack
MatrixStack _MVPW_Stack
ViewportStack _viewportStack
EyePointStack _referenceViewPoints
EyePointStack _eyePointStack
EyePointStack _viewPointStack
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
Protected Attributes inherited from osg::CullSettings
InheritanceMask _inheritanceMask
InheritanceMaskActionOnAttributeSetting _inheritanceMaskActionOnAttributeSetting
ComputeNearFarMode _computeNearFar
CullingMode _cullingMode
float _LODScale
float _smallFeatureCullingPixelSize
ref_ptr< ClampProjectionMatrixCallback_clampProjectionMatrixCallback
double _nearFarRatio
bool _impostorActive
bool _depthSortImpostorSprites
float _impostorPixelErrorThreshold
int _numFramesToKeepImpostorSprites
Node::NodeMask _cullMask
Node::NodeMask _cullMaskLeft
Node::NodeMask _cullMaskRight

Detailed Description

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

Member Typedef Documentation

◆ CullingStack

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

◆ EyePointStack

◆ MatrixList

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

◆ MatrixStack

◆ OccluderList

◆ ViewportStack

Constructor & Destructor Documentation

◆ CullStack() [1/2]

osg::CullStack::CullStack ( )

Referenced by CullStack().

◆ CullStack() [2/2]

osg::CullStack::CullStack ( const CullStack & cs)

References CullStack().

◆ ~CullStack()

osg::CullStack::~CullStack ( )

Member Function Documentation

◆ clampedPixelSize() [1/2]

float osg::CullStack::clampedPixelSize ( const BoundingSphere & bs) const
inline

Compute the pixel size of the bounding sphere.

fabs()ed to always be positive.

References osg::BoundingSphereImpl< VT >::center(), clampedPixelSize(), and osg::BoundingSphereImpl< VT >::radius().

◆ clampedPixelSize() [2/2]

float osg::CullStack::clampedPixelSize ( const Vec3 & v,
float radius ) const
inline

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

fabs()ed to always be positive.

References getCurrentCullingSet().

Referenced by clampedPixelSize().

◆ computeFrustumVolume()

void osg::CullStack::computeFrustumVolume ( )
protected

Referenced by getFrustumVolume().

◆ createOrReuseMatrix()

RefMatrix * osg::CullStack::createOrReuseMatrix ( const osg::Matrix & value)
inlineprotected

◆ disableAndPushOccludersCurrentMask()

void osg::CullStack::disableAndPushOccludersCurrentMask ( NodePath & nodePath)
inline

◆ getClipSpaceCullingStack()

CullingStack & osg::CullStack::getClipSpaceCullingStack ( )
inline

◆ getCurrentCullingSet() [1/2]

◆ getCurrentCullingSet() [2/2]

const CullingSet & osg::CullStack::getCurrentCullingSet ( ) const
inline

◆ getEyeLocal()

const osg::Vec3 & osg::CullStack::getEyeLocal ( ) const
inline

◆ getFrustumVolume()

float osg::CullStack::getFrustumVolume ( )
inline

◆ getLookVectorLocal()

const osg::Vec3 osg::CullStack::getLookVectorLocal ( ) const
inline

References _modelviewStack.

◆ getModelViewCullingStack()

CullingStack & osg::CullStack::getModelViewCullingStack ( )
inline

◆ getModelViewMatrix() [1/2]

osg::RefMatrix * osg::CullStack::getModelViewMatrix ( )
inline

References _identity, and _modelviewStack.

Referenced by getMVPW().

◆ getModelViewMatrix() [2/2]

const osg::RefMatrix * osg::CullStack::getModelViewMatrix ( ) const
inline

References _identity, and _modelviewStack.

◆ getModelViewStack() [1/2]

MatrixStack & osg::CullStack::getModelViewStack ( )
inline

References _modelviewStack.

◆ getModelViewStack() [2/2]

const MatrixStack & osg::CullStack::getModelViewStack ( ) const
inline

References _modelviewStack.

◆ getMVPW()

◆ getMVPWStack() [1/2]

MatrixStack & osg::CullStack::getMVPWStack ( )
inline

References _MVPW_Stack.

◆ getMVPWStack() [2/2]

const MatrixStack & osg::CullStack::getMVPWStack ( ) const
inline

References _MVPW_Stack.

◆ getOccluderList() [1/2]

ShadowVolumeOccluderList & osg::CullStack::getOccluderList ( )
inline

References _occluderList.

◆ getOccluderList() [2/2]

const ShadowVolumeOccluderList & osg::CullStack::getOccluderList ( ) const
inline

References _occluderList.

◆ getProjectionCullingStack()

CullingStack & osg::CullStack::getProjectionCullingStack ( )
inline

◆ getProjectionMatrix() [1/2]

osg::RefMatrix * osg::CullStack::getProjectionMatrix ( )
inline

References _identity, and _projectionStack.

Referenced by getMVPW().

◆ getProjectionMatrix() [2/2]

const osg::RefMatrix * osg::CullStack::getProjectionMatrix ( ) const
inline

References _identity, and _projectionStack.

◆ getProjectionStack() [1/2]

MatrixStack & osg::CullStack::getProjectionStack ( )
inline

References _projectionStack.

◆ getProjectionStack() [2/2]

const MatrixStack & osg::CullStack::getProjectionStack ( ) const
inline

References _projectionStack.

◆ getReferenceViewPoint()

const osg::Vec3 & osg::CullStack::getReferenceViewPoint ( ) const
inline

References _referenceViewPoints.

◆ getUpLocal()

const osg::Vec3 osg::CullStack::getUpLocal ( ) const
inline

References _modelviewStack.

◆ getViewPointLocal()

const osg::Vec3 & osg::CullStack::getViewPointLocal ( ) const
inline

◆ getViewport() [1/2]

osg::Viewport * osg::CullStack::getViewport ( )
inline

References _viewportStack.

◆ getViewport() [2/2]

const osg::Viewport * osg::CullStack::getViewport ( ) const
inline

References _viewportStack.

◆ getWindowMatrix()

osg::Matrix osg::CullStack::getWindowMatrix ( ) const
inline

◆ isCulled() [1/4]

bool osg::CullStack::isCulled ( const BoundingBox & bb)
inline

◆ isCulled() [2/4]

bool osg::CullStack::isCulled ( const BoundingSphere & bs)
inline

◆ isCulled() [3/4]

bool osg::CullStack::isCulled ( const osg::Node & node)
inline

◆ isCulled() [4/4]

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

◆ pixelSize() [1/2]

float osg::CullStack::pixelSize ( const BoundingSphere & bs) const
inline

Compute the pixel size of the bounding sphere.

References osg::BoundingSphereImpl< VT >::center(), pixelSize(), and osg::BoundingSphereImpl< VT >::radius().

◆ pixelSize() [2/2]

float osg::CullStack::pixelSize ( const Vec3 & v,
float radius ) const
inline

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

References getCurrentCullingSet().

Referenced by pixelSize().

◆ popCullingSet()

void osg::CullStack::popCullingSet ( )

◆ popCurrentMask()

void osg::CullStack::popCurrentMask ( )
inline

◆ popModelViewMatrix()

void osg::CullStack::popModelViewMatrix ( )

◆ popOccludersCurrentMask()

void osg::CullStack::popOccludersCurrentMask ( NodePath & nodePath)
inline

◆ popProjectionMatrix()

void osg::CullStack::popProjectionMatrix ( )

◆ popReferenceViewPoint()

void osg::CullStack::popReferenceViewPoint ( )
inline

References _referenceViewPoints.

◆ popViewport()

void osg::CullStack::popViewport ( )

◆ pushCullingSet()

void osg::CullStack::pushCullingSet ( )

◆ pushCurrentMask()

void osg::CullStack::pushCurrentMask ( )
inline

◆ pushModelViewMatrix()

void osg::CullStack::pushModelViewMatrix ( osg::RefMatrix * matrix,
Transform::ReferenceFrame referenceFrame )

◆ pushProjectionMatrix()

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

◆ pushReferenceViewPoint()

void osg::CullStack::pushReferenceViewPoint ( const osg::Vec3 & viewPoint)
inline

References _referenceViewPoints.

◆ pushViewport()

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

◆ reset()

void osg::CullStack::reset ( )

◆ setOccluderList()

void osg::CullStack::setOccluderList ( const ShadowVolumeOccluderList & svol)
inline

References _occluderList.

Member Data Documentation

◆ _back_modelviewCullingStack

CullingSet* osg::CullStack::_back_modelviewCullingStack
protected

◆ _bbCornerFar

unsigned int osg::CullStack::_bbCornerFar
protected

◆ _bbCornerNear

unsigned int osg::CullStack::_bbCornerNear
protected

◆ _clipspaceCullingStack

CullingStack osg::CullStack::_clipspaceCullingStack
protected

◆ _currentReuseMatrixIndex

unsigned int osg::CullStack::_currentReuseMatrixIndex
protected

Referenced by createOrReuseMatrix().

◆ _eyePointStack

EyePointStack osg::CullStack::_eyePointStack
protected

Referenced by getEyeLocal().

◆ _frustumVolume

float osg::CullStack::_frustumVolume
protected

Referenced by getFrustumVolume().

◆ _identity

◆ _index_modelviewCullingStack

unsigned int osg::CullStack::_index_modelviewCullingStack
protected

◆ _modelviewCullingStack

CullingStack osg::CullStack::_modelviewCullingStack
protected

◆ _modelviewStack

◆ _MVPW_Stack

MatrixStack osg::CullStack::_MVPW_Stack
protected

Referenced by getMVPW(), getMVPWStack(), and getMVPWStack().

◆ _occluderList

ShadowVolumeOccluderList osg::CullStack::_occluderList
protected

◆ _projectionCullingStack

CullingStack osg::CullStack::_projectionCullingStack
protected

◆ _projectionStack

◆ _referenceViewPoints

EyePointStack osg::CullStack::_referenceViewPoints
protected

◆ _reuseMatrixList

MatrixList osg::CullStack::_reuseMatrixList
protected

Referenced by createOrReuseMatrix().

◆ _viewPointStack

EyePointStack osg::CullStack::_viewPointStack
protected

Referenced by getViewPointLocal().

◆ _viewportStack

ViewportStack osg::CullStack::_viewportStack
protected

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

osg logo
Generated at Sun Jul 20 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.