zhgdyun/public/progressModel.html
2023-12-12 11:43:19 +08:00

91 lines
3.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>My first BIMFACE app</title>
</head>
<body>
<div id="domId" style="width: 100%; height: 95vh"></div>
<script
src="https://static.bimface.com/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js"
charset="utf-8"
></script>
<script>
let model3D;
let viewer3D;
let app;
let modelState;
let configValue = {
bimComponent: [],
};
const bimCallback = (viewToken) => {
// let viewToken = '11b0d307c09f43bfa5fa3922bcce0342'
let loaderConfig = new BimfaceSDKLoaderConfig();
loaderConfig.viewToken = viewToken;
BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback);
function successCallback(viewMetaData) {
let domShow = document.getElementById("domId");
let webAppConfig = new Glodon.Bimface.Application.WebApplication3DConfig();
webAppConfig.domElement = domShow;
app = new Glodon.Bimface.Application.WebApplication3D(webAppConfig);
app.addView(viewToken);
viewer3D = app.getViewer();
// 监听添加view完成的事件
viewer3D.addEventListener(
Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded,
function() {
// 调用viewer3D对象的Method可以继续扩展功能
// 从viewer3D对象中获取模型对象model3D
model3D = viewer3D.getModel();
// 获取模型状态
modelState = viewer3D.getCurrentState();
// 渲染3D模型
viewer3D.render();
// 操作模型
renderConfigModel();
}
);
// 添加构件单击事件
viewer3D.addEventListener(
Glodon.Bimface.Viewer.Viewer3DEvent.MouseClicked,
(data) => {
console.log(data);
// 往父级传递
window.parent.postMessage({ msg: data.elementId });
}
);
}
function failureCallback(error) {
console.log(error);
}
};
function renderConfigModel() {
// 恢复模型状态
viewer3D.setState(modelState);
model3D.overrideComponentsColorById(
configValue.bimComponent,
new Glodon.Web.Graphics.Color("#337AB7", 1)
);
viewer3D.render();
}
// 监听父组件的信息传递
window.addEventListener("message", async function(e) {
// const modelId = e.data.modelId
const data = e.data || {};
console.log(data);
if (data.token) {
// removeModel(modelId)
document.getElementById("domId").innerHTML = "";
await bimCallback(data.token);
if (data.bimComponent && data.bimComponent.length > 0) {
configValue.bimComponent = data.bimComponent;
} else {
configValue.bimComponent = [];
}
}
});
</script>
</body>
</html>