From 9e945462f74ffaff89c3416ae869d252043a7837 Mon Sep 17 00:00:00 2001 From: jseinturier Date: Thu, 13 Apr 2017 10:00:11 +0200 Subject: [PATCH] Conforming to last master branch --- .../main/java/com/jme3/app/VREnvironment.java | 21 +-- .../java/com/jme3/input/vr/OpenVRInput.java | 120 +++++------------- 2 files changed, 34 insertions(+), 107 deletions(-) diff --git a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java index 006400604..5358ff42a 100644 --- a/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java +++ b/jme3-vr/src/main/java/com/jme3/app/VREnvironment.java @@ -8,7 +8,6 @@ import com.jme3.app.state.AppState; import com.jme3.input.vr.OSVR; import com.jme3.input.vr.OpenVR; import com.jme3.input.vr.VRAPI; -import com.jme3.input.vr.VRBounds; import com.jme3.input.vr.VRInputAPI; import com.jme3.renderer.Camera; import com.jme3.scene.Spatial; @@ -28,8 +27,6 @@ public class VREnvironment { private VRGuiManager guiManager = null; private VRMouseManager mouseManager = null; private VRViewManager viewmanager = null; - private VRBounds bounds = null; - /** * The underlying system VR API. By default set to {@link VRConstants#SETTING_VRAPI_OPENVR_VALUE}. @@ -76,10 +73,7 @@ public class VREnvironment { guiManager = new VRGuiManager(this); mouseManager = new VRMouseManager(this); - - bounds = new VRBounds(); - - dummyCam = new Camera(); +// dummyCam = new Camera(settings.getWidth(), settings.getHeight()); processSettings(); } @@ -92,14 +86,6 @@ public class VREnvironment { return hardware; } - /** - * Get the VR bounds. - * @return the VR bounds. - */ - public VRBounds getVRBounds(){ - return bounds; - } - /** * Get the VR dedicated input. * @return the VR dedicated input. @@ -346,7 +332,7 @@ public class VREnvironment { */ public Camera getCamera() { if( isInVR() && getVRViewManager() != null && getVRViewManager().getLeftCamera() != null ) { - return dummyCam; + return getDummyCamera(); } return application.getCamera(); @@ -361,13 +347,12 @@ public class VREnvironment { if (application.getCamera() != null){ dummyCam = application.getCamera().clone(); } else { - return new Camera(); + return new Camera(settings.getWidth(), settings.getHeight()); } } else { throw new IllegalStateException("VR environment is not attached to any application."); } } - return dummyCam; } diff --git a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java index 6336cb4d9..b5514afcc 100644 --- a/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java +++ b/jme3-vr/src/main/java/com/jme3/input/vr/OpenVRInput.java @@ -5,7 +5,6 @@ */ package com.jme3.input.vr; -import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -184,50 +183,28 @@ public class OpenVRInput implements VRInputAPI { @Override public Vector3f getVelocity(int controllerIndex) { - - if (environment != null){ - - if (environment.getVRHardware() instanceof OpenVR){ - int index = OpenVRInput.controllerIndex[controllerIndex]; - if( needsNewVelocity[index] ) { - ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].readField("vVelocity"); - needsNewVelocity[index] = false; - } - tempVel.x = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vVelocity.v[0]; - tempVel.y = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vVelocity.v[1]; - tempVel.z = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vVelocity.v[2]; - return tempVel; - } else { - throw new IllegalStateException("VR hardware "+environment.getVRHardware().getClass().getSimpleName()+" is not a subclass of "+OpenVR.class.getSimpleName()); - } - } else { - throw new IllegalStateException("VR input is not attached to a VR environment."); - } + int index = OpenVRInput.controllerIndex[controllerIndex]; + if( needsNewVelocity[index] ) { + OpenVR.hmdTrackedDevicePoses[index].readField("vVelocity"); + needsNewVelocity[index] = false; + } + tempVel.x = OpenVR.hmdTrackedDevicePoses[index].vVelocity.v[0]; + tempVel.y = OpenVR.hmdTrackedDevicePoses[index].vVelocity.v[1]; + tempVel.z = OpenVR.hmdTrackedDevicePoses[index].vVelocity.v[2]; + return tempVel; } @Override public Vector3f getAngularVelocity(int controllerIndex) { - - if (environment != null){ - - if (environment.getVRHardware() instanceof OpenVR){ - - int index = OpenVRInput.controllerIndex[controllerIndex]; - if( needsNewAngVelocity[index] ) { - ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].readField("vAngularVelocity"); - needsNewAngVelocity[index] = false; - } - tempVel.x = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vAngularVelocity.v[0]; - tempVel.y = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vAngularVelocity.v[1]; - tempVel.z = ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[index].vAngularVelocity.v[2]; - return tempVel; - } else { - throw new IllegalStateException("VR hardware "+environment.getVRHardware().getClass().getSimpleName()+" is not a subclass of "+OpenVR.class.getSimpleName()); - } - } else { - throw new IllegalStateException("VR input is not attached to a VR environment."); - } - + int index = OpenVRInput.controllerIndex[controllerIndex]; + if( needsNewAngVelocity[index] ) { + OpenVR.hmdTrackedDevicePoses[index].readField("vAngularVelocity"); + needsNewAngVelocity[index] = false; + } + tempVel.x = OpenVR.hmdTrackedDevicePoses[index].vAngularVelocity.v[0]; + tempVel.y = OpenVR.hmdTrackedDevicePoses[index].vAngularVelocity.v[1]; + tempVel.z = OpenVR.hmdTrackedDevicePoses[index].vAngularVelocity.v[2]; + return tempVel; } @Override @@ -332,16 +309,7 @@ public class OpenVRInput implements VRInputAPI { return false; } - if (environment != null){ - - if (environment.getVRHardware() instanceof OpenVR){ - return ((OpenVR)environment.getVRHardware()).hmdTrackedDevicePoses[controllerIndex[index]].bPoseIsValid != 0; - } else { - throw new IllegalStateException("VR hardware "+environment.getVRHardware().getClass().getSimpleName()+" is not a subclass of "+OpenVR.class.getSimpleName()); - } - } else { - throw new IllegalStateException("VR input is not attached to a VR environment."); - } + return OpenVR.hmdTrackedDevicePoses[controllerIndex[index]].bPoseIsValid != 0; } @Override @@ -349,19 +317,9 @@ public class OpenVRInput implements VRInputAPI { if( isInputDeviceTracking(index) == false ){ return null; } - - if (environment != null){ - - if (environment.getVRHardware() instanceof OpenVR){ - index = controllerIndex[index]; - VRUtil.convertMatrix4toQuat(((OpenVR)environment.getVRHardware()).poseMatrices[index], rotStore[index]); - return rotStore[index]; - } else { - throw new IllegalStateException("VR hardware "+environment.getVRHardware().getClass().getSimpleName()+" is not a subclass of "+OpenVR.class.getSimpleName()); - } - } else { - throw new IllegalStateException("VR input is not attached to a VR environment."); - } + index = controllerIndex[index]; + VRUtil.convertMatrix4toQuat(OpenVR.poseMatrices[index], rotStore[index]); + return rotStore[index]; } @Override @@ -370,23 +328,12 @@ public class OpenVRInput implements VRInputAPI { return null; } - if (environment != null){ - - if (environment.getVRHardware() instanceof OpenVR){ - // the hmdPose comes in rotated funny, fix that here - index = controllerIndex[index]; - ((OpenVR)environment.getVRHardware()).poseMatrices[index].toTranslationVector(posStore[index]); - posStore[index].x = -posStore[index].x; - posStore[index].z = -posStore[index].z; - return posStore[index]; - } else { - throw new IllegalStateException("VR hardware "+environment.getVRHardware().getClass().getSimpleName()+" is not a subclass of "+OpenVR.class.getSimpleName()); - } - } else { - throw new IllegalStateException("VR input is not attached to a VR environment."); - } - - + // the hmdPose comes in rotated funny, fix that here + index = controllerIndex[index]; + OpenVR.poseMatrices[index].toTranslationVector(posStore[index]); + posStore[index].x = -posStore[index].x; + posStore[index].z = -posStore[index].z; + return posStore[index]; } @Override @@ -464,7 +411,8 @@ public class OpenVRInput implements VRInputAPI { if (environment != null){ controllerCount = 0; for(int i=0;i(JOpenVRLibrary.k_unMaxTrackedDeviceCount); - } - trackedControllers.add(new OpenVRTrackedController(i, this, controllerName, manufacturerName, environment)); - // Send an Haptic pulse to the controller triggerHapticPulse(controllerCount, 1.0f); @@ -503,7 +445,7 @@ public class OpenVRInput implements VRInputAPI { if (environment != null){ for(int i=0;i