首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在线框模式之间切换

在线框模式之间切换
EN

Stack Overflow用户
提问于 2018-11-07 17:30:16
回答 1查看 175关注 0票数 0

我有两个函数,一个用于进入和退出线框模式:

代码语言:javascript
复制
void enterWireFrame(const osgGA::GUIEventAdapter& ea, osgViewer::Viewer* viewer)
{
  osg::Node* scene = viewer->getSceneData();

  osg::Group* parent = scene->getParent(0);
  osg::Node* node = parent->getChild(0);

  auto scribe = new osgFX::Scribe();
  scribe->addChild(node);

  parent->replaceChild(node, scribe);
}

然后退出:

代码语言:javascript
复制
void exitWireFrame(const osgGA::GUIEventAdapter& ea, osgViewer::Viewer* viewer)
{
    osg::Node* scene = viewer->getSceneData();

    osg::Group* parent = scene->getParent(0);
    osg::Node* node = (dynamic_cast<osg::Group*>(scene))->getChild(0);

    parent->replaceChild(parent, node);
}

基本上,我是按以下顺序运行程序的:

代码语言:javascript
复制
enterWireFrame(...);
exitWireFrame(...);

enterWireFrame()可以很好地渲染线框,但是尽管运行了exitWireFrame(),我还是无法恢复原来的非线框外观。

EN

回答 1

Stack Overflow用户

发布于 2019-01-02 16:59:48

通过向节点的状态集添加PolygonMode属性,可以轻松地进入和退出线框模式。有关实现细节,请查看osgGA::StateSetManipulator::cyclePolygonMode。实际上,'w‘键,除非已被重写,否则将为您完成此切换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53186664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档