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