|
楼主 |
发表于 2009-8-26 17:55:54
|
显示全部楼层
本帖最后由 working123 于 2009-8-26 17:58 编辑
恩
是这样
我通过- void CCoreOSG::setRoot(osg::ref_ptr<osg::Group> geode,int &tag)
- {
- CString cs;
- for(int i=0;i<geode->getNumChildren();i++)
- {
- if(geode->getChild(i)->asGeode() == NULL)
- {
- geode->getChild(i)->setName("");
- setRoot(geode->getChild(i)->asGroup(),tag);
- }
- else {
- cs.Format("%d",tag);
- geode->getChild(i)->setName(cs);
- tag++;
- }
- }
- }
- }
复制代码 该方法的目的就是设置所有的节点拥有唯一标示
通过使用其他例子来测试,这个方法是可行的。所有的模块的名字都被相应设为“0”,“1”,“2”.......
但是只有这种情况是不可行的,就是在上个例子中所看到的两个模块的名字都被设置为了“1”。
我想知道通过一种什么方法才能避免这种情况。 |
|