void Viewer::updateTraversal()
{//主相机
if (_camera.valid() && _camera->getUpdateCallback()) _camera->accept(*_updateVisitor);
//从相机
for(unsigned int i=0; i<getNumSlaves(); ++i)
{ osg::Camera* camera = getSlave(i)._camera.get();
if (camera && camera->getUpdateCallback()) camera->accept(*_updateVisitor);
}
//主相机
if (_cameraManipulator.valid())
{ ……
_camera->setViewMatrix(_cameraManipulator->getInverseMatrix());
}
//从相机
updateSlaves();
}
void RenderStage::draw(osg::RenderInfo& renderInfo,RenderLeaf*& previous)
{
drawPreRenderStages(renderInfo,previous);
if (_camera && _camera->getPreDrawCallback())
{
// if we have a camera with a pre draw callback invoke it.
(*(_camera->getPreDrawCallback()))(renderInfo);
}
glFlush();
if (_camera && _camera->getPostDrawCallback())
{
// i