@galacean/engine-xr 0.0.0-experimental-stateMachine.0 → 0.0.0-experimental-1.3-xr.1
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 +328 -31
- 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 +328 -31
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +328 -31
- package/dist/module.js +330 -33
- package/dist/module.js.map +1 -1
- package/package.json +8 -8
- package/types/XRManagerExtended.d.ts +4 -16
- package/types/component/TrackedComponent.d.ts +10 -0
- package/types/component/XRHitTestObjectManager.d.ts +0 -0
- package/types/component/XRTrackedComponent.d.ts +16 -0
- package/types/component/XRTrackedObjectManager.d.ts +27 -0
- package/types/index.d.ts +3 -0
- package/types/loader/IXRScene.d.ts +40 -0
- package/types/loader/XRCustomParser.d.ts +9 -0
- package/types/loader/XRReferenceImageDecoder.d.ts +5 -0
- package/types/loader/XRReferenceImageLoader.d.ts +5 -0
- package/types/loader/XRSceneCustomParser.d.ts +4 -0
- package/types/loader/XRSceneExtendParser.d.ts +4 -0
- package/types/loader/XRSceneSchema.d.ts +37 -0
- package/types/session/XRSessionManager.d.ts +11 -0
- package/LICENSE +0 -21
package/dist/browser.js
CHANGED
|
@@ -526,6 +526,7 @@
|
|
|
526
526
|
this._engine = _engine;
|
|
527
527
|
this._mode = exports.XRSessionMode.None;
|
|
528
528
|
this._state = exports.XRSessionState.None;
|
|
529
|
+
this._listeners = [];
|
|
529
530
|
// @ts-ignore
|
|
530
531
|
this._rhi = _engine._hardwareRenderer;
|
|
531
532
|
this._raf = requestAnimationFrame.bind(window);
|
|
@@ -548,7 +549,7 @@
|
|
|
548
549
|
throw new Error("Without session to run.");
|
|
549
550
|
}
|
|
550
551
|
platformSession.start();
|
|
551
|
-
this.
|
|
552
|
+
this.state = exports.XRSessionState.Running;
|
|
552
553
|
this._xrManager._onSessionStart();
|
|
553
554
|
if (!engine.isPaused) {
|
|
554
555
|
engine.pause();
|
|
@@ -568,7 +569,7 @@
|
|
|
568
569
|
rhi._mainFrameBuffer = null;
|
|
569
570
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
570
571
|
platformSession.stop();
|
|
571
|
-
this.
|
|
572
|
+
this.state = exports.XRSessionState.Paused;
|
|
572
573
|
this._xrManager._onSessionStop();
|
|
573
574
|
if (!engine.isPaused) {
|
|
574
575
|
engine.pause();
|
|
@@ -576,6 +577,22 @@
|
|
|
576
577
|
}
|
|
577
578
|
};
|
|
578
579
|
/**
|
|
580
|
+
* Add a listening function for session state changes.
|
|
581
|
+
* @param listener - The listening function
|
|
582
|
+
*/ _proto.addChangedListener = function addChangedListener(listener) {
|
|
583
|
+
this._listeners.push(listener);
|
|
584
|
+
};
|
|
585
|
+
/**
|
|
586
|
+
* Remove a listening function of session state changes.
|
|
587
|
+
* @param listener - The listening function
|
|
588
|
+
*/ _proto.removeChangedListener = function removeChangedListener(listener) {
|
|
589
|
+
var _this = this, listeners = _this._listeners;
|
|
590
|
+
var index = listeners.indexOf(listener);
|
|
591
|
+
if (index >= 0) {
|
|
592
|
+
listeners.splice(index, 1);
|
|
593
|
+
}
|
|
594
|
+
};
|
|
595
|
+
/**
|
|
579
596
|
* @internal
|
|
580
597
|
*/ _proto._initialize = function _initialize(mode, features) {
|
|
581
598
|
var _this = this;
|
|
@@ -590,7 +607,7 @@
|
|
|
590
607
|
xrManager._platformDevice.requestSession(_this._rhi, mode, platformFeatures).then(function(platformSession) {
|
|
591
608
|
_this._mode = mode;
|
|
592
609
|
_this._platformSession = platformSession;
|
|
593
|
-
_this.
|
|
610
|
+
_this.state = exports.XRSessionState.Initialized;
|
|
594
611
|
platformSession.setSessionExitCallBack(_this._onSessionExit);
|
|
595
612
|
platformSession.addEventListener();
|
|
596
613
|
xrManager._onSessionInit();
|
|
@@ -639,7 +656,7 @@
|
|
|
639
656
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
640
657
|
platformSession.removeEventListener();
|
|
641
658
|
this._platformSession = null;
|
|
642
|
-
this.
|
|
659
|
+
this.state = exports.XRSessionState.None;
|
|
643
660
|
this._xrManager._onSessionExit();
|
|
644
661
|
if (!engine.isPaused) {
|
|
645
662
|
engine.pause();
|
|
@@ -664,6 +681,15 @@
|
|
|
664
681
|
* Return the current session state.
|
|
665
682
|
*/ function get() {
|
|
666
683
|
return this._state;
|
|
684
|
+
},
|
|
685
|
+
set: /**
|
|
686
|
+
* @internal
|
|
687
|
+
*/ function set(value) {
|
|
688
|
+
this._state = value;
|
|
689
|
+
var listeners = this._listeners;
|
|
690
|
+
for(var i = 0, n = listeners.length; i < n; i++){
|
|
691
|
+
listeners[i](value);
|
|
692
|
+
}
|
|
667
693
|
}
|
|
668
694
|
},
|
|
669
695
|
{
|
|
@@ -713,21 +739,23 @@
|
|
|
713
739
|
if (this.sessionManager._platformSession) {
|
|
714
740
|
throw new Error("Cannot add feature when the session is initialized.");
|
|
715
741
|
}
|
|
716
|
-
|
|
742
|
+
if (!this._platformDevice.isSupportedFeature(XRManagerExtended._featureMap.get(type))) {
|
|
743
|
+
throw new Error("The feature is not supported");
|
|
744
|
+
}
|
|
745
|
+
var features = this.features;
|
|
717
746
|
for(var i = 0, n = features.length; i < n; i++){
|
|
718
|
-
|
|
719
|
-
if (_instanceof(feature, type)) throw new Error("The feature has been added");
|
|
747
|
+
if (_instanceof(features[i], type)) throw new Error("The feature has been added");
|
|
720
748
|
}
|
|
721
|
-
var
|
|
722
|
-
|
|
723
|
-
return
|
|
749
|
+
var feature = _construct(type, [].concat(this, args));
|
|
750
|
+
features.push(feature);
|
|
751
|
+
return feature;
|
|
724
752
|
};
|
|
725
753
|
/**
|
|
726
754
|
* Get feature which match the type.
|
|
727
755
|
* @param type - The type of the feature
|
|
728
756
|
* @returns The feature which match type
|
|
729
757
|
*/ _proto.getFeature = function getFeature(type) {
|
|
730
|
-
var
|
|
758
|
+
var features = this.features;
|
|
731
759
|
for(var i = 0, n = features.length; i < n; i++){
|
|
732
760
|
var feature = features[i];
|
|
733
761
|
if (_instanceof(feature, type)) {
|
|
@@ -735,19 +763,6 @@
|
|
|
735
763
|
}
|
|
736
764
|
}
|
|
737
765
|
};
|
|
738
|
-
_proto.getFeatures = function getFeatures(type, out) {
|
|
739
|
-
if (out) {
|
|
740
|
-
out.length = 0;
|
|
741
|
-
} else {
|
|
742
|
-
out = [];
|
|
743
|
-
}
|
|
744
|
-
var _this = this, features = _this._features;
|
|
745
|
-
for(var i = 0, n = features.length; i < n; i--){
|
|
746
|
-
var feature = features[i];
|
|
747
|
-
_instanceof(feature, type) && out.push(feature);
|
|
748
|
-
}
|
|
749
|
-
return out;
|
|
750
|
-
};
|
|
751
766
|
/**
|
|
752
767
|
* Enter XR immersive mode, when you call this method, it will initialize and display the XR virtual world.
|
|
753
768
|
* @param sessionMode - The mode of the session
|
|
@@ -767,7 +782,7 @@
|
|
|
767
782
|
// 1. Check if this xr mode is supported
|
|
768
783
|
sessionManager.isSupportedMode(sessionMode).then(function() {
|
|
769
784
|
// 2. Initialize session
|
|
770
|
-
sessionManager._initialize(sessionMode, _this.
|
|
785
|
+
sessionManager._initialize(sessionMode, _this.features).then(function() {
|
|
771
786
|
autoRun && sessionManager.run();
|
|
772
787
|
resolve();
|
|
773
788
|
}, reject);
|
|
@@ -788,7 +803,7 @@
|
|
|
788
803
|
/**
|
|
789
804
|
* @internal
|
|
790
805
|
*/ _proto._initialize = function _initialize(engine, xrDevice) {
|
|
791
|
-
this.
|
|
806
|
+
this.features.length = 0;
|
|
792
807
|
this._platformDevice = xrDevice;
|
|
793
808
|
this.sessionManager = new XRSessionManager(this, engine);
|
|
794
809
|
this.inputManager = new XRInputManager(this, engine);
|
|
@@ -802,7 +817,7 @@
|
|
|
802
817
|
sessionManager._onUpdate();
|
|
803
818
|
this.inputManager._onUpdate();
|
|
804
819
|
this.cameraManager._onUpdate();
|
|
805
|
-
var
|
|
820
|
+
var features = this.features;
|
|
806
821
|
for(var i = 0, n = features.length; i < n; i++){
|
|
807
822
|
var feature = features[i];
|
|
808
823
|
feature.enabled && feature._onUpdate();
|
|
@@ -842,7 +857,7 @@
|
|
|
842
857
|
/**
|
|
843
858
|
* @internal
|
|
844
859
|
*/ _proto._onSessionStop = function _onSessionStop() {
|
|
845
|
-
var
|
|
860
|
+
var features = this.features;
|
|
846
861
|
for(var i = 0, n = features.length; i < n; i++){
|
|
847
862
|
var feature = features[i];
|
|
848
863
|
feature.enabled && feature._onSessionStop();
|
|
@@ -851,7 +866,7 @@
|
|
|
851
866
|
/**
|
|
852
867
|
* @internal
|
|
853
868
|
*/ _proto._onSessionInit = function _onSessionInit() {
|
|
854
|
-
var
|
|
869
|
+
var features = this.features;
|
|
855
870
|
for(var i = 0, n = features.length; i < n; i++){
|
|
856
871
|
var feature = features[i];
|
|
857
872
|
feature.enabled && feature._onSessionInit();
|
|
@@ -861,7 +876,7 @@
|
|
|
861
876
|
* @internal
|
|
862
877
|
*/ _proto._onSessionStart = function _onSessionStart() {
|
|
863
878
|
this.cameraManager._onSessionStart();
|
|
864
|
-
var
|
|
879
|
+
var features = this.features;
|
|
865
880
|
for(var i = 0, n = features.length; i < n; i++){
|
|
866
881
|
var feature = features[i];
|
|
867
882
|
feature.enabled && feature._onSessionStart();
|
|
@@ -871,7 +886,7 @@
|
|
|
871
886
|
* @internal
|
|
872
887
|
*/ _proto._onSessionExit = function _onSessionExit() {
|
|
873
888
|
this.cameraManager._onSessionExit();
|
|
874
|
-
var
|
|
889
|
+
var features = this.features;
|
|
875
890
|
for(var i = 0, n = features.length; i < n; i++){
|
|
876
891
|
var feature = features[i];
|
|
877
892
|
feature.enabled && feature._onSessionExit();
|
|
@@ -1017,6 +1032,34 @@
|
|
|
1017
1032
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1018
1033
|
}
|
|
1019
1034
|
|
|
1035
|
+
function __generator(thisArg, body) {
|
|
1036
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
1037
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
1038
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
1039
|
+
function step(op) {
|
|
1040
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
1041
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
1042
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
1043
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
1044
|
+
switch (op[0]) {
|
|
1045
|
+
case 0: case 1: t = op; break;
|
|
1046
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
1047
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
1048
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
1049
|
+
default:
|
|
1050
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
1051
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
1052
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
1053
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
1054
|
+
if (t[2]) _.ops.pop();
|
|
1055
|
+
_.trys.pop(); continue;
|
|
1056
|
+
}
|
|
1057
|
+
op = body.call(thisArg, _);
|
|
1058
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
1059
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1020
1063
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1021
1064
|
var e = new Error(message);
|
|
1022
1065
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -1559,6 +1602,260 @@
|
|
|
1559
1602
|
this.physicalWidth = physicalWidth;
|
|
1560
1603
|
};
|
|
1561
1604
|
|
|
1605
|
+
exports.XRReferenceImageDecoder = /*#__PURE__*/ function() {
|
|
1606
|
+
function XRReferenceImageDecoder() {}
|
|
1607
|
+
XRReferenceImageDecoder.decode = function decode(engine, bufferReader) {
|
|
1608
|
+
return new Promise(function(resolve, reject) {
|
|
1609
|
+
var physicalWidth = bufferReader.nextFloat32();
|
|
1610
|
+
bufferReader.nextUint8();
|
|
1611
|
+
var img = new Image();
|
|
1612
|
+
img.onload = function() {
|
|
1613
|
+
resolve(new XRReferenceImage("", img, physicalWidth));
|
|
1614
|
+
};
|
|
1615
|
+
img.src = URL.createObjectURL(new window.Blob([
|
|
1616
|
+
bufferReader.nextImagesData(1)[0]
|
|
1617
|
+
]));
|
|
1618
|
+
});
|
|
1619
|
+
};
|
|
1620
|
+
return XRReferenceImageDecoder;
|
|
1621
|
+
}();
|
|
1622
|
+
exports.XRReferenceImageDecoder = __decorate([
|
|
1623
|
+
engine.decoder("XRReferenceImage")
|
|
1624
|
+
], exports.XRReferenceImageDecoder);
|
|
1625
|
+
|
|
1626
|
+
function _extends() {
|
|
1627
|
+
_extends = Object.assign || function assign(target) {
|
|
1628
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
1629
|
+
var source = arguments[i];
|
|
1630
|
+
for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
return target;
|
|
1634
|
+
};
|
|
1635
|
+
|
|
1636
|
+
return _extends.apply(this, arguments);
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
exports.XRReferenceImageLoader = /*#__PURE__*/ function(Loader1) {
|
|
1640
|
+
_inherits(XRReferenceImageLoader, Loader1);
|
|
1641
|
+
function XRReferenceImageLoader() {
|
|
1642
|
+
return Loader1.apply(this, arguments);
|
|
1643
|
+
}
|
|
1644
|
+
var _proto = XRReferenceImageLoader.prototype;
|
|
1645
|
+
_proto.load = function load(item, resourceManager) {
|
|
1646
|
+
var _this = this;
|
|
1647
|
+
return new engine.AssetPromise(function(resolve, reject) {
|
|
1648
|
+
_this.request(item.url, _extends({}, item, {
|
|
1649
|
+
type: "arraybuffer"
|
|
1650
|
+
})).then(function(data) {
|
|
1651
|
+
engine.decode(data, resourceManager.engine).then(function(referenceImage) {
|
|
1652
|
+
resolve(referenceImage);
|
|
1653
|
+
});
|
|
1654
|
+
}).catch(reject);
|
|
1655
|
+
});
|
|
1656
|
+
};
|
|
1657
|
+
return XRReferenceImageLoader;
|
|
1658
|
+
}(engine.Loader);
|
|
1659
|
+
exports.XRReferenceImageLoader = __decorate([
|
|
1660
|
+
engine.resourceLoader("XRReferenceImage", [])
|
|
1661
|
+
], exports.XRReferenceImageLoader);
|
|
1662
|
+
|
|
1663
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1664
|
+
try {
|
|
1665
|
+
var info = gen[key](arg);
|
|
1666
|
+
var value = info.value;
|
|
1667
|
+
} catch (error) {
|
|
1668
|
+
reject(error);
|
|
1669
|
+
return;
|
|
1670
|
+
}
|
|
1671
|
+
if (info.done) resolve(value);
|
|
1672
|
+
else Promise.resolve(value).then(_next, _throw);
|
|
1673
|
+
}
|
|
1674
|
+
function _async_to_generator(fn) {
|
|
1675
|
+
return function() {
|
|
1676
|
+
var self = this, args = arguments;
|
|
1677
|
+
|
|
1678
|
+
return new Promise(function(resolve, reject) {
|
|
1679
|
+
var gen = fn.apply(self, args);
|
|
1680
|
+
|
|
1681
|
+
function _next(value) {
|
|
1682
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
function _throw(err) {
|
|
1686
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
_next(undefined);
|
|
1690
|
+
});
|
|
1691
|
+
};
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
exports.XRSceneExtendParser = /*#__PURE__*/ function() {
|
|
1695
|
+
function XRSceneExtendParser() {}
|
|
1696
|
+
XRSceneExtendParser.parse = function parse(engine$1, context, data) {
|
|
1697
|
+
return _async_to_generator(function() {
|
|
1698
|
+
var xrManager, xr, origin, camera, leftCamera, rightCamera, features, entityMap, cameraManager, i, n, feature, _;
|
|
1699
|
+
return __generator(this, function(_state) {
|
|
1700
|
+
switch(_state.label){
|
|
1701
|
+
case 0:
|
|
1702
|
+
xrManager = engine$1.xrManager;
|
|
1703
|
+
if (!xrManager) {
|
|
1704
|
+
engine.Logger.error("XRManager is not found in the engine.");
|
|
1705
|
+
return [
|
|
1706
|
+
2
|
|
1707
|
+
];
|
|
1708
|
+
}
|
|
1709
|
+
xr = data.scene.xr;
|
|
1710
|
+
origin = xr.origin, camera = xr.camera, leftCamera = xr.leftCamera, rightCamera = xr.rightCamera, features = xr.features;
|
|
1711
|
+
entityMap = context.entityMap;
|
|
1712
|
+
origin && (xrManager.origin = entityMap.get(origin));
|
|
1713
|
+
cameraManager = xrManager.cameraManager;
|
|
1714
|
+
setCamera(cameraManager, exports.XRTrackedInputDevice.Camera, entityMap.get(camera));
|
|
1715
|
+
setCamera(cameraManager, exports.XRTrackedInputDevice.LeftCamera, entityMap.get(leftCamera));
|
|
1716
|
+
setCamera(cameraManager, exports.XRTrackedInputDevice.RightCamera, entityMap.get(rightCamera));
|
|
1717
|
+
i = 0, n = features.length;
|
|
1718
|
+
_state.label = 1;
|
|
1719
|
+
case 1:
|
|
1720
|
+
if (!(i < n)) return [
|
|
1721
|
+
3,
|
|
1722
|
+
9
|
|
1723
|
+
];
|
|
1724
|
+
feature = features[i];
|
|
1725
|
+
if (!feature.enable) return [
|
|
1726
|
+
3,
|
|
1727
|
+
8
|
|
1728
|
+
];
|
|
1729
|
+
_ = feature.type;
|
|
1730
|
+
switch(_){
|
|
1731
|
+
case exports.XRFeatureType.ImageTracking:
|
|
1732
|
+
return [
|
|
1733
|
+
3,
|
|
1734
|
+
2
|
|
1735
|
+
];
|
|
1736
|
+
case exports.XRFeatureType.PlaneTracking:
|
|
1737
|
+
return [
|
|
1738
|
+
3,
|
|
1739
|
+
4
|
|
1740
|
+
];
|
|
1741
|
+
case exports.XRFeatureType.AnchorTracking:
|
|
1742
|
+
return [
|
|
1743
|
+
3,
|
|
1744
|
+
5
|
|
1745
|
+
];
|
|
1746
|
+
case exports.XRFeatureType.HitTest:
|
|
1747
|
+
return [
|
|
1748
|
+
3,
|
|
1749
|
+
6
|
|
1750
|
+
];
|
|
1751
|
+
}
|
|
1752
|
+
return [
|
|
1753
|
+
3,
|
|
1754
|
+
7
|
|
1755
|
+
];
|
|
1756
|
+
case 2:
|
|
1757
|
+
return [
|
|
1758
|
+
4,
|
|
1759
|
+
addImageTracking(engine$1, xrManager, feature)
|
|
1760
|
+
];
|
|
1761
|
+
case 3:
|
|
1762
|
+
_state.sent();
|
|
1763
|
+
return [
|
|
1764
|
+
3,
|
|
1765
|
+
8
|
|
1766
|
+
];
|
|
1767
|
+
case 4:
|
|
1768
|
+
addPlaneTracking(xrManager, feature);
|
|
1769
|
+
return [
|
|
1770
|
+
3,
|
|
1771
|
+
8
|
|
1772
|
+
];
|
|
1773
|
+
case 5:
|
|
1774
|
+
addAnchorTracking(xrManager, feature);
|
|
1775
|
+
return [
|
|
1776
|
+
3,
|
|
1777
|
+
8
|
|
1778
|
+
];
|
|
1779
|
+
case 6:
|
|
1780
|
+
addHitTest(xrManager);
|
|
1781
|
+
return [
|
|
1782
|
+
3,
|
|
1783
|
+
8
|
|
1784
|
+
];
|
|
1785
|
+
case 7:
|
|
1786
|
+
return [
|
|
1787
|
+
3,
|
|
1788
|
+
8
|
|
1789
|
+
];
|
|
1790
|
+
case 8:
|
|
1791
|
+
i++;
|
|
1792
|
+
return [
|
|
1793
|
+
3,
|
|
1794
|
+
1
|
|
1795
|
+
];
|
|
1796
|
+
case 9:
|
|
1797
|
+
return [
|
|
1798
|
+
2
|
|
1799
|
+
];
|
|
1800
|
+
}
|
|
1801
|
+
});
|
|
1802
|
+
})();
|
|
1803
|
+
};
|
|
1804
|
+
return XRSceneExtendParser;
|
|
1805
|
+
}();
|
|
1806
|
+
exports.XRSceneExtendParser = __decorate([
|
|
1807
|
+
engine.registerSceneExtendParser("XR")
|
|
1808
|
+
], exports.XRSceneExtendParser);
|
|
1809
|
+
function addImageTracking(engine$1, xrManager, schema) {
|
|
1810
|
+
if (!xrManager.isSupportedFeature(exports.XRImageTracking)) {
|
|
1811
|
+
engine.Logger.error("Image Tracking is not supported.");
|
|
1812
|
+
return;
|
|
1813
|
+
}
|
|
1814
|
+
var promises = [];
|
|
1815
|
+
var images = schema.images;
|
|
1816
|
+
var resourceManager = engine$1.resourceManager;
|
|
1817
|
+
for(var i = 0, n = images.length; i < n; i++){
|
|
1818
|
+
// @ts-ignore
|
|
1819
|
+
promises.push(resourceManager.getResourceByRef(images[i]));
|
|
1820
|
+
}
|
|
1821
|
+
return Promise.all(promises).then(function(xrReferenceImages) {
|
|
1822
|
+
xrManager.addFeature(exports.XRImageTracking, xrReferenceImages);
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
function addPlaneTracking(xrManager, schema) {
|
|
1826
|
+
if (!xrManager.isSupportedFeature(exports.XRPlaneTracking)) {
|
|
1827
|
+
engine.Logger.error("Plane Tracking is not supported.");
|
|
1828
|
+
return;
|
|
1829
|
+
}
|
|
1830
|
+
xrManager.addFeature(exports.XRPlaneTracking, schema.detectionMode);
|
|
1831
|
+
}
|
|
1832
|
+
function addAnchorTracking(xrManager, schema) {
|
|
1833
|
+
if (!xrManager.isSupportedFeature(exports.XRAnchorTracking)) {
|
|
1834
|
+
engine.Logger.error("Anchor Tracking is not supported.");
|
|
1835
|
+
return;
|
|
1836
|
+
}
|
|
1837
|
+
var anchorTracking = xrManager.addFeature(exports.XRAnchorTracking);
|
|
1838
|
+
var anchors = schema.anchors;
|
|
1839
|
+
for(var i = 0, n = anchors.length; i < n; i++){
|
|
1840
|
+
var anchor = anchors[i];
|
|
1841
|
+
var position = new engine.Vector3().copyFrom(anchor.position);
|
|
1842
|
+
var rotation = new engine.Quaternion().copyFrom(anchor.rotation);
|
|
1843
|
+
anchorTracking.addAnchor(position, rotation);
|
|
1844
|
+
}
|
|
1845
|
+
}
|
|
1846
|
+
function addHitTest(xrManager, schema) {
|
|
1847
|
+
if (!xrManager.isSupportedFeature(exports.XRHitTest)) {
|
|
1848
|
+
engine.Logger.error("Hit Test is not supported.");
|
|
1849
|
+
return;
|
|
1850
|
+
}
|
|
1851
|
+
xrManager.addFeature(exports.XRHitTest);
|
|
1852
|
+
}
|
|
1853
|
+
function setCamera(cameraManager, device, entity) {
|
|
1854
|
+
var _entity;
|
|
1855
|
+
var camera = (_entity = entity) == null ? void 0 : _entity.getComponent(engine.Camera);
|
|
1856
|
+
camera && cameraManager.attachCamera(device, camera);
|
|
1857
|
+
}
|
|
1858
|
+
|
|
1562
1859
|
exports.XRAnchor = XRAnchor;
|
|
1563
1860
|
exports.XRCamera = XRCamera;
|
|
1564
1861
|
exports.XRCameraManager = XRCameraManager;
|