Update gemini-viewer to v0.2.49

This commit is contained in:
yanzexuan
2023-07-15 00:28:57 +08:00
parent 1cf6fbf7c8
commit bc514664db
24 changed files with 203 additions and 87 deletions

View File

@ -29,25 +29,25 @@
"url": "./demo/dxf_2.html" "url": "./demo/dxf_2.html"
}, { }, {
"title": "Drawing comparison with 1 viewport", "title": "Drawing comparison with 1 viewport",
"url": "./demo/dxf_3.html" "url": "./demo/dxf_3_compare_with_1_viewport.html"
}, { }, {
"title": "Drawing comparison with 2 viewports", "title": "Drawing comparison with 2 viewports",
"url": "./demo/dxf_8.html" "url": "./demo/dxf_8_compare_with_2_viewports.html"
}, { }, {
"title": "Upload files and compare with 2 viewports", "title": "Upload files and compare with 2 viewports",
"url": "./demo/dxf_10.html" "url": "./demo/dxf_10_upload_files_to_compre.html"
}, { }, {
"title": "Markups", "title": "Markups",
"url": "./demo/dxf_5.html" "url": "./demo/dxf_5_markups.html"
}, { }, {
"title": "Take screenshot via markup", "title": "Take screenshot via markup",
"url": "./demo/dxf_9.html" "url": "./demo/dxf_9_screenshot.html"
}, { }, {
"title": "Hotpoints", "title": "Hotpoints",
"url": "./demo/dxf_6.html" "url": "./demo/dxf_6_hotpoints.html"
}, { }, {
"title": "Building 1&2", "title": "Building 1&2",
"url": "./demo/dxf_7.html" "url": "./demo/dxf_7_building1_2.html"
}] }]
}, { }, {
"title": "Panoramas", "title": "Panoramas",

View File

@ -16,7 +16,14 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { BimViewer, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BimViewer,
MeasurementPlugin,
NavCubePlugin,
SectionPlugin,
ToolbarMenuId,
} from "./demo/libs/gemini-viewer.esm.min.js";
const project = { const project = {
"id": "rac_basic_sample_project", "id": "rac_basic_sample_project",
@ -43,6 +50,11 @@
const toolbar = viewer.toolbar; const toolbar = viewer.toolbar;
toolbar.updateMenu(ToolbarMenuId.BimTree, { visible: false }); toolbar.updateMenu(ToolbarMenuId.BimTree, { visible: false });
new AxisGizmoPlugin(viewer);
new MeasurementPlugin(viewer);
new NavCubePlugin(viewer);
new SectionPlugin(viewer);
// draco decoder path is needed to load draco encoded models. // draco decoder path is needed to load draco encoded models.
// gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here. // gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here.
const decoderPath = "./demo/three/js/libs/draco/gltf/"; const decoderPath = "./demo/three/js/libs/draco/gltf/";

View File

@ -16,7 +16,14 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { BimViewer, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BimViewer,
BottomBarPlugin,
GroundShadowPlugin,
NavCubePlugin,
ToolbarMenuId,
} from "./demo/libs/gemini-viewer.esm.min.js";
const project = { const project = {
id: "Duplex", id: "Duplex",
@ -39,18 +46,21 @@
{ {
containerId: "myCanvas", containerId: "myCanvas",
language: "en", language: "en",
enableAxisGizmo: true,
toolbarMenuConfig: { toolbarMenuConfig: {
[ToolbarMenuId.Measure]: { visible: false }, [ToolbarMenuId.Measure]: { visible: false },
[ToolbarMenuId.Fullscreen]: { visible: false }, [ToolbarMenuId.Fullscreen]: { visible: false },
[ToolbarMenuId.BimTree]: { visible: false }, [ToolbarMenuId.BimTree]: { visible: false },
}, },
enableBottomBar: true,
enableNavCube: true,
enableContextMenu: true, enableContextMenu: true,
}, },
project.camera project.camera
); );
new AxisGizmoPlugin(viewer);
new BottomBarPlugin(viewer);
new GroundShadowPlugin(viewer);
new NavCubePlugin(viewer);
// draco decoder path is needed to load draco encoded models. // draco decoder path is needed to load draco encoded models.
// gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here. // gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here.
const decoderPath = "./demo/three/js/libs/draco/gltf/"; const decoderPath = "./demo/three/js/libs/draco/gltf/";

View File

@ -16,7 +16,14 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { BimViewer, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BimViewer,
MeasurementPlugin,
NavCubePlugin,
SectionPlugin,
ToolbarMenuId,
} from "./demo/libs/gemini-viewer.esm.min.js";
const project = { const project = {
"id": "building1", "id": "building1",
@ -46,6 +53,11 @@
const toolbar = viewer.toolbar; const toolbar = viewer.toolbar;
toolbar.updateMenu(ToolbarMenuId.BimTree, { visible: false }); toolbar.updateMenu(ToolbarMenuId.BimTree, { visible: false });
new AxisGizmoPlugin(viewer);
new MeasurementPlugin(viewer);
new NavCubePlugin(viewer);
new SectionPlugin(viewer);
// font file is needed for loading dxf // font file is needed for loading dxf
// const fontFiles = ["./demo/three/fonts/Microsoft_YaHei_Regular.typeface.json"]; // const fontFiles = ["./demo/three/fonts/Microsoft_YaHei_Regular.typeface.json"];
const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"]; const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"];

View File

@ -19,7 +19,15 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, ViewerEvent,ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BottomBarPlugin,
DxfViewer,
MeasurementPlugin,
StatsPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from './demo/layerManager/LayerManager.js'; import LayerManager from './demo/layerManager/LayerManager.js';
@ -32,7 +40,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
@ -77,6 +84,11 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
new BottomBarPlugin(viewer);
new MeasurementPlugin(viewer);
new StatsPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -19,7 +19,15 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer,ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BottomBarPlugin,
DxfViewer,
MeasurementPlugin,
StatsPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
@ -32,7 +40,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
@ -77,6 +84,11 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer);
new BottomBarPlugin(viewer);
new MeasurementPlugin(viewer);
new StatsPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -73,8 +73,14 @@
</div> </div>
<script type="module"> <script type="module">
import { import {
DxfCompareHelper, AxisGizmoPlugin,
ToolbarMenuId, BottomBarPlugin,
DxfCompareHelper,
DxfViewer,
MeasurementPlugin,
StatsPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js"; } from "./demo/libs/gemini-viewer.esm.min.js";
import DxfComparePanel from "./demo/compare/dxfComparePanel.js"; import DxfComparePanel from "./demo/compare/dxfComparePanel.js";
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
@ -83,18 +89,12 @@
const compareHelper = new DxfCompareHelper( const compareHelper = new DxfCompareHelper(
{ {
containerId: "myCanvas1", containerId: "myCanvas1",
enableAxisGizmo: true,
enableStats: true,
enableToolbar: true, enableToolbar: true,
enableBottomBar: true,
enableSelection: true, enableSelection: true,
}, },
{ {
containerId: "myCanvas2", containerId: "myCanvas2",
enableAxisGizmo: true,
enableStats: true,
enableToolbar: true, enableToolbar: true,
enableBottomBar: true,
enableSelection: true, enableSelection: true,
} }
); );
@ -102,6 +102,11 @@
const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"]; const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"];
await compareHelper.setFont(fontFiles); await compareHelper.setFont(fontFiles);
new AxisGizmoPlugin(compareHelper.viewer, { ignoreZAxis: true });
new MeasurementPlugin(compareHelper.viewer);
new AxisGizmoPlugin(compareHelper.viewer2, { ignoreZAxis: true });
new MeasurementPlugin(compareHelper.viewer2);
compareHelper.viewer.toolbar.updateMenus( compareHelper.viewer.toolbar.updateMenus(
overrideToolbarConfig(compareHelper.viewer1) overrideToolbarConfig(compareHelper.viewer1)
); );

View File

@ -19,7 +19,15 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BottomBarPlugin,
DxfViewer,
MeasurementPlugin,
StatsPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
@ -32,7 +40,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
@ -77,6 +84,11 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer);
new BottomBarPlugin(viewer);
new MeasurementPlugin(viewer);
new StatsPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -20,7 +20,14 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { BaseDxfCompareHelper, DxfViewer, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BaseDxfCompareHelper,
DxfViewer,
MeasurementPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfComparePanel from "./demo/compare/dxfComparePanel.js" import DxfComparePanel from "./demo/compare/dxfComparePanel.js"
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
@ -29,7 +36,6 @@
const url2 = "./demo/models/dxf/doors_and_windows_mopdified.dxf"; const url2 = "./demo/models/dxf/doors_and_windows_mopdified.dxf";
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
@ -75,6 +81,10 @@
await compareHelper.setFont(fontFiles); await compareHelper.setFont(fontFiles);
window.compareHelper = compareHelper; window.compareHelper = compareHelper;
const viewer = compareHelper.viewer;
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
new MeasurementPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -80,7 +80,12 @@
</div> </div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, ViewerEvent, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
DxfViewer,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from './demo/layerManager/LayerManager.js'; import LayerManager from './demo/layerManager/LayerManager.js';
@ -93,7 +98,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
enableLayoutBar: true, enableLayoutBar: true,
@ -137,6 +141,8 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -94,7 +94,13 @@
</div> </div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, ViewerEvent, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
DxfViewer,
HotpointPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from './demo/layerManager/LayerManager.js'; import LayerManager from './demo/layerManager/LayerManager.js';
@ -107,7 +113,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
enableLayoutBar: true, enableLayoutBar: true,
@ -151,6 +156,9 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
const hotpointPlugin = new HotpointPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);
@ -225,18 +233,18 @@
hotpointsPerLayout[layoutName] = []; hotpointsPerLayout[layoutName] = [];
} }
hotpointsPerLayout[layoutName].push(hotpoint); hotpointsPerLayout[layoutName].push(hotpoint);
viewer.addHotpoint(hotpoint); hotpointPlugin.add(hotpoint);
hotpointCount++; hotpointCount++;
} }
}; };
// manages hotpoints for different layouts // manages hotpoints for different layouts
viewer.addEventListener(ViewerEvent.LayoutChanged, () => { viewer.addEventListener(ViewerEvent.LayoutChanged, () => {
viewer.clearHotpoints(); hotpointPlugin.clear();
const layoutName = viewer.getActiveLayoutName(); const layoutName = viewer.getActiveLayoutName();
const hotpoints = hotpointsPerLayout[layoutName]; const hotpoints = hotpointsPerLayout[layoutName];
if (hotpoints) { if (hotpoints) {
hotpoints.forEach((h) => viewer.addHotpoint(h)); hotpoints.forEach((h) => hotpointPlugin.add(h));
} }
}); });
@ -277,15 +285,7 @@
console.log(`Moving hotpoint '${hotpoint.hotpointId}' from (${n2s(hotpoint.anchorPosition[0])}, ${n2s(hotpoint.anchorPosition[1])}) to (${n2s(location.x)}, ${n2s(location.y)})`); console.log(`Moving hotpoint '${hotpoint.hotpointId}' from (${n2s(hotpoint.anchorPosition[0])}, ${n2s(hotpoint.anchorPosition[1])}) to (${n2s(location.x)}, ${n2s(location.y)})`);
hotpoint.anchorPosition[0] = location.x; hotpoint.anchorPosition[0] = location.x;
hotpoint.anchorPosition[1] = location.y; hotpoint.anchorPosition[1] = location.y;
// update object position in three.js hotpointPlugin.move(hotpoint.hotpointId, location);
// DxfViewer desn't have api to update hotpoint position yet, so, we'll hack it
const objects = viewer.hotpointRoot?.children || [];
let object = objects.find((o) => o.userData.hotpoint?.hotpointId === hotpoint.hotpointId);
if (object) {
object.position.set(location.x, location.y, 0);
object.updateWorldMatrix(false, false);
viewer.enableRender();
}
}; };
window.addEventListener("pointerdown", onPointerDown); window.addEventListener("pointerdown", onPointerDown);
</script> </script>

View File

@ -19,7 +19,13 @@
<div id="myCanvas" class="container"></div> <div id="myCanvas" class="container"></div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, ViewerEvent, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
DxfViewer,
MeasurementPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from './demo/layerManager/LayerManager.js'; import LayerManager from './demo/layerManager/LayerManager.js';
@ -32,7 +38,6 @@
}; };
const viewerCfg = { const viewerCfg = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
@ -77,6 +82,9 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
new MeasurementPlugin(viewer);
const onProgress = (event) => { const onProgress = (event) => {
const progress = ((event.loaded * 100) / event.total).toFixed(1); const progress = ((event.loaded * 100) / event.total).toFixed(1);
console.log(`[Demo] Loading progress: ${progress}%`); console.log(`[Demo] Loading progress: ${progress}%`);

View File

@ -57,8 +57,12 @@
<script type="module"> <script type="module">
import { import {
DxfCompareHelper, AxisGizmoPlugin,
ToolbarMenuId, DxfCompareHelper,
DxfViewer,
MeasurementPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js"; } from "./demo/libs/gemini-viewer.esm.min.js";
import DxfComparePanel from "./demo/compare/dxfComparePanel.js"; import DxfComparePanel from "./demo/compare/dxfComparePanel.js";
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
@ -69,16 +73,12 @@
const compareHelper = new DxfCompareHelper( const compareHelper = new DxfCompareHelper(
{ {
containerId: "myCanvas1", containerId: "myCanvas1",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableBottomBar: true,
enableSelection: true, enableSelection: true,
}, },
{ {
containerId: "myCanvas2", containerId: "myCanvas2",
enableAxisGizmo: false,
enableToolbar: true, enableToolbar: true,
enableBottomBar: false,
enableSelection: false, enableSelection: false,
} }
); );
@ -86,6 +86,11 @@
const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"]; const fontFiles = ["./demo/three/fonts/hztxt.shx", "./demo/three/fonts/simplex.shx"];
await compareHelper.setFont(fontFiles); await compareHelper.setFont(fontFiles);
new AxisGizmoPlugin(compareHelper.viewer, { ignoreZAxis: true });
new MeasurementPlugin(compareHelper.viewer);
new AxisGizmoPlugin(compareHelper.viewer2, { ignoreZAxis: true });
new MeasurementPlugin(compareHelper.viewer2);
compareHelper.viewer.toolbar?.updateMenus( compareHelper.viewer.toolbar?.updateMenus(
overrideToolbarConfig(compareHelper.viewer1) overrideToolbarConfig(compareHelper.viewer1)
); );

View File

@ -33,11 +33,13 @@
</div> </div>
<script type="module"> <script type="module">
import { import {
DxfViewer, AxisGizmoPlugin,
ViewerEvent, DxfViewer,
MenuTypeEnums, MeasurementPlugin,
ToolbarMenuId, MenuTypeEnums,
ScreenshotMode, ScreenshotMode,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js"; } from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js"; import DxfSettingsPanel from "./demo/settings/DxfSettingsPanel.js";
import LayerManager from "./demo/layerManager/LayerManager.js"; import LayerManager from "./demo/layerManager/LayerManager.js";
@ -51,14 +53,10 @@
}; };
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableStats: true,
enableToolbar: true, enableToolbar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
enableBottomBar: true,
enableLayoutBar: true, enableLayoutBar: true,
enableSelection: true,
toolbarMenuConfig: { toolbarMenuConfig: {
[ToolbarMenuId.Settings]: { [ToolbarMenuId.Settings]: {
onActive: () => { onActive: () => {
@ -95,7 +93,11 @@
}, },
}; };
const viewer = new DxfViewer(config); const viewer = new DxfViewer(config);
const fontFiles = [
new AxisGizmoPlugin(viewer, { ignoreZAxis: true });
new MeasurementPlugin(viewer);
const fontFiles = [
"./demo/three/fonts/hztxt.shx", "./demo/three/fonts/hztxt.shx",
"./demo/three/fonts/simplex.shx", "./demo/three/fonts/simplex.shx",
]; ];

View File

@ -75,15 +75,22 @@
</div> </div>
</div> </div>
<script type="module"> <script type="module">
import { DxfViewer, LocalDxfUploader, ToolbarMenuId } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BottomBarPlugin,
DxfViewer,
LocalDxfUploader,
MeasurementPlugin,
StatsPlugin,
ToolbarMenuId,
ViewerEvent,
} from "./demo/libs/gemini-viewer.esm.min.js";
import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js'; import DxfSettingsPanel from './demo/settings/DxfSettingsPanel.js';
import LayerManager from './demo/layerManager/LayerManager.js'; import LayerManager from './demo/layerManager/LayerManager.js';
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableToolbar: true, enableToolbar: true,
enableBottomBar: true,
enableSpinner: true, enableSpinner: true,
enableProgressBar: true, enableProgressBar: true,
enableLayoutBar: true, enableLayoutBar: true,
@ -128,6 +135,11 @@
await viewer.setFont(fontFiles); await viewer.setFont(fontFiles);
window.viewer = viewer; window.viewer = viewer;
new AxisGizmoPlugin(viewer);
new BottomBarPlugin(viewer);
new MeasurementPlugin(viewer);
new StatsPlugin(viewer);
const modelUploader = new LocalDxfUploader(viewer); const modelUploader = new LocalDxfUploader(viewer);
modelUploader.onSuccess = () => { modelUploader.onSuccess = () => {
!viewer.layerManager && (viewer.layerManager = new LayerManager(viewer)); !viewer.layerManager && (viewer.layerManager = new LayerManager(viewer));

View File

@ -66,7 +66,17 @@
</div> </div>
</div> </div>
<script type="module"> <script type="module">
import { BimViewer, ToolbarMenuId, LocalModelUploader } from "./demo/libs/gemini-viewer.esm.min.js"; import {
AxisGizmoPlugin,
BimViewer,
BottomBarPlugin,
GroundShadowPlugin,
LocalModelUploader,
MeasurementPlugin,
NavCubePlugin,
SectionPlugin,
ToolbarMenuId,
} from "./demo/libs/gemini-viewer.esm.min.js";
const project = { const project = {
id: "empty_project", id: "empty_project",
@ -85,16 +95,21 @@
const viewer = new BimViewer( const viewer = new BimViewer(
{ {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
toolbarMenuConfig: { toolbarMenuConfig: {
[ToolbarMenuId.BimTree]: { visible: false }, [ToolbarMenuId.BimTree]: { visible: false },
}, },
enableBottomBar: true,
enableNavCube: true,
enableContextMenu: true, enableContextMenu: true,
}, },
project.camera project.camera
); );
new AxisGizmoPlugin(viewer);
new BottomBarPlugin(viewer);
new GroundShadowPlugin(viewer);
new MeasurementPlugin(viewer);
new NavCubePlugin(viewer);
new SectionPlugin(viewer);
// draco decoder path is needed to load draco encoded models. // draco decoder path is needed to load draco encoded models.
// gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here. // gemini-viewer js sdk user maintains draco decoder code somewhere, and provides the path here.
const decoderPath = "./demo/three/js/libs/draco/gltf/"; const decoderPath = "./demo/three/js/libs/draco/gltf/";

View File

@ -69,7 +69,6 @@
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableBottomBar: true, enableBottomBar: true,
} }
const vrViewer = new VRViewer(config); const vrViewer = new VRViewer(config);

View File

@ -182,8 +182,6 @@
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableBottomBar: true,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.onHotpointClicked = (hotpoint) => { viewer.onHotpointClicked = (hotpoint) => {

View File

@ -45,8 +45,6 @@
}]; }];
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: false,
enableBottomBar: false,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.setViewpoints(viewpoints); viewer.setViewpoints(viewpoints);

View File

@ -45,8 +45,6 @@
}]; }];
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: false,
enableBottomBar: false,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.setViewpoints(viewpoints); viewer.setViewpoints(viewpoints);

View File

@ -66,8 +66,6 @@
}]; }];
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: false,
enableBottomBar: false,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.setViewpoints(viewpoints); viewer.setViewpoints(viewpoints);

View File

@ -115,8 +115,6 @@
}); });
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableBottomBar: true,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.onHotpointClicked = (hotpoint) => { viewer.onHotpointClicked = (hotpoint) => {

View File

@ -144,13 +144,9 @@
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableBottomBar: true,
} }
const config2 = { const config2 = {
containerId: "myCanvas2", containerId: "myCanvas2",
enableAxisGizmo: true,
enableBottomBar: true,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
const viewer2 = new VRViewer(config2); const viewer2 = new VRViewer(config2);

View File

@ -245,8 +245,6 @@
const config = { const config = {
containerId: "myCanvas", containerId: "myCanvas",
enableAxisGizmo: true,
enableBottomBar: true,
} }
const viewer = new VRViewer(config); const viewer = new VRViewer(config);
viewer.onHotpointClicked = (hotpoint) => { viewer.onHotpointClicked = (hotpoint) => {