@inweb/viewer-three 25.3.19 → 25.3.21

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.
@@ -365,31 +365,30 @@
365
365
  }
366
366
  }
367
367
 
368
- const CANVAS_EVENTS = [ "click", "dblclick", "mousedown", "mousemove", "mouseup", "mouseleave", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "wheel", "touchstart", "touchmove", "touchend", "touchcancel" ];
368
+ const CanvasEvents = [ "click", "contextmenu", "dblclick", "mousedown", "mouseleave", "mousemove", "mouseup", "pointercancel", "pointerdown", "pointerleave", "pointermove", "pointerup", "touchcancel", "touchend", "touchmove", "touchstart", "wheel" ];
369
+
370
+ const CANVAS_EVENTS = CanvasEvents;
369
371
 
370
372
  class EventEmitter2 {
371
373
  constructor() {
372
- this._listeners = undefined;
374
+ this._listeners = {};
373
375
  }
374
376
  addEventListener(type, listener) {
375
- if (this._listeners === undefined) this._listeners = {};
376
377
  if (this._listeners[type] === undefined) this._listeners[type] = [];
377
378
  this._listeners[type].push(listener);
378
379
  return this;
379
380
  }
380
381
  removeEventListener(type, listener) {
381
- if (this._listeners === undefined) return this;
382
382
  if (this._listeners[type] === undefined) return this;
383
383
  const listeners = this._listeners[type].filter((x => x !== listener));
384
- this._listeners[type] = listeners.length === 0 ? undefined : listeners;
384
+ if (listeners.length !== 0) this._listeners[type] = listeners; else delete this._listeners[type];
385
385
  return this;
386
386
  }
387
387
  removeAllListeners(type) {
388
- if (type) this._listeners[type] = undefined; else this._listeners = undefined;
388
+ if (type) delete this._listeners[type]; else this._listeners = {};
389
389
  return this;
390
390
  }
391
391
  emitEvent(event) {
392
- if (this._listeners === undefined) return false;
393
392
  if (this._listeners[event.type] === undefined) return false;
394
393
  const invoke = this._listeners[event.type].slice();
395
394
  invoke.forEach((listener => listener.call(this, event)));
@@ -42604,6 +42603,7 @@
42604
42603
  ///////////////////////////////////////////////////////////////////////////////
42605
42604
  class RenderLoopComponent {
42606
42605
  constructor(viewer) {
42606
+ this.requestID = 0;
42607
42607
  this.animate = (time = 0) => {
42608
42608
  this.requestID = requestAnimationFrame(this.animate);
42609
42609
  this.viewer.render(time);
@@ -42621,9 +42621,10 @@
42621
42621
  class Viewer extends EventEmitter2 {
42622
42622
  constructor(client) {
42623
42623
  super();
42624
+ this.renderNeeded = false;
42624
42625
  this._options = new Options(this);
42625
42626
  this.client = client;
42626
- this.canvasEvents = CANVAS_EVENTS;
42627
+ this.canvasEvents = CANVAS_EVENTS.slice();
42627
42628
  this.canvaseventlistener = (event) => this.emit(event);
42628
42629
  this.draggerFactory = {
42629
42630
  Pan: PanDragger,
@@ -42699,6 +42700,10 @@
42699
42700
  return;
42700
42701
  if (!this.renderer)
42701
42702
  return;
42703
+ if (!this.scene)
42704
+ return;
42705
+ if (!this.camera)
42706
+ return;
42702
42707
  this.renderer.render(this.scene, this.camera);
42703
42708
  this.renderNeeded = false;
42704
42709
  const deltaTime = (time - this.renderTime) / 1000;
@@ -42724,7 +42729,7 @@
42724
42729
  this.cancel();
42725
42730
  this.clear();
42726
42731
  this.emitEvent({ type: "open", file, model: file });
42727
- let model;
42732
+ let model = undefined;
42728
42733
  if (file) {
42729
42734
  const models = (await file.getModels()) || [];
42730
42735
  model = models.find((model) => model.default) || models[0];
@@ -42844,6 +42849,7 @@
42844
42849
  }
42845
42850
 
42846
42851
  exports.CANVAS_EVENTS = CANVAS_EVENTS;
42852
+ exports.CanvasEvents = CanvasEvents;
42847
42853
  exports.Options = Options;
42848
42854
  exports.Viewer = Viewer;
42849
42855
  exports.commands = commands;