Ive came up with this but it returns outside true every time regardless:

Code:

bool outside = false;
if (obj->getParentWidget() && obj->getParentWidget()->getUsingClipBoundingBox())
{
    osg::ref_ptr<osg::ClipNode> clipNode = 
obj->getParentWidget()->getClipNode();
    if (clipNode)
    {
        for (unsigned int i = 0; i < clipNode->getNumClipPlanes(); i++)
        {
           osg::ref_ptr<osg::ClipPlane> plane = clipNode->getClipPlane(i);
           osg::Vec4d pl = plane->getClipPlane();
           osg::Vec3d pt = hitr->getWorldIntersectPoint();
           if (( pt.x() * pl.x() + pt.y() * pl.y() + pt.z() * pl.z() + pl.w() ) 
< 0.f)
           {
               outside = true;
               break;
           }
       }
    }
}




i set the clip node like:

Code:

this->clipBoundingBox.set(pos.x() - this->size.x(),pos.y() - 
this->size.y(),pos.z() - this->size.z(),pos.x() + this->size.x(), pos.y() + 
this->size.y(), pos.z() + this->size.z());
this->clipNode->createClipBox(this->clipBoundingBox);
this->panel.setStateSet(this->clipNode->getStateSet());



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





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to