@galacean/engine-xr 0.0.0-experimental-1.2-xr.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 +372 -85
- 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 +372 -85
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +372 -85
- package/dist/module.js +374 -85
- package/dist/module.js.map +1 -1
- package/package.json +8 -8
- package/types/XRManagerExtended.d.ts +3 -13
- 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/feature/trackable/XRTrackableFeature.d.ts +1 -1
- package/types/index.d.ts +3 -2
- 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,13 +550,12 @@ 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();
|
|
556
557
|
engine.resume();
|
|
557
558
|
}
|
|
558
|
-
engine.dispatch("XRSessionStart");
|
|
559
559
|
};
|
|
560
560
|
/**
|
|
561
561
|
* Stop the session.
|
|
@@ -570,13 +570,28 @@ exports.XRTargetRayMode = void 0;
|
|
|
570
570
|
rhi._mainFrameBuffer = null;
|
|
571
571
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
572
572
|
platformSession.stop();
|
|
573
|
-
this.
|
|
573
|
+
this.state = exports.XRSessionState.Paused;
|
|
574
574
|
this._xrManager._onSessionStop();
|
|
575
575
|
if (!engine.isPaused) {
|
|
576
576
|
engine.pause();
|
|
577
577
|
engine.resume();
|
|
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
|
+
}
|
|
580
595
|
};
|
|
581
596
|
/**
|
|
582
597
|
* @internal
|
|
@@ -593,12 +608,11 @@ exports.XRTargetRayMode = void 0;
|
|
|
593
608
|
xrManager._platformDevice.requestSession(_this._rhi, mode, platformFeatures).then(function(platformSession) {
|
|
594
609
|
_this._mode = mode;
|
|
595
610
|
_this._platformSession = platformSession;
|
|
596
|
-
_this.
|
|
611
|
+
_this.state = exports.XRSessionState.Initialized;
|
|
597
612
|
platformSession.setSessionExitCallBack(_this._onSessionExit);
|
|
598
613
|
platformSession.addEventListener();
|
|
599
614
|
xrManager._onSessionInit();
|
|
600
615
|
resolve();
|
|
601
|
-
_this._engine.dispatch("XRSessionInit");
|
|
602
616
|
}, reject);
|
|
603
617
|
});
|
|
604
618
|
};
|
|
@@ -631,14 +645,11 @@ exports.XRTargetRayMode = void 0;
|
|
|
631
645
|
/**
|
|
632
646
|
* @internal
|
|
633
647
|
*/ _proto._exit = function _exit() {
|
|
634
|
-
var _this = this;
|
|
635
|
-
var _this1 = this, platformSession = _this1._platformSession;
|
|
648
|
+
var _this = this, platformSession = _this._platformSession;
|
|
636
649
|
if (!platformSession) {
|
|
637
650
|
return Promise.reject("Without session to stop.");
|
|
638
651
|
}
|
|
639
|
-
return platformSession.end()
|
|
640
|
-
_this._engine.dispatch("XRSessionExit");
|
|
641
|
-
});
|
|
652
|
+
return platformSession.end();
|
|
642
653
|
};
|
|
643
654
|
_proto._onSessionExit = function _onSessionExit() {
|
|
644
655
|
var _this = this, rhi = _this._rhi, platformSession = _this._platformSession, engine = _this._engine;
|
|
@@ -646,7 +657,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
646
657
|
rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
|
|
647
658
|
platformSession.removeEventListener();
|
|
648
659
|
this._platformSession = null;
|
|
649
|
-
this.
|
|
660
|
+
this.state = exports.XRSessionState.None;
|
|
650
661
|
this._xrManager._onSessionExit();
|
|
651
662
|
if (!engine.isPaused) {
|
|
652
663
|
engine.pause();
|
|
@@ -671,6 +682,15 @@ exports.XRTargetRayMode = void 0;
|
|
|
671
682
|
* Return the current session state.
|
|
672
683
|
*/ function get() {
|
|
673
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
|
+
}
|
|
674
694
|
}
|
|
675
695
|
},
|
|
676
696
|
{
|
|
@@ -720,15 +740,15 @@ exports.XRTargetRayMode = void 0;
|
|
|
720
740
|
if (this.sessionManager._platformSession) {
|
|
721
741
|
throw new Error("Cannot add feature when the session is initialized.");
|
|
722
742
|
}
|
|
723
|
-
var _this = this, features = _this._features; _this._platformDevice;
|
|
724
743
|
if (!this._platformDevice.isSupportedFeature(XRManagerExtended._featureMap.get(type))) {
|
|
725
744
|
throw new Error("The feature is not supported");
|
|
726
745
|
}
|
|
746
|
+
var features = this.features;
|
|
727
747
|
for(var i = 0, n = features.length; i < n; i++){
|
|
728
748
|
if (_instanceof(features[i], type)) throw new Error("The feature has been added");
|
|
729
749
|
}
|
|
730
750
|
var feature = _construct(type, [].concat(this, args));
|
|
731
|
-
|
|
751
|
+
features.push(feature);
|
|
732
752
|
return feature;
|
|
733
753
|
};
|
|
734
754
|
/**
|
|
@@ -736,7 +756,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
736
756
|
* @param type - The type of the feature
|
|
737
757
|
* @returns The feature which match type
|
|
738
758
|
*/ _proto.getFeature = function getFeature(type) {
|
|
739
|
-
var
|
|
759
|
+
var features = this.features;
|
|
740
760
|
for(var i = 0, n = features.length; i < n; i++){
|
|
741
761
|
var feature = features[i];
|
|
742
762
|
if (_instanceof(feature, type)) {
|
|
@@ -744,19 +764,6 @@ exports.XRTargetRayMode = void 0;
|
|
|
744
764
|
}
|
|
745
765
|
}
|
|
746
766
|
};
|
|
747
|
-
_proto.getFeatures = function getFeatures(out) {
|
|
748
|
-
var _this = this, features = _this._features;
|
|
749
|
-
var length = features.length;
|
|
750
|
-
if (out) {
|
|
751
|
-
out.length = length;
|
|
752
|
-
} else {
|
|
753
|
-
out = new Array(length);
|
|
754
|
-
}
|
|
755
|
-
for(var i = 0; i < length; i--){
|
|
756
|
-
out[i] = features[i];
|
|
757
|
-
}
|
|
758
|
-
return out;
|
|
759
|
-
};
|
|
760
767
|
/**
|
|
761
768
|
* Enter XR immersive mode, when you call this method, it will initialize and display the XR virtual world.
|
|
762
769
|
* @param sessionMode - The mode of the session
|
|
@@ -776,7 +783,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
776
783
|
// 1. Check if this xr mode is supported
|
|
777
784
|
sessionManager.isSupportedMode(sessionMode).then(function() {
|
|
778
785
|
// 2. Initialize session
|
|
779
|
-
sessionManager._initialize(sessionMode, _this.
|
|
786
|
+
sessionManager._initialize(sessionMode, _this.features).then(function() {
|
|
780
787
|
autoRun && sessionManager.run();
|
|
781
788
|
resolve();
|
|
782
789
|
}, reject);
|
|
@@ -797,7 +804,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
797
804
|
/**
|
|
798
805
|
* @internal
|
|
799
806
|
*/ _proto._initialize = function _initialize(engine, xrDevice) {
|
|
800
|
-
this.
|
|
807
|
+
this.features.length = 0;
|
|
801
808
|
this._platformDevice = xrDevice;
|
|
802
809
|
this.sessionManager = new XRSessionManager(this, engine);
|
|
803
810
|
this.inputManager = new XRInputManager(this, engine);
|
|
@@ -811,7 +818,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
811
818
|
sessionManager._onUpdate();
|
|
812
819
|
this.inputManager._onUpdate();
|
|
813
820
|
this.cameraManager._onUpdate();
|
|
814
|
-
var
|
|
821
|
+
var features = this.features;
|
|
815
822
|
for(var i = 0, n = features.length; i < n; i++){
|
|
816
823
|
var feature = features[i];
|
|
817
824
|
feature.enabled && feature._onUpdate();
|
|
@@ -851,7 +858,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
851
858
|
/**
|
|
852
859
|
* @internal
|
|
853
860
|
*/ _proto._onSessionStop = function _onSessionStop() {
|
|
854
|
-
var
|
|
861
|
+
var features = this.features;
|
|
855
862
|
for(var i = 0, n = features.length; i < n; i++){
|
|
856
863
|
var feature = features[i];
|
|
857
864
|
feature.enabled && feature._onSessionStop();
|
|
@@ -860,7 +867,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
860
867
|
/**
|
|
861
868
|
* @internal
|
|
862
869
|
*/ _proto._onSessionInit = function _onSessionInit() {
|
|
863
|
-
var
|
|
870
|
+
var features = this.features;
|
|
864
871
|
for(var i = 0, n = features.length; i < n; i++){
|
|
865
872
|
var feature = features[i];
|
|
866
873
|
feature.enabled && feature._onSessionInit();
|
|
@@ -870,7 +877,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
870
877
|
* @internal
|
|
871
878
|
*/ _proto._onSessionStart = function _onSessionStart() {
|
|
872
879
|
this.cameraManager._onSessionStart();
|
|
873
|
-
var
|
|
880
|
+
var features = this.features;
|
|
874
881
|
for(var i = 0, n = features.length; i < n; i++){
|
|
875
882
|
var feature = features[i];
|
|
876
883
|
feature.enabled && feature._onSessionStart();
|
|
@@ -880,7 +887,7 @@ exports.XRTargetRayMode = void 0;
|
|
|
880
887
|
* @internal
|
|
881
888
|
*/ _proto._onSessionExit = function _onSessionExit() {
|
|
882
889
|
this.cameraManager._onSessionExit();
|
|
883
|
-
var
|
|
890
|
+
var features = this.features;
|
|
884
891
|
for(var i = 0, n = features.length; i < n; i++){
|
|
885
892
|
var feature = features[i];
|
|
886
893
|
feature.enabled && feature._onSessionExit();
|
|
@@ -988,10 +995,75 @@ ApplyMixins(miniprogram.XRManager, [
|
|
|
988
995
|
}();
|
|
989
996
|
|
|
990
997
|
/**
|
|
991
|
-
*
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
998
|
+
* Enum for the types of hit test that can be performed.
|
|
999
|
+
* Note: currently only supports plane.
|
|
1000
|
+
*/ exports.TrackableType = void 0;
|
|
1001
|
+
(function(TrackableType) {
|
|
1002
|
+
TrackableType[TrackableType[/** Tracked plane. */ "Plane"] = 0x1] = "Plane";
|
|
1003
|
+
TrackableType[TrackableType[/** All tracked objects. */ "All"] = 0x1] = "All";
|
|
1004
|
+
})(exports.TrackableType || (exports.TrackableType = {}));
|
|
1005
|
+
|
|
1006
|
+
/**
|
|
1007
|
+
* XR hit result.
|
|
1008
|
+
* It is the detection result returned by using XR HitTest feature.
|
|
1009
|
+
*/ var XRHitResult = function XRHitResult() {
|
|
1010
|
+
/** The position of the hit point. */ this.point = new miniprogram.Vector3();
|
|
1011
|
+
/** The normal of the hit point. */ this.normal = new miniprogram.Vector3();
|
|
1012
|
+
};
|
|
1013
|
+
|
|
1014
|
+
/******************************************************************************
|
|
1015
|
+
Copyright (c) Microsoft Corporation.
|
|
1016
|
+
|
|
1017
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
1018
|
+
purpose with or without fee is hereby granted.
|
|
1019
|
+
|
|
1020
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1021
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1022
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1023
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1024
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1025
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1026
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
1027
|
+
***************************************************************************** */
|
|
1028
|
+
|
|
1029
|
+
function __decorate(decorators, target, key, desc) {
|
|
1030
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1031
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1032
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1033
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1034
|
+
}
|
|
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
|
+
|
|
1064
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1065
|
+
var e = new Error(message);
|
|
1066
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
995
1067
|
};
|
|
996
1068
|
|
|
997
1069
|
exports.XRFeatureType = void 0;
|
|
@@ -1147,50 +1219,6 @@ exports.XRRequestTrackingState = void 0;
|
|
|
1147
1219
|
XRTrackableFeature._uuid = 0;
|
|
1148
1220
|
})();
|
|
1149
1221
|
|
|
1150
|
-
/**
|
|
1151
|
-
* Enum for the types of hit test that can be performed.
|
|
1152
|
-
* Note: currently only supports plane.
|
|
1153
|
-
*/ exports.TrackableType = void 0;
|
|
1154
|
-
(function(TrackableType) {
|
|
1155
|
-
TrackableType[TrackableType[/** Tracked plane. */ "Plane"] = 0x1] = "Plane";
|
|
1156
|
-
TrackableType[TrackableType[/** All tracked objects. */ "All"] = 0x1] = "All";
|
|
1157
|
-
})(exports.TrackableType || (exports.TrackableType = {}));
|
|
1158
|
-
|
|
1159
|
-
/**
|
|
1160
|
-
* XR hit result.
|
|
1161
|
-
* It is the detection result returned by using XR HitTest feature.
|
|
1162
|
-
*/ var XRHitResult = function XRHitResult() {
|
|
1163
|
-
/** The position of the hit point. */ this.point = new miniprogram.Vector3();
|
|
1164
|
-
/** The normal of the hit point. */ this.normal = new miniprogram.Vector3();
|
|
1165
|
-
};
|
|
1166
|
-
|
|
1167
|
-
/******************************************************************************
|
|
1168
|
-
Copyright (c) Microsoft Corporation.
|
|
1169
|
-
|
|
1170
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
1171
|
-
purpose with or without fee is hereby granted.
|
|
1172
|
-
|
|
1173
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
1174
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
1175
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
1176
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
1177
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
1178
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
1179
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
1180
|
-
***************************************************************************** */
|
|
1181
|
-
|
|
1182
|
-
function __decorate(decorators, target, key, desc) {
|
|
1183
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1184
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1185
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1186
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1187
|
-
}
|
|
1188
|
-
|
|
1189
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
1190
|
-
var e = new Error(message);
|
|
1191
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
1192
|
-
};
|
|
1193
|
-
|
|
1194
1222
|
/**
|
|
1195
1223
|
* Enumerates modes of plane in XR.
|
|
1196
1224
|
*/ exports.XRPlaneMode = void 0;
|
|
@@ -1221,6 +1249,13 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
1221
1249
|
return XRRequestPlane;
|
|
1222
1250
|
}(XRRequestTracking);
|
|
1223
1251
|
|
|
1252
|
+
/**
|
|
1253
|
+
* The base class of XR tracked object.
|
|
1254
|
+
*/ var XRTracked = function XRTracked() {
|
|
1255
|
+
/** The pose of the trackable in XR space. */ this.pose = new XRPose();
|
|
1256
|
+
/** The tracking state of the trackable. */ this.state = exports.XRTrackingState.NotTracking;
|
|
1257
|
+
};
|
|
1258
|
+
|
|
1224
1259
|
/**
|
|
1225
1260
|
* The tracked plane in XR space.
|
|
1226
1261
|
*/ var XRTrackedPlane = /*#__PURE__*/ function(XRTracked1) {
|
|
@@ -1568,6 +1603,260 @@ exports.XRImageTracking = __decorate([
|
|
|
1568
1603
|
this.physicalWidth = physicalWidth;
|
|
1569
1604
|
};
|
|
1570
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
|
+
|
|
1571
1860
|
exports.XRAnchor = XRAnchor;
|
|
1572
1861
|
exports.XRCamera = XRCamera;
|
|
1573
1862
|
exports.XRCameraManager = XRCameraManager;
|
|
@@ -1578,7 +1867,5 @@ exports.XRInputManager = XRInputManager;
|
|
|
1578
1867
|
exports.XRPose = XRPose;
|
|
1579
1868
|
exports.XRReferenceImage = XRReferenceImage;
|
|
1580
1869
|
exports.XRSessionManager = XRSessionManager;
|
|
1581
|
-
exports.XRTrackableFeature = XRTrackableFeature;
|
|
1582
|
-
exports.XRTracked = XRTracked;
|
|
1583
1870
|
exports.XRTrackedImage = XRTrackedImage;
|
|
1584
1871
|
exports.XRTrackedPlane = XRTrackedPlane;
|