@galacean/engine-xr-webxr 2.0.0-alpha.49 → 2.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +29 -18
- 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 +24 -13
- package/dist/main.js.map +1 -1
- package/dist/module.js +24 -13
- package/dist/module.js.map +1 -1
- package/package.json +4 -4
- package/types/Util.d.ts +1 -1
- package/types/WebXRDevice.d.ts +1 -1
- package/types/WebXRFrame.d.ts +1 -1
- package/types/WebXRSession.d.ts +4 -4
package/dist/main.js
CHANGED
|
@@ -1121,6 +1121,7 @@ new Vector3();
|
|
|
1121
1121
|
* Calculate the inverse of the specified matrix.
|
|
1122
1122
|
* @param a - The matrix whose inverse is to be calculated
|
|
1123
1123
|
* @param out - The inverse of the specified matrix
|
|
1124
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
1124
1125
|
*/ Matrix3x3.invert = function invert(a, out) {
|
|
1125
1126
|
var ae = a.elements;
|
|
1126
1127
|
var oe = out.elements;
|
|
@@ -2590,6 +2591,7 @@ new Vector3();
|
|
|
2590
2591
|
* Calculate the inverse of the specified matrix.
|
|
2591
2592
|
* @param a - The matrix whose inverse is to be calculated
|
|
2592
2593
|
* @param out - The inverse of the specified matrix
|
|
2594
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
2593
2595
|
*/ Matrix.invert = function invert(a, out) {
|
|
2594
2596
|
var ae = a.elements;
|
|
2595
2597
|
var oe = out.elements;
|
|
@@ -2896,7 +2898,7 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2896
2898
|
this._updateCamera(inputs);
|
|
2897
2899
|
};
|
|
2898
2900
|
_proto._updateController = function _updateController(inputs) {
|
|
2899
|
-
var
|
|
2901
|
+
var frame = this._platformFrame;
|
|
2900
2902
|
var _this__session = this._session, session = _this__session._platformSession, referenceSpace = _this__session._platformReferenceSpace;
|
|
2901
2903
|
var inputSources = session.inputSources;
|
|
2902
2904
|
for(var i = 0, n = inputSources.length; i < n; i++){
|
|
@@ -2908,31 +2910,33 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2908
2910
|
case "tracked-pointer":
|
|
2909
2911
|
var gripSpace = inputSource.gripSpace, targetRaySpace = inputSource.targetRaySpace;
|
|
2910
2912
|
if (gripSpace) {
|
|
2911
|
-
var
|
|
2912
|
-
if (
|
|
2913
|
+
var pose = frame.getPose(gripSpace, referenceSpace);
|
|
2914
|
+
if (pose) {
|
|
2915
|
+
var transform = pose.transform;
|
|
2913
2916
|
var gripPose = input.gripPose;
|
|
2914
2917
|
gripPose.matrix.copyFromArray(transform.matrix);
|
|
2915
2918
|
gripPose.position.copyFrom(transform.position);
|
|
2916
2919
|
gripPose.rotation.copyFrom(transform.orientation);
|
|
2917
2920
|
}
|
|
2918
|
-
input.trackingState = emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2921
|
+
input.trackingState = !pose || pose.emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2919
2922
|
}
|
|
2920
2923
|
if (targetRaySpace) {
|
|
2921
|
-
var
|
|
2922
|
-
if (
|
|
2924
|
+
var pose1 = frame.getPose(targetRaySpace, referenceSpace);
|
|
2925
|
+
if (pose1) {
|
|
2926
|
+
var transform1 = pose1.transform;
|
|
2923
2927
|
var targetRayPose = input.targetRayPose;
|
|
2924
2928
|
targetRayPose.matrix.copyFromArray(transform1.matrix);
|
|
2925
2929
|
targetRayPose.position.copyFrom(transform1.position);
|
|
2926
2930
|
targetRayPose.rotation.copyFrom(transform1.orientation);
|
|
2927
|
-
input.trackingState = emulatedPosition1 ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2928
2931
|
}
|
|
2932
|
+
input.trackingState = !pose1 || pose1.emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2929
2933
|
}
|
|
2930
2934
|
break;
|
|
2931
2935
|
}
|
|
2932
2936
|
}
|
|
2933
2937
|
};
|
|
2934
2938
|
_proto._updateCamera = function _updateCamera(inputs) {
|
|
2935
|
-
var
|
|
2939
|
+
var frame = this._platformFrame;
|
|
2936
2940
|
var _this__session = this._session, referenceSpace = _this__session._platformReferenceSpace, layer = _this__session._platformLayer, framebufferWidth = _this__session.framebufferWidth, framebufferHeight = _this__session.framebufferHeight;
|
|
2937
2941
|
var viewerPose = frame.getViewerPose(referenceSpace);
|
|
2938
2942
|
if (viewerPose) {
|
|
@@ -3207,6 +3211,8 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3207
3211
|
case engineXr.XRFeatureType.ImageTracking:
|
|
3208
3212
|
// @ts-ignore
|
|
3209
3213
|
return typeof XRImageTrackingResult !== "undefined";
|
|
3214
|
+
default:
|
|
3215
|
+
return false;
|
|
3210
3216
|
}
|
|
3211
3217
|
};
|
|
3212
3218
|
_proto.createPlatformFeature = function createPlatformFeature(type) {
|
|
@@ -3236,11 +3242,12 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3236
3242
|
var attributes = gl.getContextAttributes();
|
|
3237
3243
|
if (!attributes) {
|
|
3238
3244
|
reject(Error("GetContextAttributes Error!"));
|
|
3245
|
+
return;
|
|
3239
3246
|
}
|
|
3240
3247
|
gl.makeXRCompatible().then(function() {
|
|
3241
3248
|
var scaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor(session);
|
|
3242
3249
|
var layer;
|
|
3243
|
-
if (session.renderState.layers === undefined ||
|
|
3250
|
+
if (session.renderState.layers === undefined || !rhi.isWebGL2) {
|
|
3244
3251
|
var layerInit = {
|
|
3245
3252
|
antialias: session.renderState.layers === undefined ? attributes.antialias : true,
|
|
3246
3253
|
alpha: true,
|
|
@@ -3398,6 +3405,7 @@ var WebXRAnchorTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3398
3405
|
_proto._updateTrackedAnchor = function _updateTrackedAnchor(frame, space, requestTracking) {
|
|
3399
3406
|
var xrAnchor = requestTracking.xrAnchor;
|
|
3400
3407
|
var xrPose = frame.getPose(xrAnchor.anchorSpace, space);
|
|
3408
|
+
if (!xrPose) return true;
|
|
3401
3409
|
var transform = xrPose.transform;
|
|
3402
3410
|
var pose = requestTracking.tracked[0].pose;
|
|
3403
3411
|
pose.matrix.copyFromArray(transform.matrix);
|
|
@@ -3457,8 +3465,7 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3457
3465
|
tracked.referenceImage = requestTrackingImage.image;
|
|
3458
3466
|
}
|
|
3459
3467
|
if (trackingResult.trackingState === "tracked") {
|
|
3460
|
-
this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult);
|
|
3461
|
-
tracked.state = engineXr.XRTrackingState.Tracking;
|
|
3468
|
+
tracked.state = this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult) ? engineXr.XRTrackingState.Tracking : engineXr.XRTrackingState.TrackingLost;
|
|
3462
3469
|
} else {
|
|
3463
3470
|
tracked.state = engineXr.XRTrackingState.TrackingLost;
|
|
3464
3471
|
}
|
|
@@ -3529,11 +3536,14 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3529
3536
|
};
|
|
3530
3537
|
_proto._updateTrackedImage = function _updateTrackedImage(frame, space, trackedImage, trackingResult) {
|
|
3531
3538
|
var pose = trackedImage.pose;
|
|
3532
|
-
var
|
|
3539
|
+
var xrPose = frame.getPose(trackingResult.imageSpace, space);
|
|
3540
|
+
if (!xrPose) return false;
|
|
3541
|
+
var transform = xrPose.transform;
|
|
3533
3542
|
pose.matrix.copyFromArray(transform.matrix);
|
|
3534
3543
|
pose.rotation.copyFrom(transform.orientation);
|
|
3535
3544
|
pose.position.copyFrom(transform.position);
|
|
3536
3545
|
trackedImage.measuredPhysicalWidth = trackingResult.measuredWidthInMeters;
|
|
3546
|
+
return true;
|
|
3537
3547
|
};
|
|
3538
3548
|
return WebXRImageTracking;
|
|
3539
3549
|
}(WebXRTrackableFeature);
|
|
@@ -3593,7 +3603,8 @@ var WebXRPlaneTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3593
3603
|
options.optionalFeatures.push("plane-detection");
|
|
3594
3604
|
};
|
|
3595
3605
|
_proto._updatePlane = function _updatePlane(frame, space, trackedPlane) {
|
|
3596
|
-
var pose = trackedPlane.pose, polygon = trackedPlane.polygon
|
|
3606
|
+
var pose = trackedPlane.pose, polygon = trackedPlane.polygon;
|
|
3607
|
+
var xrPlane = trackedPlane.xrPlane;
|
|
3597
3608
|
var planePose = frame.getPose(xrPlane.planeSpace, space);
|
|
3598
3609
|
if (!planePose) return;
|
|
3599
3610
|
var transform = planePose.transform, emulatedPosition = planePose.emulatedPosition;
|