[osg-users] Distance to camera

Vincent Bourdier vincent.bourdier at gmail.com
Mon Mar 9 10:03:16 PDT 2009


Hi,

I use the manipulator->gtInverseMatrix().getTrans() to have camera position
node->getBound->center() * node->getWorldMatrix() to have node center, and
then you just have to compute the difference.

Vincent.

2009/3/9 Peter <osgforum at tevs.eu>

> 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
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20090309/cf9e3687/attachment-0003.htm>


More information about the osg-users mailing list