From 098fafc1985804a38471ecfdca7895dfdab73bf2 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 27 Jul 2005 13:38:15 +0000 Subject: [PATCH] From Pavel Moloshtan, setting of the cull traversal mask which visiting camera subgraphs. (with small tweak from Robert Osfield to remove compile warnings.) --- src/osgUtil/CullVisitor.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/osgUtil/CullVisitor.cpp b/src/osgUtil/CullVisitor.cpp index 6b6c41a75..f91ed6ffe 100644 --- a/src/osgUtil/CullVisitor.cpp +++ b/src/osgUtil/CullVisitor.cpp @@ -1110,12 +1110,23 @@ void CullVisitor::apply(osg::CameraNode& camera) // set the current renderbin to be the newly created stage. setCurrentRenderBin(rtts.get()); + // set the cull traversal mask of camera node + osg::Node::NodeMask saved_mask = getCullMask(); + if (camera.getInheritanceMask() & CULL_MASK) + { + setTraversalMask(camera.getCullMask()); + } // traverse the subgraph { handle_cull_callbacks_and_traverse(camera); } + // restore the cull traversal mask of camera node + if (camera.getInheritanceMask() & CULL_MASK) + { + setTraversalMask(saved_mask); + } // restore the previous renderbin. setCurrentRenderBin(previousRenderBin); @@ -1233,7 +1244,7 @@ void CullVisitor::apply(osg::CameraNode& camera) { osg::CameraNode::BufferComponent buffer = itr->first; - osg::CameraNode::Attachment& attachment = itr->second; + // osg::CameraNode::Attachment& attachment = itr->second; switch(buffer) { case(osg::CameraNode::DEPTH_BUFFER):