@galacean/engine-xr-webxr 2.0.0-alpha.14 → 2.0.0-alpha.15
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/browser.js +45 -75
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/package.json +4 -4
package/dist/browser.js
CHANGED
|
@@ -402,13 +402,13 @@
|
|
|
402
402
|
function XRInputManager(_xrManager, _engine) {
|
|
403
403
|
this._xrManager = _xrManager;
|
|
404
404
|
this._engine = _engine;
|
|
405
|
+
this.onTrackedDeviceChanged = new engine.Signal();
|
|
405
406
|
this./** @internal */ _cameras = [];
|
|
406
407
|
this./** @internal */ _controllers = [];
|
|
407
408
|
this._added = [];
|
|
408
409
|
this._removed = [];
|
|
409
410
|
this._trackedDevices = [];
|
|
410
411
|
this._statusSnapshot = [];
|
|
411
|
-
this._listeners = new engine.SafeLoopArray();
|
|
412
412
|
var _this = this, trackedDevices = _this._trackedDevices, controllers = _this._controllers, cameras = _this._cameras;
|
|
413
413
|
for(var i = 0; i < 6; i++){
|
|
414
414
|
switch(i){
|
|
@@ -435,22 +435,6 @@
|
|
|
435
435
|
return this._trackedDevices[type];
|
|
436
436
|
};
|
|
437
437
|
/**
|
|
438
|
-
* Add a listener for tracked device changes.
|
|
439
|
-
* @param listener - The listener to add
|
|
440
|
-
*/ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
|
|
441
|
-
this._listeners.push({
|
|
442
|
-
fn: listener
|
|
443
|
-
});
|
|
444
|
-
};
|
|
445
|
-
/**
|
|
446
|
-
* Remove a listener of tracked device changes.
|
|
447
|
-
* @param listener - The listener to remove
|
|
448
|
-
*/ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
|
|
449
|
-
this._listeners.findAndRemove(function(value) {
|
|
450
|
-
return value.fn === listener ? value.destroyed = true : false;
|
|
451
|
-
});
|
|
452
|
-
};
|
|
453
|
-
/**
|
|
454
438
|
* @internal
|
|
455
439
|
*/ _proto._onUpdate = function _onUpdate() {
|
|
456
440
|
var _this = this, added = _this._added, removed = _this._removed, statusSnapshot = _this._statusSnapshot;
|
|
@@ -486,19 +470,13 @@
|
|
|
486
470
|
}
|
|
487
471
|
// Dispatch change event
|
|
488
472
|
if (added.length > 0 || removed.length > 0) {
|
|
489
|
-
|
|
490
|
-
for(var i3 = 0, n3 = listeners.length; i3 < n3; i3++){
|
|
491
|
-
var listener = listeners[i3];
|
|
492
|
-
!listener.destroyed && listener.fn(added, removed);
|
|
493
|
-
}
|
|
473
|
+
this.onTrackedDeviceChanged.invoke(added, removed);
|
|
494
474
|
}
|
|
495
475
|
};
|
|
496
476
|
/**
|
|
497
477
|
* @internal
|
|
498
478
|
*/ _proto._onDestroy = function _onDestroy() {
|
|
499
|
-
this.
|
|
500
|
-
return value.destroyed = true;
|
|
501
|
-
});
|
|
479
|
+
this.onTrackedDeviceChanged.removeAll();
|
|
502
480
|
};
|
|
503
481
|
_proto._handleEvent = function _handleEvent(event) {
|
|
504
482
|
var input = this._trackedDevices[event.input];
|
|
@@ -574,6 +552,18 @@
|
|
|
574
552
|
}
|
|
575
553
|
return new PointerEvent(type, eventInitDict);
|
|
576
554
|
};
|
|
555
|
+
/**
|
|
556
|
+
* Add a listener for tracked device changes.
|
|
557
|
+
* @deprecated Use `onTrackedDeviceChanged.on(listener)` instead.
|
|
558
|
+
*/ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
|
|
559
|
+
this.onTrackedDeviceChanged.on(listener);
|
|
560
|
+
};
|
|
561
|
+
/**
|
|
562
|
+
* Remove a listener of tracked device changes.
|
|
563
|
+
* @deprecated Use `onTrackedDeviceChanged.off(listener)` instead.
|
|
564
|
+
*/ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
|
|
565
|
+
this.onTrackedDeviceChanged.off(listener);
|
|
566
|
+
};
|
|
577
567
|
return XRInputManager;
|
|
578
568
|
}();
|
|
579
569
|
/**
|
|
@@ -590,9 +580,9 @@
|
|
|
590
580
|
function XRSessionManager(_xrManager, _engine) {
|
|
591
581
|
this._xrManager = _xrManager;
|
|
592
582
|
this._engine = _engine;
|
|
583
|
+
this.onStateChanged = new engine.Signal();
|
|
593
584
|
this._mode = XRSessionMode.None;
|
|
594
585
|
this._state = XRSessionState.None;
|
|
595
|
-
this._listeners = new engine.SafeLoopArray();
|
|
596
586
|
// @ts-ignore
|
|
597
587
|
this._rhi = _engine._hardwareRenderer;
|
|
598
588
|
this._raf = requestAnimationFrame.bind(window);
|
|
@@ -643,30 +633,10 @@
|
|
|
643
633
|
}
|
|
644
634
|
};
|
|
645
635
|
/**
|
|
646
|
-
* Add a listening function for session state changes.
|
|
647
|
-
* @param listener - The listening function
|
|
648
|
-
*/ _proto.addStateChangedListener = function addStateChangedListener(listener) {
|
|
649
|
-
this._listeners.push({
|
|
650
|
-
fn: listener
|
|
651
|
-
});
|
|
652
|
-
};
|
|
653
|
-
/**
|
|
654
|
-
* Remove a listening function of session state changes.
|
|
655
|
-
* @param listener - The listening function
|
|
656
|
-
*/ _proto.removeStateChangedListener = function removeStateChangedListener(listener) {
|
|
657
|
-
this._listeners.findAndRemove(function(value) {
|
|
658
|
-
return value.fn === listener ? value.destroyed = true : false;
|
|
659
|
-
});
|
|
660
|
-
};
|
|
661
|
-
/**
|
|
662
636
|
* @internal
|
|
663
637
|
*/ _proto._setState = function _setState(value) {
|
|
664
638
|
this._state = value;
|
|
665
|
-
|
|
666
|
-
for(var i = 0, n = listeners.length; i < n; i++){
|
|
667
|
-
var listener = listeners[i];
|
|
668
|
-
!listener.destroyed && listener.fn(value);
|
|
669
|
-
}
|
|
639
|
+
this.onStateChanged.invoke(value);
|
|
670
640
|
};
|
|
671
641
|
/**
|
|
672
642
|
* @internal
|
|
@@ -742,11 +712,21 @@
|
|
|
742
712
|
/**
|
|
743
713
|
* @internal
|
|
744
714
|
*/ _proto._onDestroy = function _onDestroy() {
|
|
745
|
-
this.
|
|
746
|
-
return value.destroyed = true;
|
|
747
|
-
});
|
|
715
|
+
this.onStateChanged.removeAll();
|
|
748
716
|
this._raf = this._caf = null;
|
|
749
717
|
};
|
|
718
|
+
/**
|
|
719
|
+
* Add a listening function for session state changes.
|
|
720
|
+
* @deprecated Use `onStateChanged.on(listener)` instead.
|
|
721
|
+
*/ _proto.addStateChangedListener = function addStateChangedListener(listener) {
|
|
722
|
+
this.onStateChanged.on(listener);
|
|
723
|
+
};
|
|
724
|
+
/**
|
|
725
|
+
* Remove a listening function of session state changes.
|
|
726
|
+
* @deprecated Use `onStateChanged.off(listener)` instead.
|
|
727
|
+
*/ _proto.removeStateChangedListener = function removeStateChangedListener(listener) {
|
|
728
|
+
this.onStateChanged.off(listener);
|
|
729
|
+
};
|
|
750
730
|
_create_class$1(XRSessionManager, [
|
|
751
731
|
{
|
|
752
732
|
key: "mode",
|
|
@@ -1057,26 +1037,10 @@
|
|
|
1057
1037
|
_inherits(XRTrackableFeature, XRFeature);
|
|
1058
1038
|
function XRTrackableFeature() {
|
|
1059
1039
|
var _this;
|
|
1060
|
-
_this = XRFeature.apply(this, arguments) || this, _this._requestTrackings = [], _this._tracked = [], _this._added = [], _this._updated = [], _this._removed = [], _this._statusSnapshot = {}
|
|
1040
|
+
_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 = {};
|
|
1061
1041
|
return _this;
|
|
1062
1042
|
}
|
|
1063
1043
|
var _proto = XRTrackableFeature.prototype;
|
|
1064
|
-
/**
|
|
1065
|
-
* Add a listening function for tracked object changes.
|
|
1066
|
-
* @param listener - The listening function
|
|
1067
|
-
*/ _proto.addChangedListener = function addChangedListener(listener) {
|
|
1068
|
-
this._listeners.push({
|
|
1069
|
-
fn: listener
|
|
1070
|
-
});
|
|
1071
|
-
};
|
|
1072
|
-
/**
|
|
1073
|
-
* Remove a listening function of tracked object changes.
|
|
1074
|
-
* @param listener - The listening function
|
|
1075
|
-
*/ _proto.removeChangedListener = function removeChangedListener(listener) {
|
|
1076
|
-
this._listeners.findAndRemove(function(value) {
|
|
1077
|
-
return value.fn === listener ? value.destroyed = true : false;
|
|
1078
|
-
});
|
|
1079
|
-
};
|
|
1080
1044
|
_proto._onUpdate = function _onUpdate() {
|
|
1081
1045
|
var _this__xrManager_sessionManager = this._xrManager.sessionManager, platformSession = _this__xrManager_sessionManager._platformSession;
|
|
1082
1046
|
var platformFrame = platformSession.frame;
|
|
@@ -1132,11 +1096,7 @@
|
|
|
1132
1096
|
requestTrackings[i1].state === XRRequestTrackingState.Destroyed && requestTrackings.splice(i1, 1);
|
|
1133
1097
|
}
|
|
1134
1098
|
if (added.length > 0 || updated.length > 0 || removed.length > 0) {
|
|
1135
|
-
|
|
1136
|
-
for(var i2 = 0, n3 = listeners.length; i2 < n3; i2++){
|
|
1137
|
-
var listener = listeners[i2];
|
|
1138
|
-
!listener.destroyed && listener.fn(added, updated, removed);
|
|
1139
|
-
}
|
|
1099
|
+
this.onChanged.invoke(added, updated, removed);
|
|
1140
1100
|
}
|
|
1141
1101
|
};
|
|
1142
1102
|
_proto._onSessionStop = function _onSessionStop() {
|
|
@@ -1145,9 +1105,7 @@
|
|
|
1145
1105
|
_proto._onSessionExit = function _onSessionExit() {
|
|
1146
1106
|
// prettier-ignore
|
|
1147
1107
|
this._requestTrackings.length = this._tracked.length = this._added.length = this._updated.length = this._removed.length = 0;
|
|
1148
|
-
this.
|
|
1149
|
-
return value.destroyed = true;
|
|
1150
|
-
});
|
|
1108
|
+
this.onChanged.removeAll();
|
|
1151
1109
|
};
|
|
1152
1110
|
_proto._addRequestTracking = function _addRequestTracking(requestTracking) {
|
|
1153
1111
|
var _this = this, platformFeature = _this._platformFeature;
|
|
@@ -1174,6 +1132,18 @@
|
|
|
1174
1132
|
platformFeature.onDelRequestTracking(requestTrackings[i]);
|
|
1175
1133
|
}
|
|
1176
1134
|
};
|
|
1135
|
+
/**
|
|
1136
|
+
* Add a listening function for tracked object changes.
|
|
1137
|
+
* @deprecated Use `onChanged.on(listener)` instead.
|
|
1138
|
+
*/ _proto.addChangedListener = function addChangedListener(listener) {
|
|
1139
|
+
this.onChanged.on(listener);
|
|
1140
|
+
};
|
|
1141
|
+
/**
|
|
1142
|
+
* Remove a listening function of tracked object changes.
|
|
1143
|
+
* @deprecated Use `onChanged.off(listener)` instead.
|
|
1144
|
+
*/ _proto.removeChangedListener = function removeChangedListener(listener) {
|
|
1145
|
+
this.onChanged.off(listener);
|
|
1146
|
+
};
|
|
1177
1147
|
return XRTrackableFeature;
|
|
1178
1148
|
}(XRFeature);
|
|
1179
1149
|
XRTrackableFeature._uuid = 0;
|