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