@galacean/engine-xr-webxr 2.0.0-alpha.5 → 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 +81 -106
- 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 +30 -18
- package/dist/main.js.map +1 -1
- package/dist/module.js +30 -18
- package/dist/module.js.map +1 -1
- package/package.json +7 -5
- package/types/Util.d.ts +1 -1
- package/types/WebXRDevice.d.ts +3 -1
- package/types/WebXRFrame.d.ts +2 -0
- package/types/WebXRSession.d.ts +11 -3
- package/types/feature/WebXRAnchorTracking.d.ts +4 -0
- package/types/feature/WebXRFeature.d.ts +8 -1
- package/types/feature/WebXRImageTracking.d.ts +4 -0
- package/types/feature/WebXRPlaneTracking.d.ts +4 -0
- package/types/feature/WebXRTrackableFeature.d.ts +14 -1
- package/types/index.d.ts +1 -0
package/dist/main.js
CHANGED
|
@@ -582,13 +582,16 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
582
582
|
* Converts the vector into a unit vector.
|
|
583
583
|
* @param a - The vector to normalize
|
|
584
584
|
* @param out - The normalized vector
|
|
585
|
+
* @returns True if the vector has a unit form, otherwise false and `out` is left untouched
|
|
585
586
|
*/ Vector3.normalize = function normalize(a, out) {
|
|
586
587
|
var _x = a._x, _y = a._y, _z = a._z;
|
|
587
588
|
var len = Math.sqrt(_x * _x + _y * _y + _z * _z);
|
|
588
|
-
if (len > MathUtil.zeroTolerance) {
|
|
589
|
-
|
|
590
|
-
out.set(_x *
|
|
589
|
+
if (len > MathUtil.zeroTolerance && Number.isFinite(len)) {
|
|
590
|
+
var inv = 1 / len;
|
|
591
|
+
out.set(_x * inv, _y * inv, _z * inv);
|
|
592
|
+
return true;
|
|
591
593
|
}
|
|
594
|
+
return false;
|
|
592
595
|
};
|
|
593
596
|
/**
|
|
594
597
|
* Scale a vector by the given value.
|
|
@@ -734,8 +737,6 @@ new Vector3();
|
|
|
734
737
|
new Vector3();
|
|
735
738
|
new Vector3();
|
|
736
739
|
new Vector3();
|
|
737
|
-
new Vector3();
|
|
738
|
-
new Vector3();
|
|
739
740
|
/**
|
|
740
741
|
* Represents a 3x3 mathematical matrix.
|
|
741
742
|
*/ var Matrix3x3 = /*#__PURE__*/ function() {
|
|
@@ -1120,6 +1121,7 @@ new Vector3();
|
|
|
1120
1121
|
* Calculate the inverse of the specified matrix.
|
|
1121
1122
|
* @param a - The matrix whose inverse is to be calculated
|
|
1122
1123
|
* @param out - The inverse of the specified matrix
|
|
1124
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
1123
1125
|
*/ Matrix3x3.invert = function invert(a, out) {
|
|
1124
1126
|
var ae = a.elements;
|
|
1125
1127
|
var oe = out.elements;
|
|
@@ -2589,6 +2591,7 @@ new Vector3();
|
|
|
2589
2591
|
* Calculate the inverse of the specified matrix.
|
|
2590
2592
|
* @param a - The matrix whose inverse is to be calculated
|
|
2591
2593
|
* @param out - The inverse of the specified matrix
|
|
2594
|
+
* @returns Null if the matrix is singular; otherwise undefined
|
|
2592
2595
|
*/ Matrix.invert = function invert(a, out) {
|
|
2593
2596
|
var ae = a.elements;
|
|
2594
2597
|
var oe = out.elements;
|
|
@@ -2895,7 +2898,7 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2895
2898
|
this._updateCamera(inputs);
|
|
2896
2899
|
};
|
|
2897
2900
|
_proto._updateController = function _updateController(inputs) {
|
|
2898
|
-
var
|
|
2901
|
+
var frame = this._platformFrame;
|
|
2899
2902
|
var _this__session = this._session, session = _this__session._platformSession, referenceSpace = _this__session._platformReferenceSpace;
|
|
2900
2903
|
var inputSources = session.inputSources;
|
|
2901
2904
|
for(var i = 0, n = inputSources.length; i < n; i++){
|
|
@@ -2907,31 +2910,33 @@ var WebXRFrame = /*#__PURE__*/ function() {
|
|
|
2907
2910
|
case "tracked-pointer":
|
|
2908
2911
|
var gripSpace = inputSource.gripSpace, targetRaySpace = inputSource.targetRaySpace;
|
|
2909
2912
|
if (gripSpace) {
|
|
2910
|
-
var
|
|
2911
|
-
if (
|
|
2913
|
+
var pose = frame.getPose(gripSpace, referenceSpace);
|
|
2914
|
+
if (pose) {
|
|
2915
|
+
var transform = pose.transform;
|
|
2912
2916
|
var gripPose = input.gripPose;
|
|
2913
2917
|
gripPose.matrix.copyFromArray(transform.matrix);
|
|
2914
2918
|
gripPose.position.copyFrom(transform.position);
|
|
2915
2919
|
gripPose.rotation.copyFrom(transform.orientation);
|
|
2916
2920
|
}
|
|
2917
|
-
input.trackingState = emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2921
|
+
input.trackingState = !pose || pose.emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2918
2922
|
}
|
|
2919
2923
|
if (targetRaySpace) {
|
|
2920
|
-
var
|
|
2921
|
-
if (
|
|
2924
|
+
var pose1 = frame.getPose(targetRaySpace, referenceSpace);
|
|
2925
|
+
if (pose1) {
|
|
2926
|
+
var transform1 = pose1.transform;
|
|
2922
2927
|
var targetRayPose = input.targetRayPose;
|
|
2923
2928
|
targetRayPose.matrix.copyFromArray(transform1.matrix);
|
|
2924
2929
|
targetRayPose.position.copyFrom(transform1.position);
|
|
2925
2930
|
targetRayPose.rotation.copyFrom(transform1.orientation);
|
|
2926
|
-
input.trackingState = emulatedPosition1 ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2927
2931
|
}
|
|
2932
|
+
input.trackingState = !pose1 || pose1.emulatedPosition ? engineXr.XRTrackingState.TrackingLost : engineXr.XRTrackingState.Tracking;
|
|
2928
2933
|
}
|
|
2929
2934
|
break;
|
|
2930
2935
|
}
|
|
2931
2936
|
}
|
|
2932
2937
|
};
|
|
2933
2938
|
_proto._updateCamera = function _updateCamera(inputs) {
|
|
2934
|
-
var
|
|
2939
|
+
var frame = this._platformFrame;
|
|
2935
2940
|
var _this__session = this._session, referenceSpace = _this__session._platformReferenceSpace, layer = _this__session._platformLayer, framebufferWidth = _this__session.framebufferWidth, framebufferHeight = _this__session.framebufferHeight;
|
|
2936
2941
|
var viewerPose = frame.getViewerPose(referenceSpace);
|
|
2937
2942
|
if (viewerPose) {
|
|
@@ -3206,6 +3211,8 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3206
3211
|
case engineXr.XRFeatureType.ImageTracking:
|
|
3207
3212
|
// @ts-ignore
|
|
3208
3213
|
return typeof XRImageTrackingResult !== "undefined";
|
|
3214
|
+
default:
|
|
3215
|
+
return false;
|
|
3209
3216
|
}
|
|
3210
3217
|
};
|
|
3211
3218
|
_proto.createPlatformFeature = function createPlatformFeature(type) {
|
|
@@ -3235,11 +3242,12 @@ var WebXRDevice = /*#__PURE__*/ function() {
|
|
|
3235
3242
|
var attributes = gl.getContextAttributes();
|
|
3236
3243
|
if (!attributes) {
|
|
3237
3244
|
reject(Error("GetContextAttributes Error!"));
|
|
3245
|
+
return;
|
|
3238
3246
|
}
|
|
3239
3247
|
gl.makeXRCompatible().then(function() {
|
|
3240
3248
|
var scaleFactor = XRWebGLLayer.getNativeFramebufferScaleFactor(session);
|
|
3241
3249
|
var layer;
|
|
3242
|
-
if (session.renderState.layers === undefined ||
|
|
3250
|
+
if (session.renderState.layers === undefined || !rhi.isWebGL2) {
|
|
3243
3251
|
var layerInit = {
|
|
3244
3252
|
antialias: session.renderState.layers === undefined ? attributes.antialias : true,
|
|
3245
3253
|
alpha: true,
|
|
@@ -3397,6 +3405,7 @@ var WebXRAnchorTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3397
3405
|
_proto._updateTrackedAnchor = function _updateTrackedAnchor(frame, space, requestTracking) {
|
|
3398
3406
|
var xrAnchor = requestTracking.xrAnchor;
|
|
3399
3407
|
var xrPose = frame.getPose(xrAnchor.anchorSpace, space);
|
|
3408
|
+
if (!xrPose) return true;
|
|
3400
3409
|
var transform = xrPose.transform;
|
|
3401
3410
|
var pose = requestTracking.tracked[0].pose;
|
|
3402
3411
|
pose.matrix.copyFromArray(transform.matrix);
|
|
@@ -3456,8 +3465,7 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3456
3465
|
tracked.referenceImage = requestTrackingImage.image;
|
|
3457
3466
|
}
|
|
3458
3467
|
if (trackingResult.trackingState === "tracked") {
|
|
3459
|
-
this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult);
|
|
3460
|
-
tracked.state = engineXr.XRTrackingState.Tracking;
|
|
3468
|
+
tracked.state = this._updateTrackedImage(platformFrame, platformReferenceSpace, tracked, trackingResult) ? engineXr.XRTrackingState.Tracking : engineXr.XRTrackingState.TrackingLost;
|
|
3461
3469
|
} else {
|
|
3462
3470
|
tracked.state = engineXr.XRTrackingState.TrackingLost;
|
|
3463
3471
|
}
|
|
@@ -3528,11 +3536,14 @@ var WebXRImageTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3528
3536
|
};
|
|
3529
3537
|
_proto._updateTrackedImage = function _updateTrackedImage(frame, space, trackedImage, trackingResult) {
|
|
3530
3538
|
var pose = trackedImage.pose;
|
|
3531
|
-
var
|
|
3539
|
+
var xrPose = frame.getPose(trackingResult.imageSpace, space);
|
|
3540
|
+
if (!xrPose) return false;
|
|
3541
|
+
var transform = xrPose.transform;
|
|
3532
3542
|
pose.matrix.copyFromArray(transform.matrix);
|
|
3533
3543
|
pose.rotation.copyFrom(transform.orientation);
|
|
3534
3544
|
pose.position.copyFrom(transform.position);
|
|
3535
3545
|
trackedImage.measuredPhysicalWidth = trackingResult.measuredWidthInMeters;
|
|
3546
|
+
return true;
|
|
3536
3547
|
};
|
|
3537
3548
|
return WebXRImageTracking;
|
|
3538
3549
|
}(WebXRTrackableFeature);
|
|
@@ -3592,7 +3603,8 @@ var WebXRPlaneTracking = /*#__PURE__*/ function(WebXRTrackableFeature) {
|
|
|
3592
3603
|
options.optionalFeatures.push("plane-detection");
|
|
3593
3604
|
};
|
|
3594
3605
|
_proto._updatePlane = function _updatePlane(frame, space, trackedPlane) {
|
|
3595
|
-
var pose = trackedPlane.pose, polygon = trackedPlane.polygon
|
|
3606
|
+
var pose = trackedPlane.pose, polygon = trackedPlane.polygon;
|
|
3607
|
+
var xrPlane = trackedPlane.xrPlane;
|
|
3596
3608
|
var planePose = frame.getPose(xrPlane.planeSpace, space);
|
|
3597
3609
|
if (!planePose) return;
|
|
3598
3610
|
var transform = planePose.transform, emulatedPosition = planePose.emulatedPosition;
|