|
本帖最后由 cll131421 于 2012-5-16 14:58 编辑
- line = new osg::LineSegment(railInfo->at(i),railInfo->at(i+1));
- osgUtil::IntersectVisitor iv;
- iv.addLineSegment(line);
- _terrainNode->accept(iv);
- osgUtil::IntersectVisitor::HitList* _hitList = &iv.getHitList(line);
- if (is_debug)
- printf("_hitList->size()=%d\n",_hitList->size());
- if (_hitList->size()>0)
- {
- for (unsigned int i2 = 0;i2<_hitList->size();i2++)
- {
- osg::Vec3 _posTemp = _hitList->at(i2).getWorldIntersectPoint();
- if (is_debug)
- printf("_posTemp坐标为:%f,%f,%f\n",_posTemp._v[0],_posTemp._v[1],_posTemp._v[2]);
-
复制代码 如果交点是一个的话,会显示正确的结果,如果交点是两个,则有可能出错,效果如图:
.
同一个交点输出两遍
请问这是因为什么?应该怎么修改啊?
|
|