Added asGroup() and asTransform() methods to osg::Node to downcast nodes

to these types without requiring an expensive dynamic_cast<>.

Also added asGeometry() to osg::Drawable for the same reasons.
This commit is contained in:
Robert Osfield
2002-09-12 15:34:31 +00:00
parent b5870857c4
commit f867dd81be
6 changed files with 33 additions and 2 deletions

View File

@@ -229,7 +229,7 @@ bool Group::computeBound() const
itr!=_children.end();
++itr)
{
const osg::Transform* transform = dynamic_cast<const osg::Transform*>(itr->get());
const osg::Transform* transform = (*itr)->asTransform();
if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE_TO_PARENTS)
{
bb.expandBy((*itr)->getBound());
@@ -244,7 +244,7 @@ bool Group::computeBound() const
itr!=_children.end();
++itr)
{
const osg::Transform* transform = dynamic_cast<const osg::Transform*>(itr->get());
const osg::Transform* transform = (*itr)->asTransform();
if (!transform || transform->getReferenceFrame()==osg::Transform::RELATIVE_TO_PARENTS)
{
_bsphere.expandRadiusBy((*itr)->getBound());