From cc2a0290a4e8c3536ac1cf030f33e788014e2e71 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 19 Oct 2007 08:42:44 +0000 Subject: [PATCH] Fix for setting scene data after slaves have been added. --- src/osg/View.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/osg/View.cpp b/src/osg/View.cpp index cb63bc410..44a4144b6 100644 --- a/src/osg/View.cpp +++ b/src/osg/View.cpp @@ -156,7 +156,7 @@ void View::updateSlave(unsigned int i) slave._camera->setProjectionMatrix(_camera->getProjectionMatrix() * slave._projectionOffset); slave._camera->setViewMatrix(_camera->getViewMatrix() * slave._viewOffset); } - + slave._camera->inheritCullSettings(*_camera); if (slave._camera->getInheritanceMask() & osg::CullSettings::CLEAR_COLOR) slave._camera->setClearColor(_camera->getClearColor()); } @@ -169,6 +169,19 @@ bool View::addSlave(osg::Camera* camera, const osg::Matrix& projectionOffset, co unsigned int i = _slaves.size(); + if (useMastersSceneData) + { + camera->removeChildren(0,camera->getNumChildren()); + + if (_camera.valid()) + { + for(unsigned int i=0; _camera->getNumChildren(); ++i) + { + camera->addChild(_camera->getChild(i)); + } + } + } + _slaves.push_back(Slave(camera, projectionOffset, viewOffset, useMastersSceneData)); updateSlave(i);