@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/browser.js +51 -88
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/main.js +51 -88
- package/dist/main.js.map +1 -1
- package/dist/module.js +52 -89
- package/dist/module.js.map +1 -1
- package/package.json +6 -5
- package/types/XRManagerExtended.d.ts +75 -5
- package/types/feature/XRFeature.d.ts +38 -0
- package/types/feature/camera/XRCameraManager.d.ts +29 -4
- package/types/feature/trackable/XRRequestTracking.d.ts +11 -1
- package/types/feature/trackable/XRTrackableFeature.d.ts +12 -10
- package/types/input/XRCamera.d.ts +3 -1
- package/types/input/XRInput.d.ts +4 -0
- package/types/input/XRInputManager.d.ts +26 -5
- package/types/session/XRSessionManager.d.ts +47 -8
package/dist/browser.js
CHANGED
|
@@ -122,19 +122,15 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
217
212
|
{
|
|
218
213
|
key: "fixedFoveation",
|
|
219
214
|
get: /**
|
|
220
|
-
*
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
405
384
|
controller.down = controller.up = 0;
|
|
406
385
|
}
|
|
407
386
|
// Handle events and update tracked devices
|
|
408
|
-
var
|
|
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 @@
|
|
|
429
408
|
}
|
|
430
409
|
// Dispatch change event
|
|
431
410
|
if (added.length > 0 || removed.length > 0) {
|
|
432
|
-
|
|
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.
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
-
|
|
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 @@
|
|
|
687
651
|
/**
|
|
688
652
|
* @internal
|
|
689
653
|
*/ _proto._onDestroy = function _onDestroy() {
|
|
690
|
-
this.
|
|
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 @@
|
|
|
712
686
|
{
|
|
713
687
|
key: "supportedFrameRate",
|
|
714
688
|
get: /**
|
|
715
|
-
*
|
|
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 @@
|
|
|
720
694
|
{
|
|
721
695
|
key: "frameRate",
|
|
722
696
|
get: /**
|
|
723
|
-
*
|
|
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 @@
|
|
|
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 = {}
|
|
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
|
|
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 @@
|
|
|
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
|
-
|
|
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 @@
|
|
|
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.
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
|
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) {
|