15#define OSG_CULLSTACK 1
58 inline float getFrustumVolume() {
if (_frustumVolume<0.0f) computeFrustumVolume();
return _frustumVolume; }
64 return getCurrentCullingSet().pixelSize(v,radius);
76 return getCurrentCullingSet().clampedPixelSize(v,radius);
87 getCurrentCullingSet().disableAndPushOccludersCurrentMask(nodePath);
92 getCurrentCullingSet().popOccludersCurrentMask(nodePath);
95 inline bool isCulled(
const std::vector<Vec3>& vertices)
97 return getCurrentCullingSet().isCulled(vertices);
102 return bb.
valid() && getCurrentCullingSet().isCulled(bb);
107 return getCurrentCullingSet().isCulled(bs);
114 return getCurrentCullingSet().isCulled(node.
getBound());
118 getCurrentCullingSet().resetCullingMask();
125 getCurrentCullingSet().pushCurrentMask();
130 getCurrentCullingSet().popCurrentMask();
167 const osg::Matrix& matrix = *_modelviewStack.back();
168 return osg::Vec3(matrix(0,1),matrix(1,1),matrix(2,1));
173 const osg::Matrix& matrix = *_modelviewStack.back();
174 return osg::Vec3(-matrix(0,2),-matrix(1,2),-matrix(2,2));
222 typedef std::vector< osg::ref_ptr<osg::RefMatrix> >
MatrixList;
Definition BoundingBox:34
bool valid() const
Definition BoundingBox:86
Definition BoundingSphere:35
vec_type & center()
Definition BoundingSphere:83
value_type & radius()
Definition BoundingSphere:89
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
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
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
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
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
void set(const Matrixd &rhs)
Definition Matrixd:71
bool isCullingActive() const
Definition Node:337
const BoundingSphere & getBound() const
Definition Node:425
const osg::Matrix computeWindowMatrix() const
Definition Viewport:129
Definition fast_back_stack:31
T & back()
Definition fast_back_stack:54
bool empty() const
Definition fast_back_stack:50
T * get() const
Definition ref_ptr:117
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
Vec3f Vec3
Definition Vec3:21
std::vector< Node * > NodePath
Definition Node:47
std::vector< ShadowVolumeOccluder > ShadowVolumeOccluderList
Definition ShadowVolumeOccluder:125
RefMatrixd RefMatrix
Definition Matrix:28
#define OSG_EXPORT
Definition osg/Export:39