|
|
|
@ -1,5 +1,7 @@ |
|
|
|
|
package com.jme3.input.vr; |
|
|
|
|
|
|
|
|
|
import static org.lwjgl.ovr.OVR.*; // For the button constants
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The type of a VR input. This enumeration enables to determine which part of the VR device is involved within input callback. |
|
|
|
|
* @author reden - phr00t - https://github.com/phr00t
|
|
|
|
@ -26,7 +28,103 @@ public enum VRInputType { |
|
|
|
|
/** |
|
|
|
|
* an HTC vive menu button (about <a href="https://www.vive.com/us/support/category_howto/720435.html">Vive controller</a>). |
|
|
|
|
*/ |
|
|
|
|
ViveMenuButton(3); |
|
|
|
|
ViveMenuButton(3), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The thumbstick on the Oculus Touch controllers. |
|
|
|
|
* |
|
|
|
|
* Unlike the Vive controllers where the touchpad is commonly used |
|
|
|
|
* as a virtual DPad, you should avoid using the thumbstick for purposes |
|
|
|
|
* that do not require analog input. |
|
|
|
|
*/ |
|
|
|
|
OculusThumbstickAxis(0), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The trigger button on the Oculus Touch controllers. |
|
|
|
|
* |
|
|
|
|
* This is the button under the user's index finger, and should not be used to |
|
|
|
|
* pick up objects. See the |
|
|
|
|
* <a href="https://developer.oculus.com/documentation/pcsdk/latest/concepts/dg-input-touch-overview/" |
|
|
|
|
* >Oculus Developer</a> documentation. |
|
|
|
|
*/ |
|
|
|
|
OculusTriggerAxis(0), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The 'grab' button on the Oculus Touch controllers. |
|
|
|
|
* |
|
|
|
|
* This button should only (unless you have a compelling reason otherwise) be used to pick up objects. |
|
|
|
|
*/ |
|
|
|
|
OculusGripAxis(0), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The upper buttons on the Oculus Touch controllers - B on the right controller, and Y on the left. |
|
|
|
|
*/ |
|
|
|
|
OculusTopButton(ovrButton_B | ovrButton_Y), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The lower (not counting menu) buttons on the Oculus Touch |
|
|
|
|
* controllers - A on the right controller, and X on the left. |
|
|
|
|
*/ |
|
|
|
|
OculusBottomButton(ovrButton_A | ovrButton_X), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The 'click' button on the Oculus Touch thumbsticks. |
|
|
|
|
*/ |
|
|
|
|
OculusThumbstickButton(ovrButton_LThumb | ovrButton_RThumb), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The game-usable menu button, under and to the left of the 'X' button on the left controller. |
|
|
|
|
* |
|
|
|
|
* Most games use this to pause - it preferably should be used for at least that purpose, and is |
|
|
|
|
* uncomfortable to rest your thumb on (in games where you suddenly have to pause/open a menu). |
|
|
|
|
*/ |
|
|
|
|
OculusMenuButton(ovrButton_Enter), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The capacitive touch sensors on the top buttons (Y and B) of the Oculus Touch. |
|
|
|
|
*/ |
|
|
|
|
OculusTopTouch(ovrTouch_B | ovrTouch_Y), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The capacitive touch sensors on the lower buttons (X and A) of the Oculus Touch. |
|
|
|
|
*/ |
|
|
|
|
OculusBottomTouch(ovrTouch_A | ovrTouch_X), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The capacitive touch sensors on the thumbsticks of the Oculus Touch. |
|
|
|
|
*/ |
|
|
|
|
OculusThumbstickTouch(ovrTouch_LThumb | ovrTouch_RThumb), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The capacitive touch sensors on the thumbrests of the Oculus Touch - this is a textured pad |
|
|
|
|
* on the Oculus Touch controller next to the ABXY buttons for users to reset their thumbs on. |
|
|
|
|
* |
|
|
|
|
* While it probably goes without saying, only use this for gesture support and do not bind game |
|
|
|
|
* elements to it. |
|
|
|
|
*/ |
|
|
|
|
OculusThumbrestTouch(ovrTouch_LThumbRest | ovrTouch_RThumbRest), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The state of a software calculation based on the capacitive touch sensor values that determine if |
|
|
|
|
* the user has lifted their thumb off the controller, and can be used for gesture support. |
|
|
|
|
* |
|
|
|
|
* This should be used instead of calculating this yourself based on the touch results of all the other |
|
|
|
|
* parts of the controller. |
|
|
|
|
*/ |
|
|
|
|
OculusThumbUp(ovrTouch_LThumbUp | ovrTouch_RThumbUp), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Is the user resting their finger on the trigger of an Oculus Touch controller? |
|
|
|
|
*/ |
|
|
|
|
OculusIndexTouch(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing), |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Is the user pointing their finger forwards, as if to press a button? |
|
|
|
|
* |
|
|
|
|
* This is internally calculated from proximity and filtering is applied - it should be used rather |
|
|
|
|
* than !OculusIndexTouch, as it will probably lead to better results. |
|
|
|
|
*/ |
|
|
|
|
OculusIndexPointing(ovrTouch_LIndexPointing | ovrTouch_RIndexPointing); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* The value that codes the input type. |
|
|
|
|