UNPKG

@i3yun/viewergallery

Version:

BIM轻量化平台是一个互联网三维可视化解决方案。包括BIM轻量化引擎和业务组件。

56 lines (53 loc) 2.32 kB
//创建三维视图 var viewerPromise = SippreepViewer.CreateViewer(document.getElementById("viewer1")); //场景配置 Promise.all([viewerPromise]).then(([viewer]) => { document.getElementById("updateScene").onclick = () => { var host = document.getElementById("DATABASE").value; var sceneID = document.getElementById("SCENEID").value; var sceneState = document.getElementById("sceneState"); sceneState.innerHTML = "正在加载……"; /** * @type { Promise<Sippreep.Viewing.Model> } */ var modelPromise = new Promise((s, f) => { if (viewer.model) { viewer.unloadModel(viewer.model); } viewer.loadModel(`${host}/api/UserSpace/ViewFile/${sceneID}?path=/3d.svf`, null, s, f); }); modelPromise.then((model) => { return new Promise((s, f) => model.getExternalIdMapping(s, f)); }).then(e => { var objCount = 0; for (var key in e) { objCount++; } sceneState.innerHTML = `${objCount}个对象`; }).catch((e) => { sceneState.innerHTML = JSON.stringify(e); }); }; document.getElementById("updateScene").onclick(); }); /** * @type {Promise<Sippreep.Extensions.EEPTools.EEPToolExtension>} */ var toolPromise = viewerPromise.then(v => v.loadExtension("Sippreep.Extensions.EEPTools.EEPToolExtension")); Promise.all([viewerPromise, toolPromise]).then(([viewer, eeptool]) => { _eeptool = eeptool; var modeBTs = document.getElementsByClassName("ToolMode"); for (let i = 0; i < modeBTs.length; i++) { modeBTs[i].onclick = (e) => { eeptool.set3DCommand(parseInt(e.target.getAttribute("data"))); } } //订阅视图选中项改变事件 viewer.addEventListener(Sippreep.Viewing.SELECTION_CHANGED_EVENT, () => { var elements = viewer.getSelection(); document.getElementById("MySelectionValue").innerHTML = elements.length == 1 ? ("ID:" + elements[0]) : (elements.length + "项"); }); viewer.addEventListener(Sippreep.Viewing.MODEL_ADDED_EVENT, () => { _eeptool.set3DCommand(Sippreep.Extensions.EEPTools.EEPToolCommand.ROTATE); }); });