openscenegraph
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
osg::CullStack Class Reference
Inheritance diagram for osg::CullStack:
osg::CullSettings osg::CollectOccludersVisitor osgUtil::CullVisitor

Public Types

typedef std::vector
< ShadowVolumeOccluder > 
OccluderList
typedef std::vector< CullingSet > CullingStack
- 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 }
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)
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, Transform::ReferenceFrame referenceFrame)
void popModelViewMatrix ()
float getFrustumVolume ()
float pixelSize (const Vec3 &v, float radius) const
float pixelSize (const BoundingSphere &bs) const
float clampedPixelSize (const Vec3 &v, float radius) const
float clampedPixelSize (const BoundingSphere &bs) const
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 & getReferenceViewPoint () const
void pushReferenceViewPoint (const osg::Vec3 &viewPoint)
void popReferenceViewPoint ()
const osg::Vec3 & getEyeLocal () const
const osg::Vec3 & getViewPointLocal () const
const osg::Vec3 getUpLocal () const
const osg::Vec3 getLookVectorLocal () const
- Public Member Functions inherited from osg::CullSettings
 CullSettings ()
 CullSettings (ArgumentParser &arguments)
 CullSettings (const CullSettings &cs)
virtual ~CullSettings ()
CullSettings & operator= (const CullSettings &settings)
virtual void setDefaults ()
void setInheritanceMask (InheritanceMask mask)
InheritanceMask getInheritanceMask () const
void setCullSettings (const CullSettings &settings)
virtual void inheritCullSettings (const CullSettings &settings)
virtual void inheritCullSettings (const CullSettings &settings, unsigned int inheritanceMask)
void readEnvironmentalVariables ()
void readCommandLine (ArgumentParser &arguments)
void setInheritanceMaskActionOnAttributeSetting (InheritanceMaskActionOnAttributeSetting action)
InheritanceMaskActionOnAttributeSetting getInheritanceMaskActionOnAttributeSetting () const
void applyMaskAction (unsigned int maskBit)
void setImpostorsActive (bool active)
bool getImpostorsActive () const
void setImpostorPixelErrorThreshold (float numPixels)
float getImpostorPixelErrorThreshold () const
void setDepthSortImpostorSprites (bool doDepthSort)
bool getDepthSortImpostorSprites () const
void setNumberOfFrameToKeepImpostorSprites (int numFrames)
int getNumberOfFrameToKeepImpostorSprites () const
void setComputeNearFarMode (ComputeNearFarMode cnfm)
ComputeNearFarMode getComputeNearFarMode () const
void setNearFarRatio (double ratio)
double getNearFarRatio () const
void setCullingMode (CullingMode mode)
CullingMode getCullingMode () const
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)
float getLODScale () const
void setSmallFeatureCullingPixelSize (float value)
float getSmallFeatureCullingPixelSize () const
void setClampProjectionMatrixCallback (ClampProjectionMatrixCallback *cpmc)
ClampProjectionMatrixCallback * getClampProjectionMatrixCallback ()
const
ClampProjectionMatrixCallback * 
getClampProjectionMatrixCallback () const
void write (std::ostream &out)

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 computeFrustumVolume ()
osg::RefMatrix * createOrReuseMatrix (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

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

Constructor & Destructor Documentation

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

Member Function Documentation

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.

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(), and osg::BoundingSphereImpl< VT >::radius().

void osg::CullStack::computeFrustumVolume ( )
protected
RefMatrix * osg::CullStack::createOrReuseMatrix ( const osg::Matrix &  value)
inlineprotected
void osg::CullStack::disableAndPushOccludersCurrentMask ( NodePath &  nodePath)
inline
CullingStack& osg::CullStack::getClipSpaceCullingStack ( )
inline
CullingSet& osg::CullStack::getCurrentCullingSet ( )
inline
const CullingSet& osg::CullStack::getCurrentCullingSet ( ) const
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
ShadowVolumeOccluderList& osg::CullStack::getOccluderList ( )
inline
const ShadowVolumeOccluderList& osg::CullStack::getOccluderList ( ) const
inline
CullingStack& osg::CullStack::getProjectionCullingStack ( )
inline
osg::RefMatrix * osg::CullStack::getProjectionMatrix ( )
inline
const osg::Vec3& osg::CullStack::getReferenceViewPoint ( ) const
inline
const osg::Vec3 osg::CullStack::getUpLocal ( ) const
inline
const osg::Vec3& osg::CullStack::getViewPointLocal ( ) const
inline
osg::Viewport * osg::CullStack::getViewport ( )
inline
osg::Matrix osg::CullStack::getWindowMatrix ( )
inline
bool osg::CullStack::isCulled ( const std::vector< Vec3 > &  vertices)
inline
bool osg::CullStack::isCulled ( const BoundingBox &  bb)
inline
bool osg::CullStack::isCulled ( const BoundingSphere &  bs)
inline
bool osg::CullStack::isCulled ( const osg::Node &  node)
inline
float osg::CullStack::pixelSize ( const Vec3 &  v,
float  radius 
) const
inline

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

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

Compute the pixel size of the bounding sphere.

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

void osg::CullStack::popCullingSet ( )
void osg::CullStack::popCurrentMask ( )
inline
void osg::CullStack::popModelViewMatrix ( )
void osg::CullStack::popOccludersCurrentMask ( NodePath &  nodePath)
inline
void osg::CullStack::popProjectionMatrix ( )

Reimplemented in osgUtil::CullVisitor.

void osg::CullStack::popReferenceViewPoint ( )
inline
void osg::CullStack::popViewport ( )
void osg::CullStack::pushCullingSet ( )
void osg::CullStack::pushCurrentMask ( )
inline
void osg::CullStack::pushModelViewMatrix ( osg::RefMatrix *  matrix,
Transform::ReferenceFrame  referenceFrame 
)
void osg::CullStack::pushProjectionMatrix ( osg::RefMatrix *  matrix)
void osg::CullStack::pushReferenceViewPoint ( const osg::Vec3 &  viewPoint)
inline
void osg::CullStack::pushViewport ( osg::Viewport *  viewport)
void osg::CullStack::reset ( )
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

Referenced by createOrReuseMatrix().

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

Referenced by getModelViewMatrix().

MatrixStack osg::CullStack::_MVPW_Stack
protected

Referenced by getMVPW().

ShadowVolumeOccluderList osg::CullStack::_occluderList
protected
CullingStack osg::CullStack::_projectionCullingStack
protected
MatrixStack osg::CullStack::_projectionStack
protected
EyePointStack osg::CullStack::_referenceViewPoints
protected
MatrixList osg::CullStack::_reuseMatrixList
protected

Referenced by createOrReuseMatrix().

EyePointStack osg::CullStack::_viewPointStack
protected
ViewportStack osg::CullStack::_viewportStack
protected

Referenced by getViewport(), and getWindowMatrix().


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