以编程方式识别唯一模型

时间:2017-05-16 14:51:09

标签: autodesk autodesk-forge autodesk-viewer

如何以编程方式在查看器中识别模型?即模型的哪些参数可以帮助区分不同的模型?

我尝试了什么:

viewer.model.id始终返回1.

viewer.model.myData.basePathviewer.model.myData.urn只是一个路径的字符串,一个模型可能在以后使用另一个模型的相同路径。

packFileTotalSize中散列更多独特的值,例如primitiveCountviewer.model.myData可以提供更接近1比1的ID,但它更像是黑客攻击。

是否有一个哈希,名称或模型ID更可能是一个模型唯一的?

2 个答案:

答案 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哈希码。