@inweb/viewer-visualize 26.9.5 → 26.9.7

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.
@@ -2590,11 +2590,58 @@ class GestureManagerComponent {
2590
2590
  }
2591
2591
  }
2592
2592
 
2593
+ class ResetComponent {
2594
+ constructor(viewer) {
2595
+ this.savedCameraSettings = null;
2596
+ this.onDatabaseChunk = () => {
2597
+ if (!this.viewer.visualizeJs)
2598
+ return;
2599
+ this.savedCameraSettings = this.getOrthogonalCameraSettings();
2600
+ };
2601
+ this.viewer = viewer;
2602
+ this.viewer.addEventListener("databasechunk", this.onDatabaseChunk);
2603
+ }
2604
+ dispose() {
2605
+ this.viewer.removeEventListener("databasechunk", this.onDatabaseChunk);
2606
+ }
2607
+ resetCameraPosition() {
2608
+ if (this.savedCameraSettings && this.viewer.visualizeJs) {
2609
+ this.setOrthogonalCameraSettings(this.savedCameraSettings);
2610
+ }
2611
+ }
2612
+ getOrthogonalCameraSettings() {
2613
+ const visViewer = this.viewer.visViewer();
2614
+ const activeView = visViewer.activeView;
2615
+ return {
2616
+ view_point: this.getPoint3dFromArray(activeView.viewPosition),
2617
+ direction: this.getPoint3dFromArray(activeView.viewTarget),
2618
+ up_vector: this.getPoint3dFromArray(activeView.upVector),
2619
+ field_width: activeView.viewFieldWidth,
2620
+ field_height: activeView.viewFieldHeight,
2621
+ view_to_world_scale: 1,
2622
+ };
2623
+ }
2624
+ setOrthogonalCameraSettings(settings) {
2625
+ const visViewer = this.viewer.visViewer();
2626
+ const activeView = visViewer.activeView;
2627
+ if (settings) {
2628
+ activeView.setView(this.getLogicalPoint3dAsArray(settings.view_point), this.getLogicalPoint3dAsArray(settings.direction), this.getLogicalPoint3dAsArray(settings.up_vector), settings.field_width, settings.field_height, true);
2629
+ }
2630
+ }
2631
+ getPoint3dFromArray(array) {
2632
+ return { x: array[0], y: array[1], z: array[2] };
2633
+ }
2634
+ getLogicalPoint3dAsArray(point3d) {
2635
+ return [point3d.x, point3d.y, point3d.z];
2636
+ }
2637
+ }
2638
+
2593
2639
  const components = componentsRegistry("visualizejs");
2594
2640
  components.registerComponent("ResizeCanvasComponent", (viewer) => new ResizeCanvasComponent(viewer));
2595
2641
  components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
2596
2642
  components.registerComponent("ZoomWheelComponent", (viewer) => new ZoomWheelComponent(viewer));
2597
2643
  components.registerComponent("GestureManagerComponent", (viewer) => new GestureManagerComponent(viewer));
2644
+ components.registerComponent("ResetComponent", (viewer) => new ResetComponent(viewer));
2598
2645
 
2599
2646
  class FileLoader {
2600
2647
  constructor() {