Hi, I am trying to get the intersection points between an intersection plane and a terrain using osgUtil::PlaneIntersector。 The code is listed as following:
osg::Plane planeLeft( osg::Vec3(1,0,0), osg::Vec3(0+1,0,0) );//define an intersetion plane osg::Polytope polytopeLeft;//define the range of planeLeft polytopeLeft.add( osg::Plane(osg::Vec3(0,1,0), osg::Vec3(0,0,0)) ); polytopeLeft.add( osg::Plane(osg::Vec3(0,-1,0), osg::Vec3(0,GlobalVariable::g_maxDepth,0)) ); osg::ref_ptr<osgUtil::PlaneIntersector> insectorLeft = new osgUtil::PlaneIntersector(planeLeft, polytopeLeft); osgUtil::IntersectionVisitor ivleft(insectorLeft); geodeTerrain->accept(ivleft); if (insectorLeft->containsIntersections() ) { //output the intersection points fstream file; file.open("Terrain.txt",ios::out); osgUtil::PlaneIntersector::Intersections& intersections = insectorLeft->getIntersections(); osgUtil::PlaneIntersector::Intersections::iterator itr = intersections.begin(); for ( unsigned int i=0; i<(*itr).polyline.size(); ++i ) { file<<(*itr).polyline[i].x()<<","<<(*itr).polyline[i].y()<<","<<(*itr).polyline[i].z()<<std::endl; } file.close(); } I can get the intersection points successfully. But, when I change the terrain value just multiplying it with 3 and intersect with the same plane again, the sequence of output intersection points is reversed. So I wonder how can I control the sequence of the intersection points. Thank you! Cheers, Tianyun ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=56669#56669 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org