111 lines
3.9 KiB
HTML
111 lines
3.9 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<link rel="icon" href="./demo/favicon.ico" />
|
|
<link rel="stylesheet" type="text/css" href="./demo/global.css" />
|
|
<link rel="stylesheet" type="text/css" href="./demo/iconfont/iconfont.css" />
|
|
<link rel="stylesheet" href="./demo/compare/compareSidePanel.css" />
|
|
<link rel="stylesheet" href="./demo/layerManager/layerManager.css" />
|
|
<link rel="stylesheet" href="./demo/settings/SettingsPanel.css" />
|
|
<style>
|
|
#myCanvas1 {
|
|
width: 40%;
|
|
height: 50%;
|
|
top: 0;
|
|
left: 0;
|
|
position: absolute;
|
|
border: 1px #dddddd solid;
|
|
}
|
|
#myCanvas2 {
|
|
width: 40%;
|
|
top: 50% !important;
|
|
height: 50%;
|
|
left: 0;
|
|
position: absolute;
|
|
border: 1px #dddddd solid;
|
|
}
|
|
#myCanvas3 {
|
|
width: 60%;
|
|
height: 100%;
|
|
top: 0;
|
|
right: 0;
|
|
position: absolute;
|
|
border: 1px #dddddd solid;
|
|
}
|
|
.title {
|
|
font-size: 18px;
|
|
z-index: 3;
|
|
position: absolute;
|
|
margin-top: 8px;
|
|
color: white;
|
|
top: 0%;
|
|
left: 18%;
|
|
}
|
|
.title2 {
|
|
top: 50%;
|
|
left: 18%;
|
|
}
|
|
.title3 {
|
|
left: 68%;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="viewerContainer">
|
|
<span class="title">图纸 1</span>
|
|
<div id="myCanvas1" class="renderer-container"></div>
|
|
<span class="title title2">图纸 2</span>
|
|
<div id="myCanvas2" class="renderer-container"></div>
|
|
<span class="title title3">对比结果</span>
|
|
<!-- myCanvas3 is the one for compare -->
|
|
<div id="myCanvas3" class="renderer-container"></div>
|
|
</div>
|
|
<script type="module">
|
|
import { DxfViewer } from "./demo/libs/gemini-viewer.esm.min.js";
|
|
import DxfCompareSidePanel from "./demo/compare/compareSidePanel.js"
|
|
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
|
|
import LayerManager from "./demo/layerManager/LayerManager.js";
|
|
|
|
const url1 = "./demo/models/dxf/dxf_3.dxf";
|
|
const url2 = "./demo/models/dxf/dxf_3_1.dxf";
|
|
const modelConfig1 = { modelId: "dxf_3", name: "dxf 1", src: url1, ignorePaperSpace: true };
|
|
const modelConfig2 = { modelId: "dxf_3_1", name: "dxf 2", src: url2, ignorePaperSpace: true };
|
|
const config = {
|
|
containerId: "myCanvas3",
|
|
enableAxisGizmo: true,
|
|
enableToolbar: true,
|
|
enableSpinner: true,
|
|
enableProgressBar: true,
|
|
enableLayoutBar: true,
|
|
};
|
|
const viewer1 = new DxfViewer({ containerId: "myCanvas1"});
|
|
const viewer2 = new DxfViewer({ containerId: "myCanvas2"});
|
|
const viewer3 = new DxfViewer(config);
|
|
const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"];
|
|
await viewer1.setFont(fontFiles);
|
|
await viewer2.setFont(fontFiles);
|
|
await viewer3.setFont(fontFiles);
|
|
|
|
const onProgress = (event) => {
|
|
const progress = ((event.loaded * 100) / event.total).toFixed(1);
|
|
console.log(`[Demo] Loading progress: ${progress}%`);
|
|
};
|
|
await viewer1.loadModelAsync(modelConfig1, onProgress);
|
|
await viewer2.loadModelAsync(modelConfig2, onProgress);
|
|
await viewer3.compare(modelConfig1, modelConfig2, onProgress).then(() => {
|
|
console.log(`[Demo] Compared models: ${url1}, ${url2}`);
|
|
if (!viewer3.layerManager) {
|
|
viewer3.layerManager = new LayerManager(viewer3);
|
|
}
|
|
if (!viewer3.dxfCompareSidePanel) {
|
|
viewer3.dxfCompareSidePanel = new DxfCompareSidePanel(viewer3);
|
|
}
|
|
});
|
|
|
|
// as a demo page, add dxfSettingsPanel to window!
|
|
window.dxfSettingsPanel = new DxfSettingsPanel(viewer3);
|
|
</script>
|
|
</body>
|
|
|
|
</html> |