查看: 1197|回复: 6

请教程序结构问题!

[复制链接]

该用户从未签到

发表于 2011-1-2 20:27:58 | 显示全部楼层 |阅读模式
我的程序结构是这样的
osg::ref_ptr<osg::Group> root=new osg::Group;
main()
{
osgViewer::Viewer *m_Viewer=new osgViewer::Viewer()
......
root->addChild();
......
m_Viewer->setSceneData(root.get());
render(m_Viewer);
}
void render(void ptr)
{
osgViewer::Viewer* viewer = (osgViewer::Viewer*)ptr;
root->addChild(......);
while(......)
{
viewer->frame();
}
}
我认为root是个全局变量所以想在render函数中修改场景树,但为什么不起作用?
但是加上这一句
osg::ref_ptr<osg::Group>root=dynamic_cast<osg::Group*>(viewer->getSceneData());
就能改变场景树?为什么?
谢谢!

该用户从未签到

发表于 2011-1-3 21:24:52 | 显示全部楼层
scope?

该用户从未签到

发表于 2011-1-4 09:30:35 | 显示全部楼层
我认为root是个全局变量所以想在render函数中修改场景树,但为什么不起作用?
请给出您这一步的做法

该用户从未签到

 楼主| 发表于 2011-1-4 19:17:41 | 显示全部楼层
就是像我上面写的那样,root->addChild(......);加一些节点。

该用户从未签到

发表于 2011-1-5 08:37:34 | 显示全部楼层
请详细解释一下您要做什么,以及您遇到的问题。我无法从您的帖子里判断出什么,甚至都不知道您遇到了什么错误

该用户从未签到

 楼主| 发表于 2011-1-5 15:52:02 | 显示全部楼层
5# array
我基本上模仿的是osgviewerMFC的程序结构,初始化工作(包括设置视口,创建显示窗口,构建场景树,setSceneData()......)在主函数中已经完成,我就是想在render函数中能改变场景树root中的子节点。

该用户从未签到

发表于 2011-1-6 08:54:17 | 显示全部楼层
那应该没有什么难度,只要得到root节点并修改它的子节点即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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