@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/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 _this = this, frame = _this._platformFrame;
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 _frame_getPose = frame.getPose(gripSpace, referenceSpace), transform = _frame_getPose.transform, emulatedPosition = _frame_getPose.emulatedPosition;
2908
- if (transform) {
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 _frame_getPose1 = frame.getPose(targetRaySpace, referenceSpace), transform1 = _frame_getPose1.transform, emulatedPosition1 = _frame_getPose1.emulatedPosition;
2918
- if (transform1) {
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 _this = this, frame = _this._platformFrame;
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 || !!!rhi.isWebGL2) {
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 transform = frame.getPose(trackingResult.imageSpace, space).transform;
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, xrPlane = trackedPlane.xrPlane;
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;