@galacean/engine-xr 2.0.0-alpha.5 → 2.0.0-alpha.50

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.
package/dist/main.js CHANGED
@@ -122,19 +122,15 @@ function _instanceof(left, right) {
122
122
  var xrCamera = this._xrManager.inputManager.getTrackedDevice(type);
123
123
  var preCamera = xrCamera._camera;
124
124
  if (preCamera !== camera) {
125
- // @ts-ignore
126
125
  preCamera && (preCamera._cameraType = engine.CameraType.Normal);
127
126
  switch(type){
128
127
  case XRTrackedInputDevice.Camera:
129
- // @ts-ignore
130
128
  camera._cameraType = engine.CameraType.XRCenterCamera;
131
129
  break;
132
130
  case XRTrackedInputDevice.LeftCamera:
133
- // @ts-ignore
134
131
  camera._cameraType = engine.CameraType.XRLeftCamera;
135
132
  break;
136
133
  case XRTrackedInputDevice.RightCamera:
137
- // @ts-ignore
138
134
  camera._cameraType = engine.CameraType.XRRightCamera;
139
135
  break;
140
136
  }
@@ -148,7 +144,6 @@ function _instanceof(left, right) {
148
144
  */ _proto.detachCamera = function detachCamera(type) {
149
145
  var xrCamera = this._xrManager.inputManager.getTrackedDevice(type);
150
146
  var preCamera = xrCamera._camera;
151
- // @ts-ignore
152
147
  preCamera && (preCamera._cameraType = engine.CameraType.Normal);
153
148
  xrCamera._camera = null;
154
149
  return preCamera;
@@ -217,7 +212,7 @@ function _instanceof(left, right) {
217
212
  {
218
213
  key: "fixedFoveation",
219
214
  get: /**
220
- * The fixed foveation of the camera.
215
+ * Fixed foveation, or `undefined` if unsupported by the active session.
221
216
  */ function get() {
222
217
  var _this__xrManager_sessionManager = this._xrManager.sessionManager, platformSession = _this__xrManager_sessionManager._platformSession;
223
218
  if (platformSession) {
@@ -345,13 +340,13 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
345
340
  function XRInputManager(_xrManager, _engine) {
346
341
  this._xrManager = _xrManager;
347
342
  this._engine = _engine;
343
+ this.onTrackedDeviceChanged = new engine.Signal();
348
344
  this./** @internal */ _cameras = [];
349
345
  this./** @internal */ _controllers = [];
350
346
  this._added = [];
351
347
  this._removed = [];
352
348
  this._trackedDevices = [];
353
349
  this._statusSnapshot = [];
354
- this._listeners = new engine.SafeLoopArray();
355
350
  var _this = this, trackedDevices = _this._trackedDevices, controllers = _this._controllers, cameras = _this._cameras;
356
351
  for(var i = 0; i < 6; i++){
357
352
  switch(i){
@@ -378,22 +373,6 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
378
373
  return this._trackedDevices[type];
379
374
  };
380
375
  /**
381
- * Add a listener for tracked device changes.
382
- * @param listener - The listener to add
383
- */ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
384
- this._listeners.push({
385
- fn: listener
386
- });
387
- };
388
- /**
389
- * Remove a listener of tracked device changes.
390
- * @param listener - The listener to remove
391
- */ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
392
- this._listeners.findAndRemove(function(value) {
393
- return value.fn === listener ? value.destroyed = true : false;
394
- });
395
- };
396
- /**
397
376
  * @internal
398
377
  */ _proto._onUpdate = function _onUpdate() {
399
378
  var _this = this, added = _this._added, removed = _this._removed, statusSnapshot = _this._statusSnapshot;
@@ -405,7 +384,7 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
405
384
  controller.down = controller.up = 0;
406
385
  }
407
386
  // Handle events and update tracked devices
408
- var _this__xrManager_sessionManager = this._xrManager.sessionManager, platformSession = _this__xrManager_sessionManager._platformSession;
387
+ var platformSession = this._xrManager.sessionManager._platformSession;
409
388
  var platformEvents = platformSession.events;
410
389
  for(var i1 = 0, n1 = platformEvents.length; i1 < n1; i1++){
411
390
  this._handleEvent(platformEvents[i1]);
@@ -429,19 +408,13 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
429
408
  }
430
409
  // Dispatch change event
431
410
  if (added.length > 0 || removed.length > 0) {
432
- var listeners = this._listeners.getLoopArray();
433
- for(var i3 = 0, n3 = listeners.length; i3 < n3; i3++){
434
- var listener = listeners[i3];
435
- !listener.destroyed && listener.fn(added, removed);
436
- }
411
+ this.onTrackedDeviceChanged.invoke(added, removed);
437
412
  }
438
413
  };
439
414
  /**
440
415
  * @internal
441
416
  */ _proto._onDestroy = function _onDestroy() {
442
- this._listeners.findAndRemove(function(value) {
443
- return value.destroyed = true;
444
- });
417
+ this.onTrackedDeviceChanged.removeAll();
445
418
  };
446
419
  _proto._handleEvent = function _handleEvent(event) {
447
420
  var input = this._trackedDevices[event.input];
@@ -517,6 +490,18 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
517
490
  }
518
491
  return new PointerEvent(type, eventInitDict);
519
492
  };
493
+ /**
494
+ * Add a listener for tracked device changes.
495
+ * @deprecated Use `onTrackedDeviceChanged.on(listener)` instead.
496
+ */ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
497
+ this.onTrackedDeviceChanged.on(listener);
498
+ };
499
+ /**
500
+ * Remove a listener of tracked device changes.
501
+ * @deprecated Use `onTrackedDeviceChanged.off(listener)` instead.
502
+ */ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
503
+ this.onTrackedDeviceChanged.off(listener);
504
+ };
520
505
  return XRInputManager;
521
506
  }();
522
507
 
@@ -535,10 +520,9 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
535
520
  function XRSessionManager(_xrManager, _engine) {
536
521
  this._xrManager = _xrManager;
537
522
  this._engine = _engine;
523
+ this.onStateChanged = new engine.Signal();
538
524
  this._mode = XRSessionMode.None;
539
525
  this._state = XRSessionState.None;
540
- this._listeners = new engine.SafeLoopArray();
541
- // @ts-ignore
542
526
  this._rhi = _engine._hardwareRenderer;
543
527
  this._raf = requestAnimationFrame.bind(window);
544
528
  this._caf = cancelAnimationFrame.bind(window);
@@ -588,30 +572,10 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
588
572
  }
589
573
  };
590
574
  /**
591
- * Add a listening function for session state changes.
592
- * @param listener - The listening function
593
- */ _proto.addStateChangedListener = function addStateChangedListener(listener) {
594
- this._listeners.push({
595
- fn: listener
596
- });
597
- };
598
- /**
599
- * Remove a listening function of session state changes.
600
- * @param listener - The listening function
601
- */ _proto.removeStateChangedListener = function removeStateChangedListener(listener) {
602
- this._listeners.findAndRemove(function(value) {
603
- return value.fn === listener ? value.destroyed = true : false;
604
- });
605
- };
606
- /**
607
575
  * @internal
608
576
  */ _proto._setState = function _setState(value) {
609
577
  this._state = value;
610
- var listeners = this._listeners.getLoopArray();
611
- for(var i = 0, n = listeners.length; i < n; i++){
612
- var listener = listeners[i];
613
- !listener.destroyed && listener.fn(value);
614
- }
578
+ this.onStateChanged.invoke(value);
615
579
  };
616
580
  /**
617
581
  * @internal
@@ -687,11 +651,21 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
687
651
  /**
688
652
  * @internal
689
653
  */ _proto._onDestroy = function _onDestroy() {
690
- this._listeners.findAndRemove(function(value) {
691
- return value.destroyed = true;
692
- });
654
+ this.onStateChanged.removeAll();
693
655
  this._raf = this._caf = null;
694
656
  };
657
+ /**
658
+ * Add a listening function for session state changes.
659
+ * @deprecated Use `onStateChanged.on(listener)` instead.
660
+ */ _proto.addStateChangedListener = function addStateChangedListener(listener) {
661
+ this.onStateChanged.on(listener);
662
+ };
663
+ /**
664
+ * Remove a listening function of session state changes.
665
+ * @deprecated Use `onStateChanged.off(listener)` instead.
666
+ */ _proto.removeStateChangedListener = function removeStateChangedListener(listener) {
667
+ this.onStateChanged.off(listener);
668
+ };
695
669
  _create_class(XRSessionManager, [
696
670
  {
697
671
  key: "mode",
@@ -712,7 +686,7 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
712
686
  {
713
687
  key: "supportedFrameRate",
714
688
  get: /**
715
- * Return a list of supported frame rates.(only available in-session)
689
+ * Supported frame rates, or `undefined` if unsupported. Only available in-session.
716
690
  */ function get() {
717
691
  return this._platformSession.supportedFrameRates;
718
692
  }
@@ -720,7 +694,7 @@ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
720
694
  {
721
695
  key: "frameRate",
722
696
  get: /**
723
- * Return the current frame rate as reported by the device.
697
+ * Current frame rate, or `undefined` if unsupported. Only available in-session.
724
698
  */ function get() {
725
699
  return this._platformSession.frameRate;
726
700
  }
@@ -1007,28 +981,12 @@ var XRRequestTrackingState = /*#__PURE__*/ function(XRRequestTrackingState) {
1007
981
  _inherits(XRTrackableFeature, XRFeature);
1008
982
  function XRTrackableFeature() {
1009
983
  var _this;
1010
- _this = XRFeature.apply(this, arguments) || this, _this._requestTrackings = [], _this._tracked = [], _this._added = [], _this._updated = [], _this._removed = [], _this._statusSnapshot = {}, _this._listeners = new engine.SafeLoopArray();
984
+ _this = XRFeature.apply(this, arguments) || this, /** Signal emitted when tracked objects change. */ _this.onChanged = new engine.Signal(), _this._requestTrackings = [], _this._tracked = [], _this._added = [], _this._updated = [], _this._removed = [], _this._statusSnapshot = {};
1011
985
  return _this;
1012
986
  }
1013
987
  var _proto = XRTrackableFeature.prototype;
1014
- /**
1015
- * Add a listening function for tracked object changes.
1016
- * @param listener - The listening function
1017
- */ _proto.addChangedListener = function addChangedListener(listener) {
1018
- this._listeners.push({
1019
- fn: listener
1020
- });
1021
- };
1022
- /**
1023
- * Remove a listening function of tracked object changes.
1024
- * @param listener - The listening function
1025
- */ _proto.removeChangedListener = function removeChangedListener(listener) {
1026
- this._listeners.findAndRemove(function(value) {
1027
- return value.fn === listener ? value.destroyed = true : false;
1028
- });
1029
- };
1030
988
  _proto._onUpdate = function _onUpdate() {
1031
- var _this__xrManager_sessionManager = this._xrManager.sessionManager, platformSession = _this__xrManager_sessionManager._platformSession;
989
+ var platformSession = this._xrManager.sessionManager._platformSession;
1032
990
  var platformFrame = platformSession.frame;
1033
991
  var _this = this, platformFeature = _this._platformFeature, requestTrackings = _this._requestTrackings, statusSnapshot = _this._statusSnapshot, allTracked = _this._tracked, added = _this._added, updated = _this._updated, removed = _this._removed;
1034
992
  if (!platformFrame || !requestTrackings.length) {
@@ -1082,11 +1040,7 @@ var XRRequestTrackingState = /*#__PURE__*/ function(XRRequestTrackingState) {
1082
1040
  requestTrackings[i1].state === XRRequestTrackingState.Destroyed && requestTrackings.splice(i1, 1);
1083
1041
  }
1084
1042
  if (added.length > 0 || updated.length > 0 || removed.length > 0) {
1085
- var listeners = this._listeners.getLoopArray();
1086
- for(var i2 = 0, n3 = listeners.length; i2 < n3; i2++){
1087
- var listener = listeners[i2];
1088
- !listener.destroyed && listener.fn(added, updated, removed);
1089
- }
1043
+ this.onChanged.invoke(added, updated, removed);
1090
1044
  }
1091
1045
  };
1092
1046
  _proto._onSessionStop = function _onSessionStop() {
@@ -1095,9 +1049,7 @@ var XRRequestTrackingState = /*#__PURE__*/ function(XRRequestTrackingState) {
1095
1049
  _proto._onSessionExit = function _onSessionExit() {
1096
1050
  // prettier-ignore
1097
1051
  this._requestTrackings.length = this._tracked.length = this._added.length = this._updated.length = this._removed.length = 0;
1098
- this._listeners.findAndRemove(function(value) {
1099
- return value.destroyed = true;
1100
- });
1052
+ this.onChanged.removeAll();
1101
1053
  };
1102
1054
  _proto._addRequestTracking = function _addRequestTracking(requestTracking) {
1103
1055
  var _this = this, platformFeature = _this._platformFeature;
@@ -1124,6 +1076,18 @@ var XRRequestTrackingState = /*#__PURE__*/ function(XRRequestTrackingState) {
1124
1076
  platformFeature.onDelRequestTracking(requestTrackings[i]);
1125
1077
  }
1126
1078
  };
1079
+ /**
1080
+ * Add a listening function for tracked object changes.
1081
+ * @deprecated Use `onChanged.on(listener)` instead.
1082
+ */ _proto.addChangedListener = function addChangedListener(listener) {
1083
+ this.onChanged.on(listener);
1084
+ };
1085
+ /**
1086
+ * Remove a listening function of tracked object changes.
1087
+ * @deprecated Use `onChanged.off(listener)` instead.
1088
+ */ _proto.removeChangedListener = function removeChangedListener(listener) {
1089
+ this.onChanged.off(listener);
1090
+ };
1127
1091
  return XRTrackableFeature;
1128
1092
  }(XRFeature);
1129
1093
  XRTrackableFeature._uuid = 0;
@@ -1582,8 +1546,7 @@ exports.XRReferenceImageLoader = /*#__PURE__*/ function(Loader) {
1582
1546
  var _proto = XRReferenceImageLoader.prototype;
1583
1547
  _proto.load = function load(item, resourceManager) {
1584
1548
  return new engine.AssetPromise(function(resolve, reject) {
1585
- resourceManager// @ts-ignore
1586
- ._request(item.url, _extends({}, item, {
1549
+ resourceManager._request(item.url, _extends({}, item, {
1587
1550
  type: "arraybuffer"
1588
1551
  })).then(function(data) {
1589
1552
  engine.decode(data, resourceManager.engine).then(function(referenceImage) {