So I found some code for intersecting a line with a plane. 
What I am missing is how do I translate the mouse pointer 
coordinates into a line expressed in local coordinates?

Here the intersection code if anybody is interested:

Code:

    bool getPlaneLineIntersection(const osg::Vec4d& plane, 
                                  const osg::Vec3d& lineStart, const 
osg::Vec3d& lineEnd, 
                                  osg::Vec3d& isect)
    {
        // intersects an infinite line with an infinite plane
        // in hesse normal form  Ax + By + Cz + D = 0
        // A,B,C is the normal vector of the plane, D the distance to the 
origin    
        const double deltaX = lineEnd.x() - lineStart.x();
        const double deltaY = lineEnd.y() - lineStart.y();
        const double deltaZ = lineEnd.z() - lineStart.z();

        const double denominator = (plane[0]*deltaX + plane[1]*deltaY + 
plane[2]*deltaZ);
        if (! denominator) return false;

        const double C = (plane[0]*lineStart.x() + plane[1]*lineStart.y() + 
plane[2]*lineStart.z() + plane[3]) / denominator;

        isect.x() = lineStart.x() - deltaX * C;
        isect.y() = lineStart.y() - deltaY * C;
        isect.z() = lineStart.z() - deltaZ * C;

        return true;
    }    




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





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

Reply via email to