微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在伪造查看器中正确管理 dbId

如何解决如何在伪造查看器中正确管理 dbId

在three.js中,id是自动生成的,但是在为查看器创建新对象时,查看器中对象的dbId似乎需要手动插入,并且它需要是唯一的,它不能有与查看器生成的对象或手动插入的对象相同的 dbId。我想问的是,生成随机唯一dbId的理想方法是什么,或者在forge查看器中管理dbId的正确方法是什么。

我一直在网上寻找,但我真正发现的唯一一件事就是它必须是独一无二的

解决方法

您可以为此使用 uuid 或 jQuery uuid() 库。另一种选择是拥有自己的实现,请参阅下面的示例(如果您希望唯一 ID 持久化,这不是您的情况,这不是最佳方法)。

function getUUID() {
    var d = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
};
,

SVF dbid 只是作为增量整数生成的,因此如果您想遵循相同的方法,您可以获得现有的最高 dbid,然后从那里开始递增,例如,如下所示:

const tree = viewer.model.getInstanceTree();
let nextAvailableID = tree.objectCount + 1;
function generateID() { return nextAvailableID++; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。