@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.
@@ -2415,30 +2415,30 @@ class GLTFLoadingManager extends LoadingManager {
2415
2415
  }
2416
2416
  }
2417
2417
 
2418
- class GLTFModelLoader extends Loader {
2418
+ class GLTFFileLoader extends Loader {
2419
2419
  constructor(viewer) {
2420
2420
  super();
2421
2421
  this.viewer = viewer;
2422
2422
  }
2423
- isSupport(model) {
2424
- return typeof model === "object" && typeof model.database === "string" && typeof model.downloadResource === "function" && /.gltf$/i.test(model.database);
2423
+ isSupport(file, format) {
2424
+ return (typeof file === "string" || file instanceof globalThis.File || file instanceof ArrayBuffer) && /(gltf|glb)$/i.test(format);
2425
2425
  }
2426
- async load(model) {
2427
- const url = `${model.httpClient.serverUrl}${model.path}/${model.database}`;
2428
- const manager = new GLTFLoadingManager(url);
2426
+ async load(file, format, params) {
2427
+ const manager = new GLTFLoadingManager(file, params);
2429
2428
  const loader = new GLTFLoader(manager);
2430
- loader.setRequestHeader(model.httpClient.headers);
2429
+ loader.setPath(manager.path);
2430
+ loader.setCrossOrigin(params.crossOrigin || loader.crossOrigin);
2431
+ loader.setWithCredentials(params.withCredentials || loader.withCredentials);
2431
2432
  const progress = event => {
2432
2433
  const {lengthComputable: lengthComputable, loaded: loaded, total: total} = event;
2433
2434
  const progress = lengthComputable ? loaded / total : 1;
2434
2435
  this.viewer.emitEvent({
2435
2436
  type: "geometryprogress",
2436
2437
  data: progress,
2437
- file: model.file,
2438
- model: model
2438
+ file: file
2439
2439
  });
2440
2440
  };
2441
- const gltf = await loader.loadAsync(url, progress);
2441
+ const gltf = await loader.loadAsync(manager.fileURL, progress);
2442
2442
  if (!this.viewer.scene) return this;
2443
2443
  this.viewer.scene.add(gltf.scene);
2444
2444
  this.viewer.models.push(gltf.scene);
@@ -2448,37 +2448,36 @@ class GLTFModelLoader extends Loader {
2448
2448
  this.viewer.emitEvent({
2449
2449
  type: "databasechunk",
2450
2450
  data: gltf.scene,
2451
- file: model.file,
2452
- model: model
2451
+ file: file
2453
2452
  });
2454
2453
  return this;
2455
2454
  }
2456
2455
  }
2457
2456
 
2458
- class GLTFFileLoader extends Loader {
2457
+ class GLTFCloudModelLoader extends Loader {
2459
2458
  constructor(viewer) {
2460
2459
  super();
2461
2460
  this.viewer = viewer;
2462
2461
  }
2463
- isSupport(file, format) {
2464
- return (typeof file === "string" || file instanceof globalThis.File || file instanceof ArrayBuffer) && /(gltf|glb)$/i.test(format);
2462
+ isSupport(model) {
2463
+ return typeof model === "object" && typeof model.database === "string" && typeof model.downloadResource === "function" && /.gltf$/i.test(model.database);
2465
2464
  }
2466
- async load(buffer, format, params) {
2467
- const manager = new GLTFLoadingManager(buffer, params);
2465
+ async load(model) {
2466
+ const url = `${model.httpClient.serverUrl}${model.path}/${model.database}`;
2467
+ const manager = new GLTFLoadingManager(url);
2468
2468
  const loader = new GLTFLoader(manager);
2469
- loader.setPath(manager.path);
2470
- loader.setCrossOrigin(params.crossOrigin || loader.crossOrigin);
2471
- loader.setWithCredentials(params.withCredentials || loader.withCredentials);
2469
+ loader.setRequestHeader(model.httpClient.headers);
2472
2470
  const progress = event => {
2473
2471
  const {lengthComputable: lengthComputable, loaded: loaded, total: total} = event;
2474
2472
  const progress = lengthComputable ? loaded / total : 1;
2475
2473
  this.viewer.emitEvent({
2476
2474
  type: "geometryprogress",
2477
2475
  data: progress,
2478
- file: buffer
2476
+ file: model.file,
2477
+ model: model
2479
2478
  });
2480
2479
  };
2481
- const gltf = await loader.loadAsync(manager.fileURL, progress);
2480
+ const gltf = await loader.loadAsync(url, progress);
2482
2481
  if (!this.viewer.scene) return this;
2483
2482
  this.viewer.scene.add(gltf.scene);
2484
2483
  this.viewer.models.push(gltf.scene);
@@ -2488,7 +2487,8 @@ class GLTFFileLoader extends Loader {
2488
2487
  this.viewer.emitEvent({
2489
2488
  type: "databasechunk",
2490
2489
  data: gltf.scene,
2491
- file: buffer
2490
+ file: model.file,
2491
+ model: model
2492
2492
  });
2493
2493
  return this;
2494
2494
  }
@@ -2496,10 +2496,10 @@ class GLTFFileLoader extends Loader {
2496
2496
 
2497
2497
  const loaders = loadersRegistry("threejs");
2498
2498
 
2499
- loaders.registerLoader("gltf", (viewer => new GLTFModelLoader(viewer)));
2500
-
2501
2499
  loaders.registerLoader("gltf-file", (viewer => new GLTFFileLoader(viewer)));
2502
2500
 
2501
+ loaders.registerLoader("gltf-cloud-model", (viewer => new GLTFCloudModelLoader(viewer)));
2502
+
2503
2503
  class Viewer extends EventEmitter2 {
2504
2504
  constructor(client) {
2505
2505
  super();
@@ -2577,24 +2577,24 @@ class Viewer extends EventEmitter2 {
2577
2577
  }
2578
2578
  dispose() {
2579
2579
  this.cancel();
2580
+ this.clear();
2580
2581
  this.emitEvent({
2581
2582
  type: "dispose"
2582
2583
  });
2584
+ this.removeAllListeners();
2585
+ this.setActiveDragger();
2583
2586
  this._components.forEach((component => component.dispose()));
2584
2587
  this._components = [];
2585
- this.setActiveDragger();
2586
- this.removeAllListeners();
2587
- this.clear();
2588
2588
  this._markup.dispose();
2589
2589
  if (this.canvas) {
2590
2590
  this.canvasEvents.forEach((x => this.canvas.removeEventListener(x, this.canvaseventlistener)));
2591
2591
  this.canvas = undefined;
2592
2592
  }
2593
2593
  if (this.renderer) this.renderer.dispose();
2594
+ this.helpers = undefined;
2595
+ this.scene = undefined;
2594
2596
  this.renderer = undefined;
2595
2597
  this.camera = undefined;
2596
- this.scene = undefined;
2597
- this.helpers = undefined;
2598
2598
  return this;
2599
2599
  }
2600
2600
  isInitialized() {