@inweb/viewer-three 27.1.0 → 27.1.1

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.
Files changed (52) hide show
  1. package/dist/extensions/components/InfoPanelComponent.js +7 -9
  2. package/dist/extensions/components/InfoPanelComponent.js.map +1 -1
  3. package/dist/extensions/components/InfoPanelComponent.min.js +1 -1
  4. package/dist/extensions/components/InfoPanelComponent.module.js +7 -9
  5. package/dist/extensions/components/InfoPanelComponent.module.js.map +1 -1
  6. package/dist/extensions/loaders/GLTFCloudLoader.js +1 -1
  7. package/dist/extensions/loaders/GLTFCloudLoader.js.map +1 -1
  8. package/dist/extensions/loaders/GLTFCloudLoader.min.js +1 -1
  9. package/dist/extensions/loaders/GLTFCloudLoader.module.js +1 -1
  10. package/dist/extensions/loaders/GLTFCloudLoader.module.js.map +1 -1
  11. package/dist/extensions/loaders/GLTFFileLoader.js +1 -1
  12. package/dist/extensions/loaders/GLTFFileLoader.js.map +1 -1
  13. package/dist/extensions/loaders/GLTFFileLoader.min.js +1 -1
  14. package/dist/extensions/loaders/GLTFFileLoader.module.js +1 -1
  15. package/dist/extensions/loaders/GLTFFileLoader.module.js.map +1 -1
  16. package/dist/extensions/loaders/IFCXLoader.js +2 -2
  17. package/dist/extensions/loaders/IFCXLoader.js.map +1 -1
  18. package/dist/extensions/loaders/IFCXLoader.min.js +1 -1
  19. package/dist/extensions/loaders/IFCXLoader.module.js +2 -2
  20. package/dist/extensions/loaders/IFCXLoader.module.js.map +1 -1
  21. package/dist/extensions/loaders/PotreeLoader.js +1 -1
  22. package/dist/extensions/loaders/PotreeLoader.js.map +1 -1
  23. package/dist/extensions/loaders/PotreeLoader.min.js +1 -1
  24. package/dist/extensions/loaders/PotreeLoader.module.js +1 -1
  25. package/dist/extensions/loaders/PotreeLoader.module.js.map +1 -1
  26. package/dist/viewer-three.js +35 -26
  27. package/dist/viewer-three.js.map +1 -1
  28. package/dist/viewer-three.min.js +2 -2
  29. package/dist/viewer-three.module.js +35 -26
  30. package/dist/viewer-three.module.js.map +1 -1
  31. package/extensions/components/InfoPanelComponent.ts +8 -11
  32. package/extensions/loaders/GLTFCloudLoader.ts +1 -1
  33. package/extensions/loaders/GLTFFileLoader.ts +1 -1
  34. package/extensions/loaders/IFCX/IFCXCloudLoader.ts +1 -1
  35. package/extensions/loaders/IFCX/IFCXFileLoader.ts +1 -1
  36. package/extensions/loaders/Potree/PotreeFileLoader.ts +1 -1
  37. package/lib/Viewer/Viewer.d.ts +1 -1
  38. package/lib/Viewer/commands/CreatePreview.d.ts +1 -1
  39. package/lib/Viewer/components/RenderLoopComponent.d.ts +1 -1
  40. package/lib/Viewer/draggers/FlyDragger.d.ts +1 -0
  41. package/lib/Viewer/draggers/WalkDragger.d.ts +1 -0
  42. package/lib/Viewer/loaders/index.d.ts +2 -1
  43. package/package.json +5 -5
  44. package/src/Viewer/Viewer.ts +28 -25
  45. package/src/Viewer/commands/CreatePreview.ts +2 -2
  46. package/src/Viewer/components/InfoComponent.ts +4 -4
  47. package/src/Viewer/components/RenderLoopComponent.ts +2 -2
  48. package/src/Viewer/draggers/FlyDragger.ts +8 -1
  49. package/src/Viewer/draggers/WalkDragger.ts +8 -1
  50. package/src/Viewer/loaders/GLTFCloudDynamicLoader.ts +2 -2
  51. package/src/Viewer/loaders/GLTFFileDynamicLoader.ts +2 -2
  52. package/src/Viewer/loaders/index.ts +2 -1
@@ -1910,11 +1910,13 @@ class WalkDragger {
1910
1910
  };
1911
1911
  this.viewerRender = () => {
1912
1912
  this.joyStickControls.update();
1913
- this.controls.update();
1914
1913
  };
1915
1914
  this.viewerZoom = () => {
1916
1915
  this.controls.rotateDelta.set(0, 0);
1917
1916
  };
1917
+ this.animate = () => {
1918
+ this.controls.update();
1919
+ };
1918
1920
  const meshOnlyGround = [];
1919
1921
  viewer.models.forEach((model) => model.getVisibleObjects().forEach((obj) => {
1920
1922
  if (obj instanceof Mesh) {
@@ -1927,12 +1929,14 @@ class WalkDragger {
1927
1929
  this.joyStickControls = new JoyStickControls(viewer.camera, viewer.canvas, viewer.canvas, meshOnlyGround);
1928
1930
  this.joyStickControls.addEventListener("change", this.controlsChange);
1929
1931
  this.viewer = viewer;
1932
+ this.viewer.addEventListener("animate", this.animate);
1930
1933
  this.viewer.addEventListener("render", this.viewerRender);
1931
1934
  this.viewer.addEventListener("zoom", this.viewerZoom);
1932
1935
  this.viewer.addEventListener("changecameramode", this.updateControlsCamera);
1933
1936
  this.updateControls();
1934
1937
  }
1935
1938
  dispose() {
1939
+ this.viewer.removeEventListener("animate", this.animate);
1936
1940
  this.viewer.removeEventListener("render", this.viewerRender);
1937
1941
  this.viewer.removeEventListener("zoom", this.viewerZoom);
1938
1942
  this.viewer.removeEventListener("changecameramode", this.updateControlsCamera);
@@ -2112,23 +2116,27 @@ class FlyDragger {
2112
2116
  };
2113
2117
  this.viewerRender = () => {
2114
2118
  this.joyStickControls.update();
2115
- this.controls.update();
2116
2119
  };
2117
2120
  this.viewerZoom = () => {
2118
2121
  this.controls.rotateDelta.set(0, 0);
2119
2122
  };
2123
+ this.animate = () => {
2124
+ this.controls.update();
2125
+ };
2120
2126
  this.controls = new FlyControls(viewer.camera, viewer.canvas);
2121
2127
  this.controls.addEventListener("change", this.controlsChange);
2122
2128
  this.controls.addEventListener("flyspeedchange", this.flyspeedChange);
2123
2129
  this.joyStickControls = new JoyStickControls(viewer.camera, viewer.canvas, viewer.canvas, []);
2124
2130
  this.joyStickControls.addEventListener("change", this.controlsChange);
2125
2131
  this.viewer = viewer;
2132
+ this.viewer.addEventListener("animate", this.animate);
2126
2133
  this.viewer.addEventListener("render", this.viewerRender);
2127
2134
  this.viewer.addEventListener("zoom", this.viewerZoom);
2128
2135
  this.viewer.addEventListener("changecameramode", this.updateControlsCamera);
2129
2136
  this.updateControls();
2130
2137
  }
2131
2138
  dispose() {
2139
+ this.viewer.removeEventListener("animate", this.animate);
2132
2140
  this.viewer.removeEventListener("render", this.viewerRender);
2133
2141
  this.viewer.removeEventListener("zoom", this.viewerZoom);
2134
2142
  this.viewer.removeEventListener("changecameramode", this.updateControlsCamera);
@@ -2178,9 +2186,9 @@ function clearSlices(viewer) {
2178
2186
  viewer.clearSlices();
2179
2187
  }
2180
2188
 
2181
- function createPreview(viewer, type = "image/jpeg", encoderOptions = 0.25) {
2189
+ function createPreview(viewer, type = "image/jpeg", quality = 0.25) {
2182
2190
  viewer.update(true);
2183
- return viewer.canvas.toDataURL(type, encoderOptions);
2191
+ return viewer.canvas.toDataURL(type, quality);
2184
2192
  }
2185
2193
 
2186
2194
  function explode(viewer, index = 0) {
@@ -2727,9 +2735,9 @@ class InfoComponent {
2727
2735
  console.log("File load time:", this.viewer.info.performance.loadTime, "ms");
2728
2736
  };
2729
2737
  this.resize = () => {
2730
- const rendererSize = this.viewer.renderer.getSize(new Vector2());
2731
- this.viewer.info.render.viewport.width = rendererSize.x;
2732
- this.viewer.info.render.viewport.height = rendererSize.y;
2738
+ const { width, height } = this.viewer.canvas;
2739
+ this.viewer.info.render.viewport.width = width;
2740
+ this.viewer.info.render.viewport.height = height;
2733
2741
  };
2734
2742
  this.render = () => {
2735
2743
  this.viewer.info.render.drawCalls = this.viewer.renderer.info.render.calls;
@@ -2778,13 +2786,13 @@ class InfoComponent {
2778
2786
 
2779
2787
  class RenderLoopComponent {
2780
2788
  constructor(viewer) {
2781
- this.animate = (time = 0) => {
2789
+ this.animate = (time) => {
2782
2790
  this.requestId = requestAnimationFrame(this.animate);
2783
2791
  this.viewer.render(time);
2784
2792
  this.viewer.emitEvent({ type: "animate", time });
2785
2793
  };
2786
2794
  this.viewer = viewer;
2787
- this.animate();
2795
+ this.requestId = requestAnimationFrame(this.animate);
2788
2796
  }
2789
2797
  dispose() {
2790
2798
  cancelAnimationFrame(this.requestId);
@@ -6413,13 +6421,13 @@ class GLTFFileDynamicLoader extends Loader {
6413
6421
  this.viewer.models.push(modelImpl);
6414
6422
  this.viewer.syncOptions();
6415
6423
  this.viewer.syncOverlay();
6416
- this.viewer.update();
6417
6424
  this.viewer.emitEvent({ type: "databasechunk", data: scene, file });
6425
+ this.viewer.update(true);
6418
6426
  });
6419
6427
  this.gltfLoader.addEventListener("geometryerror", (data) => {
6420
6428
  this.viewer.emitEvent({ type: "geometryerror", data, file });
6421
6429
  });
6422
- this.gltfLoader.addEventListener("update", (data) => {
6430
+ this.gltfLoader.addEventListener("update", () => {
6423
6431
  this.viewer.update();
6424
6432
  });
6425
6433
  const loadController = {
@@ -6501,13 +6509,13 @@ class GLTFCloudDynamicLoader extends Loader {
6501
6509
  this.viewer.models.push(modelImpl);
6502
6510
  this.viewer.syncOptions();
6503
6511
  this.viewer.syncOverlay();
6504
- this.viewer.update();
6505
6512
  this.viewer.emitEvent({ type: "databasechunk", data: scene, file: model.file, model });
6513
+ this.viewer.update(true);
6506
6514
  });
6507
6515
  this.gltfLoader.addEventListener("geometryerror", (data) => {
6508
6516
  this.viewer.emitEvent({ type: "geometryerror", data, file: model.file, model });
6509
6517
  });
6510
- this.gltfLoader.addEventListener("update", (data) => {
6518
+ this.gltfLoader.addEventListener("update", () => {
6511
6519
  this.viewer.update();
6512
6520
  });
6513
6521
  const loadController = {
@@ -6831,11 +6839,13 @@ class Viewer extends EventEmitter2 {
6831
6839
  this.syncOptions();
6832
6840
  this.syncOverlay();
6833
6841
  this._renderTime = performance.now();
6834
- this.render(this._renderTime);
6835
- if (typeof onProgress === "function")
6836
- onProgress(new ProgressEvent("progress", { lengthComputable: true, loaded: 1, total: 1 }));
6842
+ if (typeof onProgress === "function") {
6843
+ const event = new ProgressEvent("progress", { lengthComputable: true, loaded: 1, total: 1 });
6844
+ onProgress(event);
6845
+ }
6837
6846
  this.emitEvent({ type: "initializeprogress", data: 1, loaded: 1, total: 1 });
6838
6847
  this.emitEvent({ type: "initialize" });
6848
+ this.update(true);
6839
6849
  return Promise.resolve(this);
6840
6850
  }
6841
6851
  dispose() {
@@ -6899,8 +6909,8 @@ class Viewer extends EventEmitter2 {
6899
6909
  }
6900
6910
  this.renderer.setSize(width, height, updateStyle);
6901
6911
  this.composer.setSize(width, height);
6902
- this.update(true);
6903
6912
  this.emitEvent({ type: "resize", width, height });
6913
+ this.update(true);
6904
6914
  }
6905
6915
  update(force = false) {
6906
6916
  const time = performance.now();
@@ -6910,11 +6920,11 @@ class Viewer extends EventEmitter2 {
6910
6920
  this.render(time);
6911
6921
  this.emitEvent({ type: "update", force });
6912
6922
  }
6913
- render(time) {
6923
+ render(time, force = false) {
6914
6924
  var _a, _b;
6915
6925
  if (!this.renderer)
6916
6926
  return;
6917
- if (!this._renderNeeded)
6927
+ if (!this._renderNeeded && !force)
6918
6928
  return;
6919
6929
  if (!time)
6920
6930
  time = performance.now();
@@ -6976,6 +6986,7 @@ class Viewer extends EventEmitter2 {
6976
6986
  throw error;
6977
6987
  }
6978
6988
  this.emitEvent({ type: "geometryend", file, model });
6989
+ this.update(true);
6979
6990
  return this;
6980
6991
  }
6981
6992
  openGltfFile(file, externalFiles, params = {}) {
@@ -7008,8 +7019,8 @@ class Viewer extends EventEmitter2 {
7008
7019
  this.target.set(0, 0, 0);
7009
7020
  this.syncOptions();
7010
7021
  this.syncOverlay();
7011
- this.update(true);
7012
7022
  this.emitEvent({ type: "clear" });
7023
+ this.update(true);
7013
7024
  return this;
7014
7025
  }
7015
7026
  is3D() {
@@ -7197,7 +7208,7 @@ class Viewer extends EventEmitter2 {
7197
7208
  this.syncOverlay();
7198
7209
  this.setActiveDragger(draggerName);
7199
7210
  this.emitEvent({ type: "drawviewpoint", data: viewpoint });
7200
- this.update();
7211
+ this.update(true);
7201
7212
  }
7202
7213
  createViewpoint() {
7203
7214
  if (!this.renderer)
@@ -7278,11 +7289,9 @@ class Viewer extends EventEmitter2 {
7278
7289
  }
7279
7290
  return { x: intersectionPoint.x, y: intersectionPoint.y, z: intersectionPoint.z };
7280
7291
  }
7281
- else {
7282
- const point = new Vector3(x, y, -1);
7283
- point.unproject(this.camera);
7284
- return { x: point.x, y: point.y, z: point.z };
7285
- }
7292
+ const point = new Vector3(x, y, -1);
7293
+ point.unproject(this.camera);
7294
+ return { x: point.x, y: point.y, z: point.z };
7286
7295
  }
7287
7296
  worldToScreen(position) {
7288
7297
  if (!this.renderer)