Added asUpdate/Cull/EventVisitor and asCamera/asDrawable to osg::Object and usage of these within the code base to avoid dynamic_cast<> usage.

This commit is contained in:
Robert Osfield
2016-01-20 17:49:10 +00:00
parent 2e7cfe7efa
commit 8fc287c1b7
37 changed files with 118 additions and 63 deletions

View File

@@ -113,7 +113,7 @@ void Impostor::traverse(osg::NodeVisitor& nv)
return;
}
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
osgUtil::CullVisitor* cv = nv.asCullVisitor();
if (!cv)
{
LOD::traverse(nv);

View File

@@ -141,7 +141,7 @@ void LightPointNode::traverse(osg::NodeVisitor& nv)
t1 = timer.tick();
#endif
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
osgUtil::CullVisitor* cv = nv.asCullVisitor();
#ifdef USE_TIMER
t2 = timer.tick();

View File

@@ -1330,7 +1330,7 @@ void OverlayNode::traverse_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeV
return;
}
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
osgUtil::CullVisitor* cv = nv.asCullVisitor();
if (!cv)
{
Group::traverse(nv);
@@ -1384,7 +1384,7 @@ void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVis
return;
}
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
osgUtil::CullVisitor* cv = nv.asCullVisitor();
if (!cv)
{
Group::traverse(nv);