[osg-users] Distance to camera

Peter osgforum at tevs.eu
Mon Mar 9 09:47:22 PDT 2009


Hi all,

I'd like to make callback which compute the distance from LOD object to camera.
I tried this:


Code:

class DistanceCallback : public osg::NodeCallback 
{
public:
   virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
   {
      osg::LOD *lod = dynamic_cast<osg::LOD *> (node);
      nv->setVisitorType(osg::NodeVisitor::CULL_VISITOR);
      if (lod != NULL)
      {
         float distance = nv->getDistanceToEyePoint(lod->getCenter(),true);
         std::cout << distance << std::endl;
      }
      traverse(node, nv);
   }
};




but 0 is returned.

I also tried this:


Code:

class DistanceCallback : public osg::NodeCallback 
{
public:
   virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
   {
      osg::LOD *lod = dynamic_cast<osg::LOD *> (node);
      if (lod != NULL)
      {
         osgUtil::CullVisitor* visitor = new osgUtil::CullVisitor();
         float distance = visitor->getDistanceToEyePoint(lod->getCenter(),true);
         std::cout << distance << std::endl;
      }
      traverse(node, nv);
   }
};




but the value is constant.
Can anyone help?

Thanks,
Peter

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=8108#8108








More information about the osg-users mailing list