15#define OSG_CULLSTACK 1
95 inline bool isCulled(
const std::vector<Vec3>& vertices)
168 return osg::Vec3(matrix(0,1),matrix(1,1),matrix(2,1));
174 return osg::Vec3(-matrix(0,2),-matrix(1,2),-matrix(2,2));
222 typedef std::vector< osg::ref_ptr<osg::RefMatrix> >
MatrixList;
The core osg library provides the basic scene graph classes such as Nodes, State and Drawables,...
Definition AlphaFunc:19
Vec3f Vec3
Definition Vec3:21
BoundingBoxd BoundingBox
Definition BoundingBox:257
BoundingSphered BoundingSphere
Definition BoundingSphere:308
Matrixd Matrix
Definition Matrix:27
std::vector< Node * > NodePath
A vector of Nodes pointers which is used to describe the path from a root node to a descendant.
Definition Node:47
std::vector< ShadowVolumeOccluder > ShadowVolumeOccluderList
A list of ShadowVolumeOccluder, used by CollectOccluderVisitor and CullVistor's.
Definition ShadowVolumeOccluder:125
RefMatrixd RefMatrix
Definition Matrix:28
vec_type & center()
Returns the center of the bounding sphere.
Definition BoundingSphere:77
value_type & radius()
Returns the radius of the bounding sphere.
Definition BoundingSphere:83
bool valid() const
Returns true if the bounding box extents are valid, false otherwise.
Definition BoundingBox:86
A CullingSet class which contains a frustum and a list of occluders.
Definition CullingSet:30
Definition CullSettings:28
void pushCurrentMask()
Definition CullStack:123
MatrixStack _modelviewStack
Definition CullStack:196
MatrixStack & getModelViewStack()
Definition CullStack:182
const osg::RefMatrix * getMVPW()
Definition CullStack:274
const osg::Vec3 & getViewPointLocal() const
Definition CullStack:163
const ShadowVolumeOccluderList & getOccluderList() const
Definition CullStack:47
fast_back_stack< ref_ptr< RefMatrix > > MatrixStack
Definition CullStack:177
const osg::Vec3 getUpLocal() const
Definition CullStack:165
fast_back_stack< ref_ptr< Viewport > > ViewportStack
Definition CullStack:199
void pushProjectionMatrix(osg::RefMatrix *matrix)
MatrixStack & getProjectionStack()
Definition CullStack:179
float clampedPixelSize(const Vec3 &v, float radius) const
Compute the pixel size of an object at position v, with specified radius.
Definition CullStack:74
MatrixList _reuseMatrixList
Definition CullStack:223
unsigned int _currentReuseMatrixIndex
Definition CullStack:224
const osg::Vec3 getLookVectorLocal() const
Definition CullStack:171
void computeFrustumVolume()
osg::Viewport * getViewport()
Definition CullStack:231
void popProjectionMatrix()
EyePointStack _eyePointStack
Definition CullStack:204
std::vector< ShadowVolumeOccluder > OccluderList
Definition CullStack:38
osg::RefMatrix * getModelViewMatrix()
Definition CullStack:241
CullingStack _clipspaceCullingStack
Definition CullStack:207
float clampedPixelSize(const BoundingSphere &bs) const
Compute the pixel size of the bounding sphere.
Definition CullStack:80
osg::Matrix getWindowMatrix() const
Definition CullStack:261
CullStack(const CullStack &cs)
CullingSet & getCurrentCullingSet()
Definition CullStack:142
CullingStack & getClipSpaceCullingStack()
Definition CullStack:136
void pushReferenceViewPoint(const osg::Vec3 &viewPoint)
Definition CullStack:158
MatrixStack _projectionStack
Definition CullStack:194
ShadowVolumeOccluderList & getOccluderList()
Definition CullStack:46
float getFrustumVolume()
Definition CullStack:58
EyePointStack _referenceViewPoints
Definition CullStack:203
ViewportStack _viewportStack
Definition CullStack:200
const osg::Vec3 & getReferenceViewPoint() const
Definition CullStack:157
osg::RefMatrix * createOrReuseMatrix(const osg::Matrix &value)
Definition CullStack:292
unsigned int _bbCornerNear
Definition CullStack:217
void popModelViewMatrix()
CullingStack & getProjectionCullingStack()
Definition CullStack:138
const MatrixStack & getMVPWStack() const
Definition CullStack:186
std::vector< osg::ref_ptr< osg::RefMatrix > > MatrixList
Definition CullStack:222
const MatrixStack & getModelViewStack() const
Definition CullStack:183
bool isCulled(const std::vector< Vec3 > &vertices)
Definition CullStack:95
MatrixStack & getMVPWStack()
Definition CullStack:185
ShadowVolumeOccluderList _occluderList
Definition CullStack:191
float pixelSize(const BoundingSphere &bs) const
Compute the pixel size of the bounding sphere.
Definition CullStack:68
ref_ptr< osg::RefMatrix > _identity
Definition CullStack:220
unsigned int _index_modelviewCullingStack
Definition CullStack:211
void disableAndPushOccludersCurrentMask(NodePath &nodePath)
Definition CullStack:85
MatrixStack _MVPW_Stack
Definition CullStack:197
void popOccludersCurrentMask(NodePath &nodePath)
Definition CullStack:90
void setOccluderList(const ShadowVolumeOccluderList &svol)
Definition CullStack:45
CullingStack _projectionCullingStack
Definition CullStack:208
unsigned int _bbCornerFar
Definition CullStack:218
float _frustumVolume
Definition CullStack:215
EyePointStack _viewPointStack
Definition CullStack:205
const CullingSet & getCurrentCullingSet() const
Definition CullStack:143
void popCurrentMask()
Definition CullStack:128
osg::RefMatrix * getProjectionMatrix()
Definition CullStack:251
void pushModelViewMatrix(osg::RefMatrix *matrix, Transform::ReferenceFrame referenceFrame)
bool isCulled(const BoundingSphere &bs)
Definition CullStack:105
bool isCulled(const BoundingBox &bb)
Definition CullStack:100
fast_back_stack< Vec3 > EyePointStack
Definition CullStack:202
bool isCulled(const osg::Node &node)
Definition CullStack:110
CullingStack & getModelViewCullingStack()
Definition CullStack:140
float pixelSize(const Vec3 &v, float radius) const
Compute the pixel size of an object at position v, with specified radius.
Definition CullStack:62
void pushViewport(osg::Viewport *viewport)
void popReferenceViewPoint()
Definition CullStack:159
const osg::Vec3 & getEyeLocal() const
Definition CullStack:161
std::vector< CullingSet > CullingStack
Definition CullStack:134
CullingSet * _back_modelviewCullingStack
Definition CullStack:212
const MatrixStack & getProjectionStack() const
Definition CullStack:180
CullingStack _modelviewCullingStack
Definition CullStack:210
Simple stack implementation that keeps the back() cached locally for fast access rather than at the b...
Definition fast_back_stack:31
void set(const Matrixd &rhs)
Definition Matrixd:71
Base class for all internal nodes in the scene graph.
Definition Node:72
bool isCullingActive() const
Return true if this node can be culled by view frustum, occlusion or small feature culling during the...
Definition Node:337
const BoundingSphere & getBound() const
Definition Node:425
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
ReferenceFrame
Definition Transform:98
Encapsulate OpenGL glViewport.
Definition Viewport:24
const osg::Matrix computeWindowMatrix() const
Compute the Window Matrix which takes projected coords into Window coordinates.
Definition Viewport:129
#define OSG_EXPORT
Definition Export:39