@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/module.js
CHANGED
|
@@ -1117,6 +1117,7 @@ new Vector3();
|
|
|
1117
1117
|
* Calculate the inverse of the specified matrix.
|
|
1118
1118
|
* @param a - The matrix whose inverse is to be calculated
|
|
1119
1119
|
* @param out - The inverse of the specified matrix
|
|
1120
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
1120
1121
|
*/ Matrix3x3.invert = function invert(a, out) {
|
|
1121
1122
|
var ae = a.elements;
|
|
1122
1123
|
var oe = out.elements;
|
|
@@ -2586,6 +2587,7 @@ new Vector3();
|
|
|
2586
2587
|
* Calculate the inverse of the specified matrix.
|
|
2587
2588
|
* @param a - The matrix whose inverse is to be calculated
|
|
2588
2589
|
* @param out - The inverse of the specified matrix
|
|
2590
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
2589
2591
|
*/ Matrix.invert = function invert(a, out) {
|
|
2590
2592
|
var ae = a.elements;
|
|
2591
2593
|
var oe = out.elements;
|
|
@@ -2892,7 +2894,7 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2892
2894
|
this._updateCamera(inputs);
|
|
2893
2895
|
};
|
|
2894
2896
|
_proto._updateController = function _updateController(inputs) {
|
|
2895
|
-
var
|
|
2897
|
+
var frame = this._platformFrame;
|
|
2896
2898
|
var _this__session = this._session, session = _this__session._platformSession, referenceSpace = _this__session._platformReferenceSpace;
|
|
2897
2899
|
var inputSources = session.inputSources;
|
|
2898
2900
|
for(var i = 0, n = inputSources.length; i < n; i++){
|
|
@@ -2904,31 +2906,33 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2904
2906
|
case "tracked-pointer":
|
|
2905
2907
|
var gripSpace = inputSource.gripSpace, targetRaySpace = inputSource.targetRaySpace;
|
|
2906
2908
|
if (gripSpace) {
|
|
2907
|
-
var
|
|
2908
|
-
if (
|
|
2909
|
+
var pose = frame.getPose(gripSpace, referenceSpace);
|
|
2910
|
+
if (pose) {
|
|
2911
|
+
var transform = pose.transform;
|
|
2909
2912
|
var gripPose = input.gripPose;
|
|
2910
2913
|
gripPose.matrix.copyFromArray(transform.matrix);
|
|
2911
2914
|
gripPose.position.copyFrom(transform.position);
|
|
2912
2915
|
gripPose.rotation.copyFrom(transform.orientation);
|
|
2913
2916
|
}
|
|
2914
|
-
input.trackingState = emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;
|
|
2917
|
+
input.trackingState = !pose || pose.emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;
|
|
2915
2918
|
}
|
|
2916
2919
|
if (targetRaySpace) {
|
|
2917
|
-
var
|
|
2918
|
-
if (
|
|
2920
|
+
var pose1 = frame.getPose(targetRaySpace, referenceSpace);
|
|
2921
|
+
if (pose1) {
|
|
2922
|
+
var transform1 = pose1.transform;
|
|
2919
2923
|
var targetRayPose = input.targetRayPose;
|
|
2920
2924
|
targetRayPose.matrix.copyFromArray(transform1.matrix);
|
|
2921
2925
|
targetRayPose.position.copyFrom(transform1.position);
|
|
2922
2926
|
targetRayPose.rotation.copyFrom(transform1.orientation);
|
|
2923
|
-
input.trackingState = emulatedPosition1 ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;
|
|
2924
2927
|
}
|
|
2928
|
+
input.trackingState = !pose1 || pose1.emulatedPosition ? XRTrackingState.TrackingLost : XRTrackingState.Tracking;
|
|
2925
2929
|
}
|
|
2926
2930
|
break;
|
|
2927
2931
|
}
|
|
2928
2932
|
}
|
|
2929
2933
|
};
|
|
2930
2934
|
_proto._updateCamera = function _updateCamera(inputs) {
|
|
2931
|
-
var
|
|
2935
|
+
var frame = this._platformFrame;
|
|
2932
2936
|
var _this__session = this._session, referenceSpace = _this__session._platformReferenceSpace, layer = _this__session._platformLayer, framebufferWidth = _this__session.framebufferWidth, framebufferHeight = _this__session.framebufferHeight;
|
|
2933
2937
|
var viewerPose = frame.getViewerPose(referenceSpace);
|
|
2934
2938
|
if (viewerPose) {
|
|
@@ -3203,6 +3207,8 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3203
3207
|
case XRFeatureType.ImageTracking:
|
|
3204
3208
|
// @ts-ignore
|
|
3205
3209
|
return typeof XRImageTrackingResult !== "undefined";
|
|
3210
|
+
default:
|
|
3211
|
+
return false;
|
|
3206
3212
|
}
|
|
3207
3213
|
};
|
|
3208
3214
|
_proto.createPlatformFeature = function createPlatformFeature(type) {
|
|
@@ -3232,11 +3238,12 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3232
3238
|
var attributes = gl.getContextAttributes();
|
|
3233
3239
|
if (!attributes) {
|
|
3234
3240
|
reject(Error("GetContextAttributes Error!"));
|
|
3241
|
+
return;
|
|
3235
3242
|
}
|
|
3236
3243
|
gl.makeXRCompatible().then(function() {
|
|
3237
3244
|
var scaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor(session);
|
|
3238
3245
|
var layer;
|
|
3239
|
-
if (session.renderState.layers === undefined ||
|
|
3246
|
+
if (session.renderState.layers === undefined || !rhi.isWebGL2) {
|
|
3240
3247
|
var layerInit = {
|
|
3241
3248
|
antialias: session.renderState.layers === undefined ? attributes.antialias : true,
|
|
3242
3249
|
alpha: true,
|
|
@@ -3394,6 +3401,7 @@ var WebXRAnchorTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3394
3401
|
_proto._updateTrackedAnchor = function _updateTrackedAnchor(frame, space, requestTracking) {
|
|
3395
3402
|
var xrAnchor = requestTracking.xrAnchor;
|
|
3396
3403
|
var xrPose = frame.getPose(xrAnchor.anchorSpace, space);
|
|
3404
|
+
if (!xrPose) return true;
|
|
3397
3405
|
var transform = xrPose.transform;
|
|
3398
3406
|
var pose = requestTracking.tracked[0].pose;
|
|
3399
3407
|
pose.matrix.copyFromArray(transform.matrix);
|
|
@@ -3453,8 +3461,7 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3453
3461
|
tracked.referenceImage = requestTrackingImage.image;
|
|
3454
3462
|
}
|
|
3455
3463
|
if (trackingResult.trackingState === "tracked") {
|
|
3456
|
-
this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult);
|
|
3457
|
-
tracked.state = XRTrackingState.Tracking;
|
|
3464
|
+
tracked.state = this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult) ? XRTrackingState.Tracking : XRTrackingState.TrackingLost;
|
|
3458
3465
|
} else {
|
|
3459
3466
|
tracked.state = XRTrackingState.TrackingLost;
|
|
3460
3467
|
}
|
|
@@ -3525,11 +3532,14 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3525
3532
|
};
|
|
3526
3533
|
_proto._updateTrackedImage = function _updateTrackedImage(frame, space, trackedImage, trackingResult) {
|
|
3527
3534
|
var pose = trackedImage.pose;
|
|
3528
|
-
var
|
|
3535
|
+
var xrPose = frame.getPose(trackingResult.imageSpace, space);
|
|
3536
|
+
if (!xrPose) return false;
|
|
3537
|
+
var transform = xrPose.transform;
|
|
3529
3538
|
pose.matrix.copyFromArray(transform.matrix);
|
|
3530
3539
|
pose.rotation.copyFrom(transform.orientation);
|
|
3531
3540
|
pose.position.copyFrom(transform.position);
|
|
3532
3541
|
trackedImage.measuredPhysicalWidth = trackingResult.measuredWidthInMeters;
|
|
3542
|
+
return true;
|
|
3533
3543
|
};
|
|
3534
3544
|
return WebXRImageTracking;
|
|
3535
3545
|
}(WebXRTrackableFeature);
|
|
@@ -3589,7 +3599,8 @@ var WebXRPlaneTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3589
3599
|
options.optionalFeatures.push("plane-detection");
|
|
3590
3600
|
};
|
|
3591
3601
|
_proto._updatePlane = function _updatePlane(frame, space, trackedPlane) {
|
|
3592
|
-
var pose = trackedPlane.pose, polygon = trackedPlane.polygon
|
|
3602
|
+
var pose = trackedPlane.pose, polygon = trackedPlane.polygon;
|
|
3603
|
+
var xrPlane = trackedPlane.xrPlane;
|
|
3593
3604
|
var planePose = frame.getPose(xrPlane.planeSpace, space);
|
|
3594
3605
|
if (!planePose) return;
|
|
3595
3606
|
var transform = planePose.transform, emulatedPosition = planePose.emulatedPosition;
|