Hi, Using the intersector nodepath, normal and intersection point, you can compute the reaction to a collision.
Vincent. 2009/7/23 Jean-Sébastien Guay <[email protected]> > Hi Brett, > > I found intersection of a line segment with a triangle mesh using >> intersection visitor in osg.But I dont want the line segment to penetrate >> into the triangle mesh.Can someone help me in doing this using osg please. >> > > OSG is not a collision detection library, it's a graphics library. > Intersection testing in OSG exists primarily for user interaction, for > example picking an object. If you want something more involved than that, > you'd be better off using a physics/collision detection library. > > Note that if all you want is to find the length of the line segment that > touches the first geometry, you can get the first intersection returned by > the intersection visitor. In that data structure there is a ratio variable, > that is the ratio of where the intersection occured between the start and > end of your original segment. So for example: > > osg::Vec3 start(0,0,0); > osg::Vec3 end(0,10000,0); > > osg::ref_ptr<osgUtil::LineSegmentIntersector> intersector = > new osgUtil::LineSegmentIntersector( start, end ); > osgUtil::IntersectionVisitor iv(intersector.get()); > > viewer->getCamera()->accept(iv); > > osgUtil::LineSegmentIntersector::Intersections& intersections = > intersector->getIntersections(); > > // First intersection: > osgUtil::LineSegmentIntersector::Intersection firstHit = > intersections.front(); > > // This is easy since we know our ray was along the Y axis: > double distance = (end.y() - start.y()) * firstHit.ratio; > > // Or if the ray could be in any direction: > // Vector from start to hit point > osg::Vec3 hitVec = (end - start) * ratio; > double distance2 = hitVec.length(); > > Hope this helps, > > J-S > -- > ______________________________________________________ > Jean-Sebastien Guay [email protected] > http://www.cm-labs.com/ > http://whitestar02.webhop.org/ > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

