【问题标题】:autodesk forge viewer set selection color to defaultAutodesk Forge 查看器将选择颜色设置为默认值
【发布时间】:2020-10-27 08:14:11
【问题描述】:

在对象选择时,我使用下面的代码来更改所选对象的颜色,

viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(1, 0, 0));

效果很好,但是如何将选择颜色设置为默认值?

我都试过了


  viewerApp.getCurrentViewer().clearSelection();

和

viewerApp.getCurrentViewer().clearThemingColors();

但这些方法似乎不起作用。

我做错了吗?或者更改颜色并将其恢复为默认值的最佳做法是什么?

查看器版本:6*

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    这个选择颜色实际上是硬编码的,没有保存在任何配置中。您需要通过指定原始颜色来重置颜色,如下所示:

     .impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));
    

    【讨论】:

      【解决方案2】:

      如果目标是更改选定元素的颜色,我强烈建议改用setThemingColor。这将为定义的 dbid 设置主题颜色,这可以在任何时候轻松清除。您可以将其连接到选择事件以自动清除和重新分配颜色。您可以在初始化查看器后处理此问题。

      在 v7 中:

      viewerApp.getCurrentViewer().viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, event=>{
          viewerApp.getCurrentViewer().clearThemingColors();
          event.dbIdArray.forEach(id => 
          {
             viewerApp.getCurrentViewer().setThemingColor(id, new THREE.Vector4(1,0,0,1)
          })
      }
      ) 
      

      但是,如果您确实想采用这种方法,则必须找出默认颜色是什么,并使用 setSelectionColor 和此颜色来覆盖它: 编辑感谢 Cyrille 我们现在知道了!所以相应地调整了颜色

      viewerApp.getCurrentViewer().impl.setSelectionColor(new THREE.Color(0.4, 0.6, 1));
      

      没有定义明确的功能。

      【讨论】:

      • setThemingColor 不适用于在我的情况下已经有颜色的对象。你经历过这样的场景吗?
      • 对我来说,它一直按预期工作。您还可以尝试为模型中的任何对象添加带有颜色的自定义材质
      • 哦,好的,我会再试一次,我做到了,但没有奏效可能是我做错了..谢谢
      • 你好,你能给我一个合适的例子吗?我的意思是如何添加带有颜色的自定义材料。提前致谢
      猜你喜欢
      • 2019-07-19
      • 2019-06-10
      • 2021-11-12
      • 1970-01-01
      • 2021-09-19
      • 2023-03-06
      • 2020-10-23
      • 2017-01-07
      • 2020-10-14
      相关资源
      最近更新 更多