Bläddra i källkod

only rotate in left handed systems

Raanan Weber 5 år sedan
förälder
incheckning
d2e6e4f2d7

+ 3 - 1
src/XR/motionController/webXRHTCViveMotionController.ts

@@ -80,7 +80,9 @@ export class WebXRHTCViveMotionController extends WebXRAbstractMotionController
         meshes.forEach((mesh) => { mesh.isPickable = false; });
         meshes.forEach((mesh) => { mesh.isPickable = false; });
         this._modelRootNode = meshes[1];
         this._modelRootNode = meshes[1];
         this._modelRootNode.parent = this.rootMesh;
         this._modelRootNode.parent = this.rootMesh;
-        this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        if (!this.scene.useRightHandedSystem) {
+            this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        }
     }
     }
 
 
     protected _updateModel(): void {
     protected _updateModel(): void {

+ 3 - 1
src/XR/motionController/webXRMicrosoftMixedRealityController.ts

@@ -213,7 +213,9 @@ export class WebXRMicrosoftMixedRealityController extends WebXRAbstractMotionCon
             rootMesh.setParent(this.rootMesh);
             rootMesh.setParent(this.rootMesh);
         }
         }
 
 
-        this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        if (!this.scene.useRightHandedSystem) {
+            this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        }
     }
     }
 
 
     protected _updateModel(): void {
     protected _updateModel(): void {

+ 3 - 1
src/XR/motionController/webXROculusTouchMotionController.ts

@@ -119,7 +119,9 @@ export class WebXROculusTouchMotionController extends WebXRAbstractMotionControl
 
 
     protected _setRootMesh(meshes: AbstractMesh[]): void {
     protected _setRootMesh(meshes: AbstractMesh[]): void {
         this.rootMesh = new Mesh(this.profileId + " " + this.handedness, this.scene);
         this.rootMesh = new Mesh(this.profileId + " " + this.handedness, this.scene);
-        this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        if (!this.scene.useRightHandedSystem) {
+            this.rootMesh.rotationQuaternion = Quaternion.FromEulerAngles(0, Math.PI, 0);
+        }
 
 
         meshes.forEach((mesh) => { mesh.isPickable = false; });
         meshes.forEach((mesh) => { mesh.isPickable = false; });
         if (this._isQuest()) {
         if (this._isQuest()) {

+ 3 - 2
src/XR/motionController/webXRProfiledMotionController.ts

@@ -114,8 +114,9 @@ export class WebXRProfiledMotionController extends WebXRAbstractMotionController
         if (rootMesh) {
         if (rootMesh) {
             rootMesh.setParent(this.rootMesh);
             rootMesh.setParent(this.rootMesh);
         }
         }
-
-        this.rootMesh.rotate(Axis.Y, Math.PI, Space.WORLD);
+        if (!this.scene.useRightHandedSystem) {
+            this.rootMesh.rotate(Axis.Y, Math.PI, Space.WORLD);
+        }
     }
     }
 
 
     protected _updateModel(_xrFrame: XRFrame): void {
     protected _updateModel(_xrFrame: XRFrame): void {