如何在 Autodesk Forge 查看器中更改选择颜色?

Posted

技术标签:

【中文标题】如何在 Autodesk Forge 查看器中更改选择颜色?【英文标题】:How do you change selection color in the autodesk forge viewer? 【发布时间】:2019-07-19 08:50:50 【问题描述】:

在 Forge Viewer v3 中,我们像这样设置选择的颜色:

onRequestClick(e) 
  const THREE_RED_COLOR = new THREE.Color(1, 0, 0);
  NOP_VIEWER.impl.setSelectionColor(THREE_RED_COLOR);
  NOP_VIEWER.select($(e.target).parent().find(`th`).data(`attributes`));

在 v6 中,此代码仍按预期选择查看器对象,但选择颜色保持默认蓝色,不会按预期更改为红色。 现在这个改变是通过不同的方法完成的吗?我还有什么遗漏的吗?

【问题讨论】:

【参考方案1】:

尝试使用查看器viewer.clearSelection(); viewer.set2dSelectionColor(red)

在哪里viewer=NOP_VIEWER; red = new THREE.Color(1,0,0)

这样能解决吗?

【讨论】:

嗨 Michale,有没有办法将 Alpha 通道传递给选择颜色?【参考方案2】:

当我尝试使用 Viewer v6.4.2 时,您的代码运行良好:

viewer.impl.setSelectionColor(new THREE.Color(1, 0, 0));
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT,()=>viewer.select(1))

看到它在行动here。

您可能想在浏览器控制台中再次尝试相关代码以隔离问题。

编辑

如果您查看源代码,它清楚地表明它仅适用于 3D 模型:

/**
     * Changes the color of the selection for 3D models.
     * 
     * @example
     *  viewer.setSelectionColor(new THREE.Color(0xFF0000)); // red color
     * @param THREE.Color color
     * 
     * @alias Autodesk.Viewing.Viewer3D#setSelectionColor
     */
    Viewer3D.prototype.setSelectionColor = function(color, selectionType) 
        this.impl.setSelectionColor(color, selectionType);
    ;

将向 Engineering 记录功能请求,以将此功能也移植到 2D 模型。

【讨论】:

您的示例使用的是 3D 查看器,这段代码使用 2D 查看器是否有所不同? (抱歉,忘记在我原来的帖子中提到这是 2D)另外,我使用控制台记录了该函数,它看起来接受了 2 个参数,而不是 1 ƒ (e,t)var n=new O.Color(e);n.multiplyScalar(.5);var i=function(t)t.color.set(e),t.emissive.set(n);i(this.selectionMaterialBase),i(this.selectionMaterialTop),this.selectionMaterialBase.variants&&thi… 【参考方案3】:

我确认它不适用于 2D 文件。 这是我尝试的屏幕截图。

我在 2 个圆圈上调用了 get Selection。确认观看者参与其中并且我能够检测到不同的选择。

然后当我调用 setSelectionColor 函数时,什么也没有发生。

【讨论】:

对于2d sheet,设置选择颜色的方法是:NOP_VIEWER.set2dSelectionColor(new THREE.Color(1,1,1))

以上是关于如何在 Autodesk Forge 查看器中更改选择颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Autodesk forge 2d 查看器中确定对象的起点和终点

在 Autodesk forge 查看器中升级三个 js 版本

在 Autodesk Forge 查看器中显示链接文件

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

在 Forge Autodesk 查看器中获取节点的属性

在 Autodesk Forge 查看器中的元素下拾取