【问题标题】:Forge Viewer: Need to hide all the elements like in isolated viewForge Viewer:需要隐藏所有元素,例如在孤立视图中
【发布时间】:2017-04-27 04:36:18
【问题描述】:

使用isolate() 方法,我可以隔离几个元素并隐藏其他所有内容,如下所示: viewer.isolate([65, 80, 83, 92]);

但是是否可以像孤立视图的隐藏元素一样隐藏所有元素?

我试过viewer.isolate([]);

但这会显示所有元素。

我需要的是能够隐藏所有元素并仅显示半透明视图,就像在隔离状态下一样。

有没有办法做到这一点?

谢谢

【问题讨论】:

    标签: autodesk autodesk-forge autodesk-viewer


    【解决方案1】:

    对于 dbIds 列表,您可以调用以下命令(针对每个 dbId):

    var n = viewer.model.getData().instanceTree.nodeAccess.nodes[dbId];
    viewer.impl.visibilityManager.setNodeOff(n, true);
    

    要再次显示,只需将 setNodeOff true 替换为 false

    【讨论】:

    • 这对我来说比viewer.isolate(...)/viewer.hide(...) 更有用。这两个取消了以前的孤立/隐藏节点。顺便说一句,如果您加载了多个模型,最好从模型访问visibilityManagermodel.visibilityManager...(当然,您可以将模型作为第三个参数传递给viewer.impl.visibilityManager.setNodeOff(...,...,model))。还有一点需要注意的是,setNodeOff 不适用于 dbIds 列表,但它适用于单个 dbId
    【解决方案2】:

    另一种解决方案可能如下...

    var instanceTree = viewer.model.getData().instanceTree
    var rootId = instanceTree.getRootId()
    viewer.hide(rootId) // hidding root node will hide whole model ...
    

    【讨论】:

    • 这似乎是一个快速的解决方案。谢谢:)
    【解决方案3】:

    找到了一个简单的重影全局设置:Viewer3d.setGhosting(bool)

    var viewer = NOP_VIEWER;
    viewer.setGhosting(false);
    

    这将完全关闭非隔离元素的可见性

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 2018-07-17
      • 1970-01-01
      • 2017-05-05
      • 2018-09-16
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多