@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/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CameraType, Matrix, CameraClearFlags, Vector3, Quaternion, Rect, XRManager, Ray, Plane, Vector2 } from '@galacean/engine';
|
|
1
|
+
import { CameraType, Matrix, CameraClearFlags, Vector3, Quaternion, Rect, XRManager, Ray, Plane, Vector2, decoder, resourceLoader, AssetPromise, decode, Loader, registerSceneExtendParser, Logger, Camera } from '@galacean/engine';
|
|
2
2
|
|
|
3
3
|
function _is_native_reflect_construct() {
|
|
4
4
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
@@ -522,6 +522,7 @@ var XRTargetRayMode;
|
|
|
522
522
|
this._engine = _engine;
|
|
523
523
|
this._mode = XRSessionMode.None;
|
|
524
524
|
this._state = XRSessionState.None;
|
|
525
|
+
this._listeners = [];
|
|
525
526
|
// @ts-ignore
|
|
526
527
|
this._rhi = _engine._hardwareRenderer;
|
|
527
528
|
this._raf = requestAnimationFrame.bind(window);
|
|
@@ -544,7 +545,7 @@ var XRTargetRayMode;
|
|
|
544
545
|
throw new Error("Without session to run.");
|
|
545
546
|
}
|
|
546
547
|
platformSession.start();
|
|
547
|
-
this.
|
|
548
|
+
this.state = XRSessionState.Running;
|
|
548
549
|
this._xrManager._onSessionStart();
|
|
549
550
|
if (!engine.isPaused) {
|
|
550
551
|
engine.pause();
|
|
@@ -564,7 +565,7 @@ var XRTargetRayMode;
|
|
|
564
565
|
rhi._mainFrameBuffer = null;
|
|
565
566
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
566
567
|
platformSession.stop();
|
|
567
|
-
this.
|
|
568
|
+
this.state = XRSessionState.Paused;
|
|
568
569
|
this._xrManager._onSessionStop();
|
|
569
570
|
if (!engine.isPaused) {
|
|
570
571
|
engine.pause();
|
|
@@ -572,6 +573,22 @@ var XRTargetRayMode;
|
|
|
572
573
|
}
|
|
573
574
|
};
|
|
574
575
|
/**
|
|
576
|
+
* Add a listening function for session state changes.
|
|
577
|
+
* @param listener - The listening function
|
|
578
|
+
*/ _proto.addChangedListener = function addChangedListener(listener) {
|
|
579
|
+
this._listeners.push(listener);
|
|
580
|
+
};
|
|
581
|
+
/**
|
|
582
|
+
* Remove a listening function of session state changes.
|
|
583
|
+
* @param listener - The listening function
|
|
584
|
+
*/ _proto.removeChangedListener = function removeChangedListener(listener) {
|
|
585
|
+
var _this = this, listeners = _this._listeners;
|
|
586
|
+
var index = listeners.indexOf(listener);
|
|
587
|
+
if (index >= 0) {
|
|
588
|
+
listeners.splice(index, 1);
|
|
589
|
+
}
|
|
590
|
+
};
|
|
591
|
+
/**
|
|
575
592
|
* @internal
|
|
576
593
|
*/ _proto._initialize = function _initialize(mode, features) {
|
|
577
594
|
var _this = this;
|
|
@@ -586,7 +603,7 @@ var XRTargetRayMode;
|
|
|
586
603
|
xrManager._platformDevice.requestSession(_this._rhi, mode, platformFeatures).then(function(platformSession) {
|
|
587
604
|
_this._mode = mode;
|
|
588
605
|
_this._platformSession = platformSession;
|
|
589
|
-
_this.
|
|
606
|
+
_this.state = XRSessionState.Initialized;
|
|
590
607
|
platformSession.setSessionExitCallBack(_this._onSessionExit);
|
|
591
608
|
platformSession.addEventListener();
|
|
592
609
|
xrManager._onSessionInit();
|
|
@@ -635,7 +652,7 @@ var XRTargetRayMode;
|
|
|
635
652
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
636
653
|
platformSession.removeEventListener();
|
|
637
654
|
this._platformSession = null;
|
|
638
|
-
this.
|
|
655
|
+
this.state = XRSessionState.None;
|
|
639
656
|
this._xrManager._onSessionExit();
|
|
640
657
|
if (!engine.isPaused) {
|
|
641
658
|
engine.pause();
|
|
@@ -660,6 +677,15 @@ var XRTargetRayMode;
|
|
|
660
677
|
* Return the current session state.
|
|
661
678
|
*/ function get() {
|
|
662
679
|
return this._state;
|
|
680
|
+
},
|
|
681
|
+
set: /**
|
|
682
|
+
* @internal
|
|
683
|
+
*/ function set(value) {
|
|
684
|
+
this._state = value;
|
|
685
|
+
var listeners = this._listeners;
|
|
686
|
+
for(var i = 0, n = listeners.length; i < n; i++){
|
|
687
|
+
listeners[i](value);
|
|
688
|
+
}
|
|
663
689
|
}
|
|
664
690
|
},
|
|
665
691
|
{
|
|
@@ -709,21 +735,23 @@ var XRTargetRayMode;
|
|
|
709
735
|
if (this.sessionManager._platformSession) {
|
|
710
736
|
throw new Error("Cannot add feature when the session is initialized.");
|
|
711
737
|
}
|
|
712
|
-
|
|
738
|
+
if (!this._platformDevice.isSupportedFeature(XRManagerExtended._featureMap.get(type))) {
|
|
739
|
+
throw new Error("The feature is not supported");
|
|
740
|
+
}
|
|
741
|
+
var features = this.features;
|
|
713
742
|
for(var i = 0, n = features.length; i < n; i++){
|
|
714
|
-
|
|
715
|
-
if (_instanceof(feature, type)) throw new Error("The feature has been added");
|
|
743
|
+
if (_instanceof(features[i], type)) throw new Error("The feature has been added");
|
|
716
744
|
}
|
|
717
|
-
var
|
|
718
|
-
|
|
719
|
-
return
|
|
745
|
+
var feature = _construct(type, [].concat(this, args));
|
|
746
|
+
features.push(feature);
|
|
747
|
+
return feature;
|
|
720
748
|
};
|
|
721
749
|
/**
|
|
722
750
|
* Get feature which match the type.
|
|
723
751
|
* @param type - The type of the feature
|
|
724
752
|
* @returns The feature which match type
|
|
725
753
|
*/ _proto.getFeature = function getFeature(type) {
|
|
726
|
-
var
|
|
754
|
+
var features = this.features;
|
|
727
755
|
for(var i = 0, n = features.length; i < n; i++){
|
|
728
756
|
var feature = features[i];
|
|
729
757
|
if (_instanceof(feature, type)) {
|
|
@@ -731,19 +759,6 @@ var XRTargetRayMode;
|
|
|
731
759
|
}
|
|
732
760
|
}
|
|
733
761
|
};
|
|
734
|
-
_proto.getFeatures = function getFeatures(type, out) {
|
|
735
|
-
if (out) {
|
|
736
|
-
out.length = 0;
|
|
737
|
-
} else {
|
|
738
|
-
out = [];
|
|
739
|
-
}
|
|
740
|
-
var _this = this, features = _this._features;
|
|
741
|
-
for(var i = 0, n = features.length; i < n; i--){
|
|
742
|
-
var feature = features[i];
|
|
743
|
-
_instanceof(feature, type) && out.push(feature);
|
|
744
|
-
}
|
|
745
|
-
return out;
|
|
746
|
-
};
|
|
747
762
|
/**
|
|
748
763
|
* Enter XR immersive mode, when you call this method, it will initialize and display the XR virtual world.
|
|
749
764
|
* @param sessionMode - The mode of the session
|
|
@@ -763,7 +778,7 @@ var XRTargetRayMode;
|
|
|
763
778
|
// 1. Check if this xr mode is supported
|
|
764
779
|
sessionManager.isSupportedMode(sessionMode).then(function() {
|
|
765
780
|
// 2. Initialize session
|
|
766
|
-
sessionManager._initialize(sessionMode, _this.
|
|
781
|
+
sessionManager._initialize(sessionMode, _this.features).then(function() {
|
|
767
782
|
autoRun && sessionManager.run();
|
|
768
783
|
resolve();
|
|
769
784
|
}, reject);
|
|
@@ -784,7 +799,7 @@ var XRTargetRayMode;
|
|
|
784
799
|
/**
|
|
785
800
|
* @internal
|
|
786
801
|
*/ _proto._initialize = function _initialize(engine, xrDevice) {
|
|
787
|
-
this.
|
|
802
|
+
this.features.length = 0;
|
|
788
803
|
this._platformDevice = xrDevice;
|
|
789
804
|
this.sessionManager = new XRSessionManager(this, engine);
|
|
790
805
|
this.inputManager = new XRInputManager(this, engine);
|
|
@@ -798,7 +813,7 @@ var XRTargetRayMode;
|
|
|
798
813
|
sessionManager._onUpdate();
|
|
799
814
|
this.inputManager._onUpdate();
|
|
800
815
|
this.cameraManager._onUpdate();
|
|
801
|
-
var
|
|
816
|
+
var features = this.features;
|
|
802
817
|
for(var i = 0, n = features.length; i < n; i++){
|
|
803
818
|
var feature = features[i];
|
|
804
819
|
feature.enabled && feature._onUpdate();
|
|
@@ -838,7 +853,7 @@ var XRTargetRayMode;
|
|
|
838
853
|
/**
|
|
839
854
|
* @internal
|
|
840
855
|
*/ _proto._onSessionStop = function _onSessionStop() {
|
|
841
|
-
var
|
|
856
|
+
var features = this.features;
|
|
842
857
|
for(var i = 0, n = features.length; i < n; i++){
|
|
843
858
|
var feature = features[i];
|
|
844
859
|
feature.enabled && feature._onSessionStop();
|
|
@@ -847,7 +862,7 @@ var XRTargetRayMode;
|
|
|
847
862
|
/**
|
|
848
863
|
* @internal
|
|
849
864
|
*/ _proto._onSessionInit = function _onSessionInit() {
|
|
850
|
-
var
|
|
865
|
+
var features = this.features;
|
|
851
866
|
for(var i = 0, n = features.length; i < n; i++){
|
|
852
867
|
var feature = features[i];
|
|
853
868
|
feature.enabled && feature._onSessionInit();
|
|
@@ -857,7 +872,7 @@ var XRTargetRayMode;
|
|
|
857
872
|
* @internal
|
|
858
873
|
*/ _proto._onSessionStart = function _onSessionStart() {
|
|
859
874
|
this.cameraManager._onSessionStart();
|
|
860
|
-
var
|
|
875
|
+
var features = this.features;
|
|
861
876
|
for(var i = 0, n = features.length; i < n; i++){
|
|
862
877
|
var feature = features[i];
|
|
863
878
|
feature.enabled && feature._onSessionStart();
|
|
@@ -867,7 +882,7 @@ var XRTargetRayMode;
|
|
|
867
882
|
* @internal
|
|
868
883
|
*/ _proto._onSessionExit = function _onSessionExit() {
|
|
869
884
|
this.cameraManager._onSessionExit();
|
|
870
|
-
var
|
|
885
|
+
var features = this.features;
|
|
871
886
|
for(var i = 0, n = features.length; i < n; i++){
|
|
872
887
|
var feature = features[i];
|
|
873
888
|
feature.enabled && feature._onSessionExit();
|
|
@@ -1013,6 +1028,34 @@ function __decorate(decorators, target, key, desc) {
|
|
|
1013
1028
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1014
1029
|
}
|
|
1015
1030
|
|
|
1031
|
+
function __generator(thisArg, body) {
|
|
1032
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
1033
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
1034
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
1035
|
+
function step(op) {
|
|
1036
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
1037
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
1038
|
+
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;
|
|
1039
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
1040
|
+
switch (op[0]) {
|
|
1041
|
+
case 0: case 1: t = op; break;
|
|
1042
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
1043
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
1044
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
1045
|
+
default:
|
|
1046
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
1047
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
1048
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
1049
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
1050
|
+
if (t[2]) _.ops.pop();
|
|
1051
|
+
_.trys.pop(); continue;
|
|
1052
|
+
}
|
|
1053
|
+
op = body.call(thisArg, _);
|
|
1054
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
1055
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1016
1059
|
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1017
1060
|
var e = new Error(message);
|
|
1018
1061
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
@@ -1555,5 +1598,259 @@ XRImageTracking = __decorate([
|
|
|
1555
1598
|
this.physicalWidth = physicalWidth;
|
|
1556
1599
|
};
|
|
1557
1600
|
|
|
1558
|
-
|
|
1601
|
+
var XRReferenceImageDecoder = /*#__PURE__*/ function() {
|
|
1602
|
+
function XRReferenceImageDecoder() {}
|
|
1603
|
+
XRReferenceImageDecoder.decode = function decode(engine, bufferReader) {
|
|
1604
|
+
return new Promise(function(resolve, reject) {
|
|
1605
|
+
var physicalWidth = bufferReader.nextFloat32();
|
|
1606
|
+
bufferReader.nextUint8();
|
|
1607
|
+
var img = new Image();
|
|
1608
|
+
img.onload = function() {
|
|
1609
|
+
resolve(new XRReferenceImage("", img, physicalWidth));
|
|
1610
|
+
};
|
|
1611
|
+
img.src = URL.createObjectURL(new window.Blob([
|
|
1612
|
+
bufferReader.nextImagesData(1)[0]
|
|
1613
|
+
]));
|
|
1614
|
+
});
|
|
1615
|
+
};
|
|
1616
|
+
return XRReferenceImageDecoder;
|
|
1617
|
+
}();
|
|
1618
|
+
XRReferenceImageDecoder = __decorate([
|
|
1619
|
+
decoder("XRReferenceImage")
|
|
1620
|
+
], XRReferenceImageDecoder);
|
|
1621
|
+
|
|
1622
|
+
function _extends() {
|
|
1623
|
+
_extends = Object.assign || function assign(target) {
|
|
1624
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
1625
|
+
var source = arguments[i];
|
|
1626
|
+
for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
return target;
|
|
1630
|
+
};
|
|
1631
|
+
|
|
1632
|
+
return _extends.apply(this, arguments);
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
var XRReferenceImageLoader = /*#__PURE__*/ function(Loader1) {
|
|
1636
|
+
_inherits(XRReferenceImageLoader, Loader1);
|
|
1637
|
+
function XRReferenceImageLoader() {
|
|
1638
|
+
return Loader1.apply(this, arguments);
|
|
1639
|
+
}
|
|
1640
|
+
var _proto = XRReferenceImageLoader.prototype;
|
|
1641
|
+
_proto.load = function load(item, resourceManager) {
|
|
1642
|
+
var _this = this;
|
|
1643
|
+
return new AssetPromise(function(resolve, reject) {
|
|
1644
|
+
_this.request(item.url, _extends({}, item, {
|
|
1645
|
+
type: "arraybuffer"
|
|
1646
|
+
})).then(function(data) {
|
|
1647
|
+
decode(data, resourceManager.engine).then(function(referenceImage) {
|
|
1648
|
+
resolve(referenceImage);
|
|
1649
|
+
});
|
|
1650
|
+
}).catch(reject);
|
|
1651
|
+
});
|
|
1652
|
+
};
|
|
1653
|
+
return XRReferenceImageLoader;
|
|
1654
|
+
}(Loader);
|
|
1655
|
+
XRReferenceImageLoader = __decorate([
|
|
1656
|
+
resourceLoader("XRReferenceImage", [])
|
|
1657
|
+
], XRReferenceImageLoader);
|
|
1658
|
+
|
|
1659
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1660
|
+
try {
|
|
1661
|
+
var info = gen[key](arg);
|
|
1662
|
+
var value = info.value;
|
|
1663
|
+
} catch (error) {
|
|
1664
|
+
reject(error);
|
|
1665
|
+
return;
|
|
1666
|
+
}
|
|
1667
|
+
if (info.done) resolve(value);
|
|
1668
|
+
else Promise.resolve(value).then(_next, _throw);
|
|
1669
|
+
}
|
|
1670
|
+
function _async_to_generator(fn) {
|
|
1671
|
+
return function() {
|
|
1672
|
+
var self = this, args = arguments;
|
|
1673
|
+
|
|
1674
|
+
return new Promise(function(resolve, reject) {
|
|
1675
|
+
var gen = fn.apply(self, args);
|
|
1676
|
+
|
|
1677
|
+
function _next(value) {
|
|
1678
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
function _throw(err) {
|
|
1682
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
_next(undefined);
|
|
1686
|
+
});
|
|
1687
|
+
};
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
var XRSceneExtendParser = /*#__PURE__*/ function() {
|
|
1691
|
+
function XRSceneExtendParser() {}
|
|
1692
|
+
XRSceneExtendParser.parse = function parse(engine, context, data) {
|
|
1693
|
+
return _async_to_generator(function() {
|
|
1694
|
+
var xrManager, xr, origin, camera, leftCamera, rightCamera, features, entityMap, cameraManager, i, n, feature, _;
|
|
1695
|
+
return __generator(this, function(_state) {
|
|
1696
|
+
switch(_state.label){
|
|
1697
|
+
case 0:
|
|
1698
|
+
xrManager = engine.xrManager;
|
|
1699
|
+
if (!xrManager) {
|
|
1700
|
+
Logger.error("XRManager is not found in the engine.");
|
|
1701
|
+
return [
|
|
1702
|
+
2
|
|
1703
|
+
];
|
|
1704
|
+
}
|
|
1705
|
+
xr = data.scene.xr;
|
|
1706
|
+
origin = xr.origin, camera = xr.camera, leftCamera = xr.leftCamera, rightCamera = xr.rightCamera, features = xr.features;
|
|
1707
|
+
entityMap = context.entityMap;
|
|
1708
|
+
origin && (xrManager.origin = entityMap.get(origin));
|
|
1709
|
+
cameraManager = xrManager.cameraManager;
|
|
1710
|
+
setCamera(cameraManager, XRTrackedInputDevice.Camera, entityMap.get(camera));
|
|
1711
|
+
setCamera(cameraManager, XRTrackedInputDevice.LeftCamera, entityMap.get(leftCamera));
|
|
1712
|
+
setCamera(cameraManager, XRTrackedInputDevice.RightCamera, entityMap.get(rightCamera));
|
|
1713
|
+
i = 0, n = features.length;
|
|
1714
|
+
_state.label = 1;
|
|
1715
|
+
case 1:
|
|
1716
|
+
if (!(i < n)) return [
|
|
1717
|
+
3,
|
|
1718
|
+
9
|
|
1719
|
+
];
|
|
1720
|
+
feature = features[i];
|
|
1721
|
+
if (!feature.enable) return [
|
|
1722
|
+
3,
|
|
1723
|
+
8
|
|
1724
|
+
];
|
|
1725
|
+
_ = feature.type;
|
|
1726
|
+
switch(_){
|
|
1727
|
+
case XRFeatureType.ImageTracking:
|
|
1728
|
+
return [
|
|
1729
|
+
3,
|
|
1730
|
+
2
|
|
1731
|
+
];
|
|
1732
|
+
case XRFeatureType.PlaneTracking:
|
|
1733
|
+
return [
|
|
1734
|
+
3,
|
|
1735
|
+
4
|
|
1736
|
+
];
|
|
1737
|
+
case XRFeatureType.AnchorTracking:
|
|
1738
|
+
return [
|
|
1739
|
+
3,
|
|
1740
|
+
5
|
|
1741
|
+
];
|
|
1742
|
+
case XRFeatureType.HitTest:
|
|
1743
|
+
return [
|
|
1744
|
+
3,
|
|
1745
|
+
6
|
|
1746
|
+
];
|
|
1747
|
+
}
|
|
1748
|
+
return [
|
|
1749
|
+
3,
|
|
1750
|
+
7
|
|
1751
|
+
];
|
|
1752
|
+
case 2:
|
|
1753
|
+
return [
|
|
1754
|
+
4,
|
|
1755
|
+
addImageTracking(engine, xrManager, feature)
|
|
1756
|
+
];
|
|
1757
|
+
case 3:
|
|
1758
|
+
_state.sent();
|
|
1759
|
+
return [
|
|
1760
|
+
3,
|
|
1761
|
+
8
|
|
1762
|
+
];
|
|
1763
|
+
case 4:
|
|
1764
|
+
addPlaneTracking(xrManager, feature);
|
|
1765
|
+
return [
|
|
1766
|
+
3,
|
|
1767
|
+
8
|
|
1768
|
+
];
|
|
1769
|
+
case 5:
|
|
1770
|
+
addAnchorTracking(xrManager, feature);
|
|
1771
|
+
return [
|
|
1772
|
+
3,
|
|
1773
|
+
8
|
|
1774
|
+
];
|
|
1775
|
+
case 6:
|
|
1776
|
+
addHitTest(xrManager);
|
|
1777
|
+
return [
|
|
1778
|
+
3,
|
|
1779
|
+
8
|
|
1780
|
+
];
|
|
1781
|
+
case 7:
|
|
1782
|
+
return [
|
|
1783
|
+
3,
|
|
1784
|
+
8
|
|
1785
|
+
];
|
|
1786
|
+
case 8:
|
|
1787
|
+
i++;
|
|
1788
|
+
return [
|
|
1789
|
+
3,
|
|
1790
|
+
1
|
|
1791
|
+
];
|
|
1792
|
+
case 9:
|
|
1793
|
+
return [
|
|
1794
|
+
2
|
|
1795
|
+
];
|
|
1796
|
+
}
|
|
1797
|
+
});
|
|
1798
|
+
})();
|
|
1799
|
+
};
|
|
1800
|
+
return XRSceneExtendParser;
|
|
1801
|
+
}();
|
|
1802
|
+
XRSceneExtendParser = __decorate([
|
|
1803
|
+
registerSceneExtendParser("XR")
|
|
1804
|
+
], XRSceneExtendParser);
|
|
1805
|
+
function addImageTracking(engine, xrManager, schema) {
|
|
1806
|
+
if (!xrManager.isSupportedFeature(XRImageTracking)) {
|
|
1807
|
+
Logger.error("Image Tracking is not supported.");
|
|
1808
|
+
return;
|
|
1809
|
+
}
|
|
1810
|
+
var promises = [];
|
|
1811
|
+
var images = schema.images;
|
|
1812
|
+
var resourceManager = engine.resourceManager;
|
|
1813
|
+
for(var i = 0, n = images.length; i < n; i++){
|
|
1814
|
+
// @ts-ignore
|
|
1815
|
+
promises.push(resourceManager.getResourceByRef(images[i]));
|
|
1816
|
+
}
|
|
1817
|
+
return Promise.all(promises).then(function(xrReferenceImages) {
|
|
1818
|
+
xrManager.addFeature(XRImageTracking, xrReferenceImages);
|
|
1819
|
+
});
|
|
1820
|
+
}
|
|
1821
|
+
function addPlaneTracking(xrManager, schema) {
|
|
1822
|
+
if (!xrManager.isSupportedFeature(XRPlaneTracking)) {
|
|
1823
|
+
Logger.error("Plane Tracking is not supported.");
|
|
1824
|
+
return;
|
|
1825
|
+
}
|
|
1826
|
+
xrManager.addFeature(XRPlaneTracking, schema.detectionMode);
|
|
1827
|
+
}
|
|
1828
|
+
function addAnchorTracking(xrManager, schema) {
|
|
1829
|
+
if (!xrManager.isSupportedFeature(XRAnchorTracking)) {
|
|
1830
|
+
Logger.error("Anchor Tracking is not supported.");
|
|
1831
|
+
return;
|
|
1832
|
+
}
|
|
1833
|
+
var anchorTracking = xrManager.addFeature(XRAnchorTracking);
|
|
1834
|
+
var anchors = schema.anchors;
|
|
1835
|
+
for(var i = 0, n = anchors.length; i < n; i++){
|
|
1836
|
+
var anchor = anchors[i];
|
|
1837
|
+
var position = new Vector3().copyFrom(anchor.position);
|
|
1838
|
+
var rotation = new Quaternion().copyFrom(anchor.rotation);
|
|
1839
|
+
anchorTracking.addAnchor(position, rotation);
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
function addHitTest(xrManager, schema) {
|
|
1843
|
+
if (!xrManager.isSupportedFeature(XRHitTest)) {
|
|
1844
|
+
Logger.error("Hit Test is not supported.");
|
|
1845
|
+
return;
|
|
1846
|
+
}
|
|
1847
|
+
xrManager.addFeature(XRHitTest);
|
|
1848
|
+
}
|
|
1849
|
+
function setCamera(cameraManager, device, entity) {
|
|
1850
|
+
var _entity;
|
|
1851
|
+
var camera = (_entity = entity) == null ? void 0 : _entity.getComponent(Camera);
|
|
1852
|
+
camera && cameraManager.attachCamera(device, camera);
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
export { TrackableType, XRAnchor, XRAnchorTracking, XRCamera, XRCameraManager, XRController, XRFeature, XRFeatureType, XRHitResult, XRHitTest, XRImageTracking, XRInputButton, XRInputEventType, XRInputManager, XRPlaneMode, XRPlaneTracking, XRPose, XRReferenceImage, XRReferenceImageDecoder, XRReferenceImageLoader, XRRequestTrackingState, XRSceneExtendParser, XRSessionManager, XRSessionMode, XRSessionState, XRTargetRayMode, XRTrackedImage, XRTrackedInputDevice, XRTrackedPlane, XRTrackingState };
|
|
1559
1856
|
//# sourceMappingURL=module.js.map
|