Added osg::CollectOccludersVisitor which is a helper class for finding active

occluder in the view frustum, to be used as pre cull traversal.
This commit is contained in:
Robert Osfield
2002-06-10 13:50:25 +00:00
parent 348419219d
commit e1ba8a6292
9 changed files with 209 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
#include <osg/Group>
#include <osg/BoundingBox>
#include <osg/Transform>
#include <osg/OccluderNode>
#include <algorithm>
@@ -80,6 +81,14 @@ bool Group::addChild( Node *child )
);
}
if (child->getNumChildrenWithOccluderNodes()>0 ||
dynamic_cast<osg::OccluderNode*>(child))
{
setNumChildrenWithOccluderNodes(
getNumChildrenWithOccluderNodes()+1
);
}
return true;
}
else return false;
@@ -114,6 +123,14 @@ bool Group::removeChild( Node *child )
);
}
if (child->getNumChildrenWithOccluderNodes()>0 ||
dynamic_cast<osg::OccluderNode*>(child))
{
setNumChildrenWithOccluderNodes(
getNumChildrenWithOccluderNodes()-1
);
}
// note ref_ptr<> automatically handles decrementing child's reference count.
_children.erase(itr);
dirtyBound();