Files
gemini-viewer-examples/public/demo/empty_dxf_project.html

116 lines
4.2 KiB
HTML
Raw Normal View History

2022-11-04 11:39:56 +08:00
<html>
<head>
2022-11-22 16:38:55 +08:00
<link rel="icon" href="./gemini-viewer-examples/demo/favicon.ico" />
<link rel="stylesheet" type="text/css" href="./gemini-viewer-examples/demo/global.css" />
<link rel="stylesheet" href="./gemini-viewer-examples/demo/layerManager/layerManager.css">
<link rel="stylesheet" href="./gemini-viewer-examples/demo/settings/SettingsPanel.css">
2022-11-04 11:39:56 +08:00
<style>
.upload-btn {
margin-top: 2em;
}
.upload-btn button {
width: 0.1px;
height: 0.1px;
opacity: 0;
overflow: hidden;
position: absolute;
z-index: -1;
}
.upload-btn label {
color: #353535;
background: gray;
border: 0;
border-radius: 3px;
/*transition: ease 0.2s background-color;*/
font-size: 1rem;
font-weight: 700;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
display: inline-block;
overflow: hidden;
padding: 0.625rem 1.25rem;
}
.upload-btn label:hover {
background: #DDD;
}
.upload-btn svg {
width: 1em;
height: 1em;
vertical-align: middle;
fill: currentColor;
margin-top: -0.25em;
margin-right: 0.25em;
}
</style>
</head>
<body>
<div id="viewerContainer">
<div id="myCanvas" class="renderer-container"></div>
2022-11-04 11:39:56 +08:00
</div>
<div style="position: absolute; top: 10px; opacity: 0.6; width: 100%;text-align: center;">
<div class="upload-btn" id="uploadBtn">
<button id="uploadModelFile" type="button">点此上传本地模型文件</button>
<label for="uploadModelFile" title="">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" viewBox="0 0 20 17"><path d="M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z"></path></svg>
<span>Upload dxf</span>
</label>
<div style="margin-top: 1em;">
<input id="fileUrlInput" style="display: inline-block; width: 20em; height: 2em;">
<button
style="width: 8em; height: 2em; color: #fff; overflow: auto; z-index: 1; opacity: 1; background: #000;"
id="loadDxf">加载DXF
</button>
</div>
</div>
</div>
<script type="module">
2022-11-22 16:38:55 +08:00
import { DxfViewer, LocalDxfUploader } from "./gemini-viewer-examples/demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './gemini-viewer-examples/demo/settings/DxfSettingsPanel.js';
import LayerManager from './gemini-viewer-examples/demo/layerManager/LayerManager.js';
2022-11-04 11:39:56 +08:00
const config = {
containerId: "myCanvas",
2022-11-04 11:39:56 +08:00
enableAxisGizmo: true,
enableStats: true,
enableToolbar: true,
enableBottomBar: true,
enableSpinner: true,
enableProgressBar: true,
enableLayoutBar: true,
};
const viewer = new DxfViewer(config);
// const fontFiles = ["three/fonts/Microsoft_YaHei_Regular.typeface.json"];
2022-11-22 16:38:55 +08:00
const fontFiles = ["./gemini-viewer-examples/demo/three/fonts/hztxt.shx", "./gemini-viewer-examples/demo/three/fonts/simplex.shx"];
2022-11-04 11:39:56 +08:00
await viewer.setFont(fontFiles);
const modelUploader = new LocalDxfUploader(viewer);
modelUploader.onSuccess = () => {
!viewer.layerManager && (viewer.layerManager = new LayerManager(viewer));
}
document.getElementById("uploadModelFile").onclick = function() {
modelUploader.openFileBrowserToUpload();
}
document.getElementById("loadDxf").onclick = function() {
const url = document.getElementById("fileUrlInput").value;
if (url) {
viewer.loadModelAsync({ src: url, merge: true }).then(() => {
console.log(`[Demo] Loaded model ${url}`);
!viewer.layerManager && (viewer.layerManager = new LayerManager(viewer));
})
}
}
// as a demo page, add dxfSettingsPanel to window!
window.dxfSettingsPanel = new DxfSettingsPanel(viewer);
</script>
</body>
</html>