如何将差异涂成红色?

时间:2019-02-27 13:48:59

标签: autodesk-viewer

我使用Forge-Viewer创建了一个网站,该网站实现了在一个窗口中加载多个模型,如本文https://forge.autodesk.com/blog/aggregate-multi-models-sequence-forge-viewer所示。我需要选择两个几乎完全相同的文件,它们之间的区别仅在于一个元素的属性不同,然后用红色覆盖这些差异。如何将两个相同的上传文件之间的差异涂成红色?

这是一个新站点。我已经尝试了Internet上可用的所有方法和建议,但没有一个能帮助我解决问题。

我的代码与该来源的代码完全一致 https://github.com/Autodesk-Forge/learn.forge.viewmodels/tree/nodejs https://forge.autodesk.com/blog/aggregate-multi-models-sequence-forge-viewer

我希望我最终可以将差异涂成红色,但到目前为止我失败了。

1 个答案:

答案 0 :(得分:1)

一种可能的方法是通过查询viewer.model.getBulkProperties(dev doc here)或viewer.search(dev doc here)接口(取决于哪个效果更好)来比较属性(根据您的特定用例)并制作外部ID:

let model = viewer.impl.modelQueue().findModel(modelId) || viewer.impl.modelQueue().getModels()[modelSequence] //Set the model to query against

model.getBulkProperties(dbid,['propname1','propnam2'],rst=>{...},err=>{...}) //Retrieve the properties with filtering conditions and compare them

model.search('keywords',dbids=>{...}, err=>{...}) //Query dbids with properties matching keywords

然后将dbids与差异并用主题色突出显示(dev doc here):

viewer.setThemingColor(dbid, THREE.Vector4, model)