|
本帖最后由 ccy_ccy2001 于 2010-3-30 15:42 编辑
- class OsgVisitor : public osg::NodeVisitor
- {
- public:
- OsgVisitor()sg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN)
- {
- }
- void apply(osg::Group& group)
- {
- setlocale(LC_ALL,"chs");
- std::string groupName;
- groupName = group.getName();
- QMessageBox msgBox;
- msgBox.setText(QString::fromStdString(groupName));
- msgBox.exec();
- traverse(group);
- }
- void apply(osg::Geode& geode)
- {
- std::string geodeName;
- geodeName = geode.getName();
- QMessageBox msgBox;
- msgBox.setText(QString::fromStdString(geodeName));
- msgBox.exec();
- traverse(geode);
- }
- };
复制代码 遍历group结点时候,就不能输出name值,而遍历到geode结点的时候,就可以输出。而且当我在std::string groupName设置断点时候,显示的std::string geodeName中geodeName的值是乱码,单步运行,std::string groupName执行完毕后,geodeName的值为空,执行到QMessageBox msgBox时,groupName值仍然为空,输出的结果也就为空。
请问是怎么回事啊? |
|