From David Callu, added getOrCreateScene method, made contractors protected.
From Robert Osfield, made getOrCreateScene protected and made View a friend of Scene to all it to construct Scene objects itself.
This commit is contained in:
@@ -52,7 +52,7 @@ void Scene::setSceneData(osg::Node* node)
|
||||
if (_databasePager.valid())
|
||||
{
|
||||
// register any PagedLOD that need to be tracked in the scene graph
|
||||
_databasePager->registerPagedLODs(node);
|
||||
if (node) _databasePager->registerPagedLODs(node);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,3 +85,16 @@ Scene* Scene::getScene(osg::Node* node)
|
||||
return 0;
|
||||
}
|
||||
|
||||
Scene* Scene::getOrCreateScene(osg::Node* node)
|
||||
{
|
||||
if (!node) return 0;
|
||||
|
||||
osgViewer::Scene* scene = getScene(node);
|
||||
if (!scene)
|
||||
{
|
||||
scene = new Scene;
|
||||
scene->setSceneData(node);
|
||||
}
|
||||
|
||||
return scene;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user