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 文件