Updated calling of master camera's update callback

This commit is contained in:
Robert Osfield
2007-05-27 15:24:41 +00:00
parent 4e3e789acf
commit a49ec6e78d
2 changed files with 13 additions and 2 deletions

View File

@@ -78,6 +78,8 @@ void Scene::frameAdvance()
_frameStamp->setReferenceTime(osg::Timer::instance()->time_s());
_frameStamp->setFrameNumber(_frameStamp->getFrameNumber()+1);
_updateVisitor->setTraversalNumber(_frameStamp->getFrameNumber());
// osg::notify(osg::NOTICE)<<"Frame rate = "<<1.0/(_frameStamp->getReferenceTime()-previousTime)<<std::endl;
}
@@ -85,8 +87,6 @@ void Scene::frameUpdateTraversal()
{
if (!getSceneData()) return;
_updateVisitor->setTraversalNumber(_frameStamp->getFrameNumber());
getSceneData()->accept(*_updateVisitor);
if (_databasePager.valid())

View File

@@ -2056,6 +2056,17 @@ void Viewer::updateTraversal()
double beginUpdateTraversal = osg::Timer::instance()->delta_s(_startTick, osg::Timer::instance()->tick());
osgUtil::UpdateVisitor* uv = _scene.valid() ? _scene->getUpdateVisitor() : 0;
if (_camera.valid() && _camera->getUpdateCallback() && uv)
{
osg::NodeVisitor::TraversalMode tm = uv->getTraversalMode();
uv->setTraversalMode(osg::NodeVisitor::TRAVERSE_NONE);
_camera->accept(*uv);
uv->setTraversalMode(tm);
}
if (_scene.valid()) _scene->frameUpdateTraversal();
if (_cameraManipulator.valid())