Autodesk Forge Viewer将选择颜色设置为默认颜色

时间:2020-07-07 06:03:13

标签: autodesk-forge autodesk-viewer autodesk

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

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

它工作正常,但是如何将选择颜色设置为默认颜色?

我都尝试过


  viewerApp.getCurrentViewer().clearSelection();

viewerApp.getCurrentViewer().clearThemingColors();

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

我做错什么了吗?或更改颜色并将其还原为默认值的最佳实践是什么?

查看器版本:6 *

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果目标是更改选定元素的颜色,我强烈建议改用setThemingColor。这会将主题颜色设置为已定义的双标,可以随时轻松清除。您可以将其关联到选择事件,以自动清除和重新分配颜色。您可以在初始化查看器之后进行处理。

在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));

未定义清除功能。