@inweb/viewer-three 26.6.2 → 26.6.4

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.
@@ -1,6 +1,6 @@
1
1
  import { Loader } from "@inweb/viewer-core";
2
2
  import { Viewer } from "../Viewer";
3
- export declare class GLTFModelLoader extends Loader {
3
+ export declare class GLTFCloudModelLoader extends Loader {
4
4
  viewer: Viewer;
5
5
  constructor(viewer: Viewer);
6
6
  isSupport(model: any): boolean;
@@ -5,5 +5,5 @@ export declare class GLTFFileLoader extends Loader {
5
5
  viewer: Viewer;
6
6
  constructor(viewer: Viewer);
7
7
  isSupport(file: any, format?: string): boolean;
8
- load(buffer: any, format?: string, params?: GLTFLoadParams): Promise<this>;
8
+ load(file: any, format?: string, params?: GLTFLoadParams): Promise<this>;
9
9
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inweb/viewer-three",
3
- "version": "26.6.2",
3
+ "version": "26.6.4",
4
4
  "description": "JavaScript library for rendering CAD and BIM files in a browser using Three.js",
5
5
  "homepage": "https://cloud.opendesign.com/docs/index.html",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -31,10 +31,10 @@
31
31
  "docs": "typedoc"
32
32
  },
33
33
  "dependencies": {
34
- "@inweb/client": "~26.6.2",
35
- "@inweb/eventemitter2": "~26.6.2",
36
- "@inweb/markup": "~26.6.2",
37
- "@inweb/viewer-core": "~26.6.2"
34
+ "@inweb/client": "~26.6.4",
35
+ "@inweb/eventemitter2": "~26.6.4",
36
+ "@inweb/markup": "~26.6.4",
37
+ "@inweb/viewer-core": "~26.6.4"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/three": "^0.173.0",
@@ -24,7 +24,7 @@
24
24
  import { Loader, Viewer } from "@inweb/viewer-three";
25
25
  import { parse, clear } from "./IFCX/render.js";
26
26
 
27
- export class IFCXModelLoader extends Loader {
27
+ export class IFCXCloudFileLoader extends Loader {
28
28
  public viewer: Viewer;
29
29
 
30
30
  constructor(viewer: Viewer) {
@@ -41,12 +41,12 @@ export class IFCXModelLoader extends Loader {
41
41
  );
42
42
  }
43
43
 
44
- override async load(model: any): Promise<this> {
44
+ override async load(file: any): Promise<this> {
45
45
  const progress = (progress: number) => {
46
- this.viewer.emitEvent({ type: "geometryprogress", data: progress, file: model });
46
+ this.viewer.emitEvent({ type: "geometryprogress", data: progress, file });
47
47
  };
48
48
 
49
- const arrayBuffer = await model.download(progress, this.abortController.signal);
49
+ const arrayBuffer = await file.download(progress, this.abortController.signal);
50
50
  if (!this.viewer.scene) return this;
51
51
 
52
52
  const textDecoder = new TextDecoder();
@@ -56,7 +56,7 @@ export class IFCXModelLoader extends Loader {
56
56
  clear();
57
57
 
58
58
  let handle = 0;
59
- scene.traverse((object) => {
59
+ scene.traverse((object: any) => {
60
60
  object.userData = { handle, ...object.userData };
61
61
  handle++;
62
62
  });
@@ -68,7 +68,7 @@ export class IFCXModelLoader extends Loader {
68
68
  this.viewer.syncOverlay();
69
69
  this.viewer.update();
70
70
 
71
- this.viewer.emitEvent({ type: "databasechunk", data: scene, file: model });
71
+ this.viewer.emitEvent({ type: "databasechunk", data: scene, file });
72
72
 
73
73
  return this;
74
74
  }
@@ -23,8 +23,8 @@
23
23
 
24
24
  import { loaders } from "@inweb/viewer-three";
25
25
 
26
- import { IFCXModelLoader } from "./IFCXModelLoader";
27
26
  import { IFCXFileLoader } from "./IFCXFileLoader";
27
+ import { IFCXCloudFileLoader } from "./IFCXCloudFileLoader";
28
28
 
29
- loaders.registerLoader("ifcx", (viewer: any) => new IFCXModelLoader(viewer));
30
29
  loaders.registerLoader("ifcx-file", (viewer: any) => new IFCXFileLoader(viewer));
30
+ loaders.registerLoader("ifcx-cloud-file", (viewer: any) => new IFCXCloudFileLoader(viewer));
@@ -192,15 +192,15 @@ export class Viewer
192
192
 
193
193
  dispose(): this {
194
194
  this.cancel();
195
- this.emitEvent({ type: "dispose" });
195
+ this.clear();
196
196
 
197
- this._components.forEach((component: IComponent) => component.dispose());
198
- this._components = [];
197
+ this.emitEvent({ type: "dispose" });
198
+ this.removeAllListeners();
199
199
 
200
200
  this.setActiveDragger();
201
- this.removeAllListeners();
202
201
 
203
- this.clear();
202
+ this._components.forEach((component: IComponent) => component.dispose());
203
+ this._components = [];
204
204
 
205
205
  this._markup.dispose();
206
206
 
@@ -211,10 +211,10 @@ export class Viewer
211
211
 
212
212
  if (this.renderer) this.renderer.dispose();
213
213
 
214
+ this.helpers = undefined;
215
+ this.scene = undefined;
214
216
  this.renderer = undefined;
215
217
  this.camera = undefined;
216
- this.scene = undefined;
217
- this.helpers = undefined;
218
218
 
219
219
  return this;
220
220
  }
@@ -83,5 +83,4 @@ components.registerComponent("ResizeCanvasComponent", (viewer) => new ResizeCanv
83
83
  components.registerComponent("RenderLoopComponent", (viewer) => new RenderLoopComponent(viewer));
84
84
  components.registerComponent("HighlighterComponent", (viewer) => new HighlighterComponent(viewer));
85
85
  components.registerComponent("SelectionComponent", (viewer) => new SelectionComponent(viewer));
86
-
87
86
  components.registerComponent("WCSHelperComponent", (viewer) => new WCSHelperComponent(viewer));
@@ -27,7 +27,7 @@ import { Loader } from "@inweb/viewer-core";
27
27
  import { Viewer } from "../Viewer";
28
28
  import { GLTFLoadingManager } from "./GLTFLoadingManager";
29
29
 
30
- export class GLTFModelLoader extends Loader {
30
+ export class GLTFCloudModelLoader extends Loader {
31
31
  public viewer: Viewer;
32
32
 
33
33
  constructor(viewer: Viewer) {
@@ -42,8 +42,8 @@ export class GLTFFileLoader extends Loader {
42
42
  );
43
43
  }
44
44
 
45
- override async load(buffer: any, format?: string, params?: GLTFLoadParams): Promise<this> {
46
- const manager = new GLTFLoadingManager(buffer, params);
45
+ override async load(file: any, format?: string, params?: GLTFLoadParams): Promise<this> {
46
+ const manager = new GLTFLoadingManager(file, params);
47
47
 
48
48
  const loader = new GLTFLoader(manager);
49
49
  loader.setPath(manager.path);
@@ -53,7 +53,7 @@ export class GLTFFileLoader extends Loader {
53
53
  const progress = (event: ProgressEvent) => {
54
54
  const { lengthComputable, loaded, total } = event;
55
55
  const progress = lengthComputable ? loaded / total : 1;
56
- this.viewer.emitEvent({ type: "geometryprogress", data: progress, file: buffer });
56
+ this.viewer.emitEvent({ type: "geometryprogress", data: progress, file });
57
57
  };
58
58
 
59
59
  const gltf = await loader.loadAsync(manager.fileURL, progress);
@@ -66,7 +66,7 @@ export class GLTFFileLoader extends Loader {
66
66
  this.viewer.syncOverlay();
67
67
  this.viewer.update();
68
68
 
69
- this.viewer.emitEvent({ type: "databasechunk", data: gltf.scene, file: buffer });
69
+ this.viewer.emitEvent({ type: "databasechunk", data: gltf.scene, file });
70
70
 
71
71
  return this;
72
72
  }
@@ -23,8 +23,8 @@
23
23
 
24
24
  import { ILoadersRegistry, loadersRegistry } from "@inweb/viewer-core";
25
25
 
26
- import { GLTFModelLoader } from "./GLTFModelLoader";
27
26
  import { GLTFFileLoader } from "./GLTFFileLoader";
27
+ import { GLTFCloudModelLoader } from "./GLTFCloudModelLoader";
28
28
 
29
29
  /**
30
30
  * Viewer loaders registry. Use this registry to register custom loaders.
@@ -95,5 +95,5 @@ export const loaders: ILoadersRegistry = loadersRegistry("threejs");
95
95
 
96
96
  // build-in loaders
97
97
 
98
- loaders.registerLoader("gltf", (viewer: any) => new GLTFModelLoader(viewer));
99
98
  loaders.registerLoader("gltf-file", (viewer: any) => new GLTFFileLoader(viewer));
99
+ loaders.registerLoader("gltf-cloud-model", (viewer: any) => new GLTFCloudModelLoader(viewer));