Autodesk Forge 查看器将选择颜色设置为默认值

Posted

技术标签:

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

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

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

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

我都试过了


  viewerApp.getCurrentViewer().clearSelection();

viewerApp.getCurrentViewer().clearThemingColors();

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

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

查看器版本:6*

【问题讨论】:

【参考方案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 不适用于在我的情况下已经有颜色的对象。你经历过这样的场景吗? 对我来说,它一直按预期工作。您还可以尝试为模型中的任何对象添加带有颜色的自定义材质 哦,好的,我会再试一次,我做到了,但没有奏效可能是我做错了..谢谢 你好,你能给我一个合适的例子吗?我的意思是如何添加带有颜色的自定义材料。提前致谢

以上是关于Autodesk Forge 查看器将选择颜色设置为默认值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Autodesk forge 查看器 setTheming 颜色方法中使用十六进制颜色代码?

Autodesk Forge 设计自动化/模型衍生 API - 查看器缓存 svf 文件

更改 Autodesk Forge 查看器隐藏元素的材质

如何以编程方式校准 Autodesk forge 查看器?

选择要在 Autodesk forge 查看器中显示的特定 3d 视图

Forge 查看器:Autodesk.BoxSelection 扩展错误