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:
@@ -276,7 +276,7 @@ void FixedFunctionTechnique::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
if (_volumeTile->getDirty()) _volumeTile->init();
|
||||
|
||||
osgUtil::UpdateVisitor* uv = dynamic_cast<osgUtil::UpdateVisitor*>(&nv);
|
||||
osgUtil::UpdateVisitor* uv = nv.asUpdateVisitor();
|
||||
if (uv)
|
||||
{
|
||||
update(uv);
|
||||
@@ -286,7 +286,7 @@ void FixedFunctionTechnique::traverse(osg::NodeVisitor& nv)
|
||||
}
|
||||
else if (nv.getVisitorType()==osg::NodeVisitor::CULL_VISITOR)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
osgUtil::CullVisitor* cv = nv.asCullVisitor();
|
||||
if (cv)
|
||||
{
|
||||
cull(cv);
|
||||
|
||||
@@ -163,7 +163,7 @@ class RTTCameraCullCallback : public osg::NodeCallback
|
||||
|
||||
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
osgUtil::CullVisitor* cv = nv->asCullVisitor();
|
||||
|
||||
cv->pushProjectionMatrix(_tileData->projectionMatrix.get());
|
||||
|
||||
@@ -937,7 +937,7 @@ class RTTBackfaceCameraCullCallback : public osg::NodeCallback
|
||||
|
||||
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
osgUtil::CullVisitor* cv = nv->asCullVisitor();
|
||||
|
||||
cv->pushProjectionMatrix(_tileData->projectionMatrix.get());
|
||||
|
||||
@@ -1157,7 +1157,7 @@ void MultipassTechnique::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
if (_volumeTile->getDirty()) _volumeTile->init();
|
||||
|
||||
osgUtil::UpdateVisitor* uv = dynamic_cast<osgUtil::UpdateVisitor*>(&nv);
|
||||
osgUtil::UpdateVisitor* uv = nv.asUpdateVisitor();
|
||||
if (uv)
|
||||
{
|
||||
update(uv);
|
||||
@@ -1167,7 +1167,7 @@ void MultipassTechnique::traverse(osg::NodeVisitor& nv)
|
||||
}
|
||||
else if (nv.getVisitorType()==osg::NodeVisitor::CULL_VISITOR)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
osgUtil::CullVisitor* cv = nv.asCullVisitor();
|
||||
if (cv)
|
||||
{
|
||||
cull(cv);
|
||||
|
||||
@@ -525,7 +525,7 @@ void RayTracedTechnique::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
if (_volumeTile->getDirty()) _volumeTile->init();
|
||||
|
||||
osgUtil::UpdateVisitor* uv = dynamic_cast<osgUtil::UpdateVisitor*>(&nv);
|
||||
osgUtil::UpdateVisitor* uv = nv.asUpdateVisitor();
|
||||
if (uv)
|
||||
{
|
||||
update(uv);
|
||||
@@ -535,7 +535,7 @@ void RayTracedTechnique::traverse(osg::NodeVisitor& nv)
|
||||
}
|
||||
else if (nv.getVisitorType()==osg::NodeVisitor::CULL_VISITOR)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
osgUtil::CullVisitor* cv = nv.asCullVisitor();
|
||||
if (cv)
|
||||
{
|
||||
cull(cv);
|
||||
|
||||
@@ -33,7 +33,7 @@ class RTTCameraCullCallback : public osg::NodeCallback
|
||||
|
||||
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
|
||||
osgUtil::CullVisitor* cv = nv->asCullVisitor();
|
||||
|
||||
_volumeScene->osg::Group::traverse(*nv);
|
||||
|
||||
@@ -135,7 +135,7 @@ TileData* VolumeScene::getTileData(osgUtil::CullVisitor* cv, osgVolume::VolumeTi
|
||||
|
||||
void VolumeScene::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
osgUtil::CullVisitor* cv = nv.asCullVisitor();
|
||||
if (!cv)
|
||||
{
|
||||
Group::traverse(nv);
|
||||
|
||||
@@ -63,7 +63,7 @@ void VolumeTechnique::traverse(osg::NodeVisitor& nv)
|
||||
{
|
||||
if (_volumeTile->getDirty()) _volumeTile->init();
|
||||
|
||||
osgUtil::UpdateVisitor* uv = dynamic_cast<osgUtil::UpdateVisitor*>(&nv);
|
||||
osgUtil::UpdateVisitor* uv = nv.asUpdateVisitor();
|
||||
if (uv)
|
||||
{
|
||||
update(uv);
|
||||
@@ -73,7 +73,7 @@ void VolumeTechnique::traverse(osg::NodeVisitor& nv)
|
||||
}
|
||||
else if (nv.getVisitorType()==osg::NodeVisitor::CULL_VISITOR)
|
||||
{
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
osgUtil::CullVisitor* cv = nv.asCullVisitor();
|
||||
if (cv)
|
||||
{
|
||||
cull(cv);
|
||||
|
||||
Reference in New Issue
Block a user