|
void DraggerContainer::traverse( osg::NodeVisitor& nv )
{
if ( m_dragger.valid() )
{
if ( m_active && nv.getVisitorType()==osg::NodeVisitor::CULL_VISITOR )
{
osgUtil::CullVisitor* cv = static_cast<osgUtil::CullVisitor*>(&nv);
float pixelSize = cv->pixelSize(m_dragger->getBound().center(), 0.48f);
if ( pixelSize!=m_draggerSize )
{
float pixelScale = pixelSize>0.0f ? m_draggerSize/pixelSize : 1.0f;
osg::Vec3d scaleFactor(pixelScale, pixelScale, pixelScale);
osg::Vec3 trans = m_dragger->getMatrix().getTrans();
m_dragger->setMatrix( osg::Matrix::scale(scaleFactor) * osg::Matrix::translate(trans) );
}
}
}
osg::Group::traverse(nv);
}
这个函数作用是什么,把它去掉之后,拾取轴的时候变得快了,真的不知道这有什么用?求解
|
|