@inweb/viewer-three 25.3.19 → 25.3.20

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.
@@ -369,27 +369,24 @@
369
369
 
370
370
  class EventEmitter2 {
371
371
  constructor() {
372
- this._listeners = undefined;
372
+ this._listeners = {};
373
373
  }
374
374
  addEventListener(type, listener) {
375
- if (this._listeners === undefined) this._listeners = {};
376
375
  if (this._listeners[type] === undefined) this._listeners[type] = [];
377
376
  this._listeners[type].push(listener);
378
377
  return this;
379
378
  }
380
379
  removeEventListener(type, listener) {
381
- if (this._listeners === undefined) return this;
382
380
  if (this._listeners[type] === undefined) return this;
383
381
  const listeners = this._listeners[type].filter((x => x !== listener));
384
- this._listeners[type] = listeners.length === 0 ? undefined : listeners;
382
+ if (listeners.length !== 0) this._listeners[type] = listeners; else delete this._listeners[type];
385
383
  return this;
386
384
  }
387
385
  removeAllListeners(type) {
388
- if (type) this._listeners[type] = undefined; else this._listeners = undefined;
386
+ if (type) delete this._listeners[type]; else this._listeners = {};
389
387
  return this;
390
388
  }
391
389
  emitEvent(event) {
392
- if (this._listeners === undefined) return false;
393
390
  if (this._listeners[event.type] === undefined) return false;
394
391
  const invoke = this._listeners[event.type].slice();
395
392
  invoke.forEach((listener => listener.call(this, event)));
@@ -42604,6 +42601,7 @@
42604
42601
  ///////////////////////////////////////////////////////////////////////////////
42605
42602
  class RenderLoopComponent {
42606
42603
  constructor(viewer) {
42604
+ this.requestID = 0;
42607
42605
  this.animate = (time = 0) => {
42608
42606
  this.requestID = requestAnimationFrame(this.animate);
42609
42607
  this.viewer.render(time);
@@ -42621,6 +42619,7 @@
42621
42619
  class Viewer extends EventEmitter2 {
42622
42620
  constructor(client) {
42623
42621
  super();
42622
+ this.renderNeeded = false;
42624
42623
  this._options = new Options(this);
42625
42624
  this.client = client;
42626
42625
  this.canvasEvents = CANVAS_EVENTS;
@@ -42699,6 +42698,10 @@
42699
42698
  return;
42700
42699
  if (!this.renderer)
42701
42700
  return;
42701
+ if (!this.scene)
42702
+ return;
42703
+ if (!this.camera)
42704
+ return;
42702
42705
  this.renderer.render(this.scene, this.camera);
42703
42706
  this.renderNeeded = false;
42704
42707
  const deltaTime = (time - this.renderTime) / 1000;
@@ -42724,7 +42727,7 @@
42724
42727
  this.cancel();
42725
42728
  this.clear();
42726
42729
  this.emitEvent({ type: "open", file, model: file });
42727
- let model;
42730
+ let model = undefined;
42728
42731
  if (file) {
42729
42732
  const models = (await file.getModels()) || [];
42730
42733
  model = models.find((model) => model.default) || models[0];