我要发帖 回复

正式会员

9

主题

88

积分

0

专家分

:

私信
发表时间 : 2007-12-23 20:29:08 | 浏览 : 2344    评论 : 2
osgUtil::IntersectVisitor::HitList hlist;

通过osgViewer::viewer类中的
computeIntersections(ea.getX(),ea.getY(),hlist))函数可以获得,但函数在OSG2.0版本中已经发生了变化.那么在OSG2.0中如何来获得呢?

最近VR访客

FlySky 评论于2007-12-25 12:02:28
osgpick里面有这样一段代码,就是获得交点坐标:
void PickHandler::pick(osgViewer::Viewer* viewer, const osgGA::GUIEventAdapter& ea)
{
    osgUtil::LineSegmentIntersector::Intersections intersections;

    std::string gdlist="";
    if (viewer->computeIntersections(ea.getX(),ea.getY(),intersections))
    {
        for(osgUtil::LineSegmentIntersector::Intersections::iterator hitr = intersections.begin();
            hitr != intersections.end();
            ++hitr)
        {
            std::ostringstream os;
            if (!hitr->nodePath.empty() && !(hitr->nodePath.back()->getName().empty()))
            {
                // the geodes are identified by name.
                os<<"Object \""<<hitr->nodePath.back()->getName()<<"\""<<std::endl;
            }
            else if (hitr->drawable.valid())
            {
                os<<"Object \""<<hitr->drawable->className()<<"\""<<std::endl;
            }

            os<<"        local coords vertex("<< hitr->getLocalIntersectPoint()<<")"<<"  normal("<<hitr->getLocalIntersectNormal()<<")"<<std::endl;
            os<<"        world coords vertex("<< hitr->getWorldIntersectPoint()<<")"<<"  normal("<<hitr->getWorldIntersectNormal()<<")"<<std::endl;
            const osgUtil::LineSegmentIntersector::Intersection::IndexList& vil = hitr->indexList;
            for(unsigned int i=0;i<vil.size();++i)
            {
                os<<"        vertex indices ["<<i<<"] = "<<vil<<std::endl;
            }
            
            gdlist += os.str();
        }
    }
    setLabel(gdlist);
}

OSG中国官方网站:http://www.osgChina.org
OSG中国官方讨论区:http://bbs.osgChina.org

OSG专业群-OSG地形研究者 49668412
      OSG地形专业研究 45763709
osg 评论于2007-12-27 19:58:38
谢谢。问题已解决。
我很佩服这里的版主,认真负责。
强烈支持

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-9-23 11:20 AM

返回顶部