@inweb/viewer-visualize 26.10.2 → 26.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/viewer-visualize.js +46 -4
- package/dist/viewer-visualize.js.map +1 -1
- package/dist/viewer-visualize.min.js +1 -1
- package/dist/viewer-visualize.module.js +41 -0
- package/dist/viewer-visualize.module.js.map +1 -1
- package/lib/Viewer/Components/CameraComponent.d.ts +11 -0
- package/package.json +5 -5
- package/src/Viewer/Components/CameraComponent.ts +78 -0
- package/src/Viewer/Components/index.ts +2 -0
|
@@ -2381,6 +2381,46 @@ commands.registerCommandAlias("clearMarkup", "clearOverlay");
|
|
|
2381
2381
|
commands.registerCommandAlias("clearSelected", "unselect");
|
|
2382
2382
|
commands.registerCommandAlias("zoomToExtents", "zoomExtents");
|
|
2383
2383
|
|
|
2384
|
+
class CameraComponent {
|
|
2385
|
+
constructor(viewer) {
|
|
2386
|
+
this.optionsChange = () => {
|
|
2387
|
+
this.switchCameraMode(this.viewer.options.cameraMode);
|
|
2388
|
+
};
|
|
2389
|
+
this.geometryEnd = () => {
|
|
2390
|
+
const activeView = this.viewer.visViewer().activeView;
|
|
2391
|
+
const mode = this.getCameraMode(activeView);
|
|
2392
|
+
this.viewer.options.cameraMode = mode;
|
|
2393
|
+
this.viewer.emitEvent({ type: "changecameramode", mode });
|
|
2394
|
+
activeView.delete();
|
|
2395
|
+
};
|
|
2396
|
+
this.viewer = viewer;
|
|
2397
|
+
this.viewer.addEventListener("databasechunk", this.geometryEnd);
|
|
2398
|
+
this.viewer.addEventListener("clear", this.geometryEnd);
|
|
2399
|
+
this.viewer.addEventListener("optionschange", this.optionsChange);
|
|
2400
|
+
this.viewer.addEventListener("initialize", this.optionsChange);
|
|
2401
|
+
}
|
|
2402
|
+
dispose() {
|
|
2403
|
+
this.viewer.removeEventListener("databasechunk", this.geometryEnd);
|
|
2404
|
+
this.viewer.removeEventListener("clear", this.geometryEnd);
|
|
2405
|
+
this.viewer.removeEventListener("optionschange", this.optionsChange);
|
|
2406
|
+
this.viewer.removeEventListener("initialize", this.optionsChange);
|
|
2407
|
+
}
|
|
2408
|
+
getCameraMode(view) {
|
|
2409
|
+
return view.perspective ? "perspective" : "orthographic";
|
|
2410
|
+
}
|
|
2411
|
+
switchCameraMode(mode) {
|
|
2412
|
+
if (!mode)
|
|
2413
|
+
return;
|
|
2414
|
+
const activeView = this.viewer.visViewer().activeView;
|
|
2415
|
+
if (mode !== this.getCameraMode(activeView)) {
|
|
2416
|
+
activeView.perspective = !activeView.perspective;
|
|
2417
|
+
this.viewer.update();
|
|
2418
|
+
this.viewer.emitEvent({ type: "changecameramode", mode });
|
|
2419
|
+
}
|
|
2420
|
+
activeView.delete();
|
|
2421
|
+
}
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2384
2424
|
class RenderLoopComponent {
|
|
2385
2425
|
constructor(viewer) {
|
|
2386
2426
|
this.animate = (time = 0) => {
|
|
@@ -2663,6 +2703,7 @@ class ResetComponent {
|
|
|
2663
2703
|
}
|
|
2664
2704
|
|
|
2665
2705
|
const components = componentsRegistry("visualizejs");
|
|
2706
|
+
components.registerComponent("CameraComponent", (viewer) => new CameraComponent(viewer));
|
|
2666
2707
|
components.registerComponent("ResizeCanvasComponent", (viewer) => new ResizeCanvasComponent(viewer));
|
|
2667
2708
|
components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
|
|
2668
2709
|
components.registerComponent("ZoomWheelComponent", (viewer) => new ZoomWheelComponent(viewer));
|