@inweb/viewer-visualize 26.9.6 → 26.9.8

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.
@@ -3076,11 +3076,58 @@
3076
3076
  }
3077
3077
  }
3078
3078
 
3079
+ class ResetComponent {
3080
+ constructor(viewer) {
3081
+ this.savedCameraSettings = null;
3082
+ this.onDatabaseChunk = () => {
3083
+ if (!this.viewer.visualizeJs)
3084
+ return;
3085
+ this.savedCameraSettings = this.getOrthogonalCameraSettings();
3086
+ };
3087
+ this.viewer = viewer;
3088
+ this.viewer.addEventListener("databasechunk", this.onDatabaseChunk);
3089
+ }
3090
+ dispose() {
3091
+ this.viewer.removeEventListener("databasechunk", this.onDatabaseChunk);
3092
+ }
3093
+ resetCameraPosition() {
3094
+ if (this.savedCameraSettings && this.viewer.visualizeJs) {
3095
+ this.setOrthogonalCameraSettings(this.savedCameraSettings);
3096
+ }
3097
+ }
3098
+ getOrthogonalCameraSettings() {
3099
+ const visViewer = this.viewer.visViewer();
3100
+ const activeView = visViewer.activeView;
3101
+ return {
3102
+ view_point: this.getPoint3dFromArray(activeView.viewPosition),
3103
+ direction: this.getPoint3dFromArray(activeView.viewTarget),
3104
+ up_vector: this.getPoint3dFromArray(activeView.upVector),
3105
+ field_width: activeView.viewFieldWidth,
3106
+ field_height: activeView.viewFieldHeight,
3107
+ view_to_world_scale: 1,
3108
+ };
3109
+ }
3110
+ setOrthogonalCameraSettings(settings) {
3111
+ const visViewer = this.viewer.visViewer();
3112
+ const activeView = visViewer.activeView;
3113
+ if (settings) {
3114
+ activeView.setView(this.getLogicalPoint3dAsArray(settings.view_point), this.getLogicalPoint3dAsArray(settings.direction), this.getLogicalPoint3dAsArray(settings.up_vector), settings.field_width, settings.field_height, true);
3115
+ }
3116
+ }
3117
+ getPoint3dFromArray(array) {
3118
+ return { x: array[0], y: array[1], z: array[2] };
3119
+ }
3120
+ getLogicalPoint3dAsArray(point3d) {
3121
+ return [point3d.x, point3d.y, point3d.z];
3122
+ }
3123
+ }
3124
+
3079
3125
  const components = componentsRegistry("visualizejs");
3080
3126
  components.registerComponent("ResizeCanvasComponent", (viewer) => new ResizeCanvasComponent(viewer));
3081
3127
  components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
3082
3128
  components.registerComponent("ZoomWheelComponent", (viewer) => new ZoomWheelComponent(viewer));
3083
3129
  components.registerComponent("GestureManagerComponent", (viewer) => new GestureManagerComponent(viewer));
3130
+ components.registerComponent("ResetComponent", (viewer) => new ResetComponent(viewer));
3084
3131
 
3085
3132
  class FileLoader {
3086
3133
  constructor() {