如何以编程方式在查看器中识别模型?即模型的哪些参数可以帮助区分不同的模型?
我尝试了什么:
viewer.model.id
始终返回1.
viewer.model.myData.basePath
或viewer.model.myData.urn
只是一个路径的字符串,一个模型可能在以后使用另一个模型的相同路径。
在packFileTotalSize
中散列更多独特的值,例如primitiveCount
和viewer.model.myData
可以提供更接近1比1的ID,但它更像是黑客攻击。
是否有一个哈希,名称或模型ID更可能是一个模型唯一的?
答案 0 :(得分:1)
一种非常简单的方法是在加载模型后自己标记模型,这是我在我的应用程序中的操作方式:
const onModelLoaded = (model) => {
model.guid = guid()
}
viewer.loadModel(path, loadOption, onModelLoaded)
这是我对guid()函数的实现:
guid (format = 'xxxxxxxxxxxx') {
var d = new Date().getTime()
const guid = format.replace(
/[xy]/g,
function (c) {
var r = (d + Math.random() * 16) % 16 | 0
d = Math.floor(d / 16)
return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16)
})
return guid
}
这只是一个示例,您可以通过数据库记录或其他来源中的某些值替换guid。我假设你知道你的模型在加载时来自哪里。
答案 1 :(得分:0)
如果您将文件存储在OSS上,则可以请求file details,并获取其SHA1代码。不幸的是,这是今天唯一的地方(这篇文章的时间)你得到了API返回的SHA1哈希码。