如何在 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?