查看: 990|回复: 2

关于osg::Switch?

[复制链接]

该用户从未签到

发表于 2010-11-23 10:01:43 | 显示全部楼层 |阅读模式
int main()
{
osg::ref_ptr<osgViewer::Viewer>viewer=new osgViewer::Viewer();//创建场景浏览器
osg::ref_ptr<osg::Group>root=new osg::Group();//创建组节点
osg::ref_ptr<osg::Node>node1=osgDB::readNodeFile("cow.osg");//创建节点读取模型文件
osg::ref_ptr<osg::Node>node2=new osg::Node();//创建一个新节点
node2=osgDB::readNodeFile("glider.osg");//读取模型
osg::ref_ptr<osg::Switch>switch=new osg::Switch();//创建一个开关节点
switch->addChild(node1.get(),false);//添加模型1,但不渲染
switch->addChild(node2.get(),true);//添加模型2,并渲染
root->addChild(switch.get());//添加到组节点
osgUtil::Optimizer optimizer;
optimizer.optimize(root.get());//优化场景数据
viewer->setSceneData(root.get());
viewer->realize();
viewer->run();
return 0;
}
这段代码运行后出现error:
1>d:\practice\osgswitch\osgswitch\main.cpp(22) : error C2143: syntax error : missing ';' before 'switch'
1>d:\practice\osgswitch\osgswitch\main.cpp(22) : error C2059: syntax error : '='
1>d:\practice\osgswitch\osgswitch\main.cpp(23) : error C2059: syntax error : '->'
1>d:\practice\osgswitch\osgswitch\main.cpp(24) : error C2059: syntax error : '->'
1>d:\practice\osgswitch\osgswitch\main.cpp(26) : error C2143: syntax error : missing ')' before 'switch'
1>d:\practice\osgswitch\osgswitch\main.cpp(26) : error C2660: 'osg::Group::addChild' : function does not take 0 arguments
1>d:\practice\osgswitch\osgswitch\main.cpp(26) : error C2059: syntax error : ')'

实在是看不出哪里出错了,而且也无法逐步调试。

该用户从未签到

发表于 2010-11-23 12:55:17 | 显示全部楼层
'switch'是C++的关键字,不能作为变量使用……您似乎忽略了这个最基本的事实……

该用户从未签到

 楼主| 发表于 2010-11-23 13:42:59 | 显示全部楼层
原来是这样,我是按照一本教材上的代码来写的。
试了一下,果然是这个问题,只是这个error提示太不明显了。
谢谢array!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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