[osg-users] getDistanceToViewPoint not implemented in osgUtil::IntersectionVisitor

Jason Beverage jasonbeverage at gmail.com
Wed Mar 18 12:00:02 PDT 2009


Hi Robert,

I'm using LOD's in one of my apps to control the distance at which models
first begin to appear and noticed that the IntersectionVisitor will still
hit these nodes even if they are not visible.

I tried setting the LODSelectionMode to
USE_EYE_POINT_FOR_LOD_LEVEL_SELECTION but it still selected invisible
nodes.  After looking through the code I noticed that the
getDistanceToViewPoint function is used by the LOD class but is not
implemented by the IntersectionVisitor, so will always have the value of 0.

I made a small class deriving from IntersectionVisitor that just returned
getDistanceToEyePoint (which is overriden by IntersectionVisitor) and things
seemed to behave more appropriately.

class MyIntersectionVisitor : public osgUtil::IntersectionVisitor
{
public:
    MyIntersectionVisitor(osgUtil::Intersector* intersector=0,
osgUtil::IntersectionVisitor::ReadCallback* readCallback=0)
        :IntersectionVisitor(intersector, readCallback)
    {
    }

    virtual float getDistanceToViewPoint(const osg::Vec3& pos, bool
useLODScale) const
    {
       return getDistanceToEyePoint(pos, useLODScale);
    }
};

Would this change, or something similar, be appropriate for inclusions in
OSG?

Thanks!

Jason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20090318/c4da85b4/attachment-0002.htm>


More information about the osg-users mailing list