查看: 1609|回复: 6

请教代码

[复制链接]

该用户从未签到

发表于 2009-12-2 21:30:24 | 显示全部楼层 |阅读模式
osg::ref_ptr<osg::Node> createOccluder(const osg::Vec3& v1,const osg::Vec3& v2,const osg::Vec3& v3,const osg::Vec3& v4)
{  
osg::ref_ptr<osg::OccluderNode> occludernode = new osg::OccluderNode();
    //创建遮挡平面
osg::ref_ptr<osg::ConvexPlanarOccluder> cpo = new osg::ConvexPlanarOccluder;
   //遮挡节点关联遮挡平面
occludernode->setOccluder(cpo);
occludernode->setName("occluder");
   //初始化一个遮挡平面
osg::ConvexPlanarPolygon& occluder = cpo->getOccluder();
occluder.add(v1);
occluder.add(v2);
occluder.add(v3);
occluder.add(v4);

//为遮挡面画一四边形
osg::ref_ptr<osg::Geometry> geom = new osg::Geometry;

    osg::Vec3Array* coords = new osg::Vec3Array(occluder.);

我想问下我的代码有问题吗?为什么occluder.弹出来提示,头文件也都加上了,我找了半天没找出,好心人帮我看看,前面的occluder.add(v1)还能弹出来,谢谢

该用户从未签到

发表于 2009-12-2 23:40:10 | 显示全部楼层
不明白你提出的是什么问题?????代码没有问题~~~~

该用户从未签到

 楼主| 发表于 2009-12-3 14:51:50 | 显示全部楼层
osg::Vec3Array* coords = new osg::Vec3Array(occluder.);中occluder.按下点后没有提示, osg::Vec3Array* coords = new osg::Vec3Array(occluder.getVertexList().begin(),occluder.getVertexList().end());就是没弹出来一个提示让选择getVertexList(),是不是因为前面有错误没弹出来,可是我觉得也没错误,一般什么情况下弹出附加信息,这种情况是不是不会弹出来,谢谢。

该用户从未签到

发表于 2009-12-3 20:59:34 | 显示全部楼层
晕,,,才看出来,,occluder是一个引用对象!!!!!!osg::Vec3Array* coords = new osg::Vec3Array();是初始化的过程~~~~~~~看着代码咋那么相似,,貌似是我书中的代码~~~~~~

该用户从未签到

 楼主| 发表于 2009-12-4 11:30:31 | 显示全部楼层
就是您书上的代码,呵呵,再解释清楚一点呗,是引用弹不出来提示还是初始化弹不出来?

该用户从未签到

发表于 2009-12-4 23:52:25 | 显示全部楼层
晕,,真不知道你的C++是怎么学的????不过,我肯定不是这样写的:
  1. osg::Vec3Array* coords = new osg::Vec3Array(occluder.);
复制代码
书中是这样的:
  1. osg::Vec3Array* coords = new osg::Vec3Array(occluder.getVertexList().begin(),occluder.getVertexList().end());
复制代码
你自己仔细对比对比吧,,完全不一样的东西~~~~~~

该用户从未签到

 楼主| 发表于 2009-12-5 10:06:55 | 显示全部楼层
我想你没明白我问的问题,我知道代码是这样的,不过还是谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表