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

Posted

技术标签:

【中文标题】如何在 Autodesk forge 查看器 setTheming 颜色方法中使用十六进制颜色代码?【英文标题】:How can I use hexadecimal color code in autodesk forge viewer setTheming color method? 【发布时间】:2020-09-24 15:38:53 【问题描述】:

我有一些从 API 动态返回的颜色代码。我想在我的查看器应用程序中将这些代码用作 setThemingcolor 方法的值。我该怎么做?

我试过了,

let color = new THREE.Color( 0xff0000 );
window.viewer.setThemingColor(workorder.resource.data.autodeskid,color)

但它不起作用。该文档声明使用带有 (r,g,b,i) 值的vector4。但是有没有办法可以直接在其中使用十六进制颜色代码。

请帮忙。提前致谢。

编辑:

建议的答案会有所帮助,我已经尝试过了,但我所期待的是来自社区的 Autodesk 查看器 API 的观点。它有助于快速破解,但我期待团队提供单一格式支持颜色的原因。无论如何,谢谢你的建议。但我保持开放只是为了获得更多关于这方面的意见。

【问题讨论】:

【参考方案1】:

如果您查看three.js sourcecode 即第 40,77 和 233 行,我们会看到如果我们在构造函数中输入一个十六进制字符串,即:let color = new THREE.Color("#ff0000");,我们应该没问题。也直接输入十六进制应该没问题。我认为问题可能是 setThemingColor 需要 Vec4 而不是颜色对象。由于setThemingColor 确实需要一个 vec4,我们可以即时创建一个:

let color = new THREE.Color( 0xff0000 );
let outputColor = new THREE.Vector4(color.r , color.g, color.b, 1);
window.viewer.setThemingColor(workorder.resource.data.autodeskid,outputColor)

【讨论】:

【参考方案2】:

恐怕不会,该函数确实需要 Vector4(RBG+Transparency)。 Maybe convert HEX to RGB?

【讨论】:

以上是关于如何在 Autodesk forge 查看器 setTheming 颜色方法中使用十六进制颜色代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BIM 360 Web 查看器 (Autodesk Forge)

如何将 Autodesk Forge 查看器扩展添加到 React?

如何在 nuxt js Autodesk forge 查看器中使用 IconMarkupExtension?

Autodesk-forge 查看器:访问令牌

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

如何将 Autodesk Forge 模型查看器嵌入网站?