public class LWJGLOpenVRInput extends java.lang.Object implements VRInputAPI
null values will be returned if no valid pose exists, or that
input device isn't available user code should check for null
values.| Constructor and Description |
|---|
LWJGLOpenVRInput(VREnvironment environment)
Create a new
OpenVR
input attached to the given VR environment.
|
| Modifier and Type | Method and Description |
|---|---|
AnalogActionState |
getAnalogActionState(java.lang.String actionName,
java.lang.String restrictToInput)
Gets the current state of the action (abstract version of a button press).
|
Vector3f |
getAngularVelocity(int controllerIndex)
Get the controller angular velocity on all axes.
|
Vector2f |
getAxis(int controllerIndex,
VRInputType forAxis)
Get the axis value for the given input on the given controller.
|
Vector2f |
getAxisDeltaSinceLastCall(int controllerIndex,
VRInputType forAxis)
Get the controller axis delta from the last value.
|
float |
getAxisMultiplier()
Get the controller axis multiplier.
|
Vector2f |
getAxisRaw(int controllerIndex,
VRInputType forAxis)
Get the axis value for the given input on the given controller.
|
DigitalActionState |
getDigitalActionState(java.lang.String actionName,
java.lang.String restrictToInput)
Gets the current state of the action (abstract version of a button press).
|
Vector3f |
getFinalObserverPosition(int index)
Get the position of the input after all positional tracking is complete.
|
Quaternion |
getFinalObserverRotation(int index)
Get where is the controller pointing, after all rotations are combined.
|
long |
getOrFetchInputHandle(java.lang.String inputName)
Given an input name returns the handle to address it.
|
Quaternion |
getOrientation(int index)
Get the orientation of the input.
|
Vector3f |
getPosition(int index)
Get the position of the input.
|
org.lwjgl.openvr.VRControllerState |
getRawControllerState(int index)
Get the native wrapping of a controller state.
|
VRTrackedController |
getTrackedController(int index)
Get a tracked controller (for example, a hand controller) that is attached to the VR system.
|
int |
getTrackedControllerCount()
Get the number of tracked controllers (for example, hand controllers) attached to the VR system.
|
Vector3f |
getVelocity(int controllerIndex)
Get the controller velocity on all axes.
|
boolean |
init()
Initialize the input.
|
boolean |
isButtonDown(int controllerIndex,
VRInputType checkButton)
Check if the given button is down (more generally if the given input type is activated).
|
boolean |
isInputDeviceTracking(int index)
Check if the input device is actually tracked (i-e if we can obtain a pose from the input).
|
boolean |
isInputFocused()
Check if the VR system has the focus and if it's not used by other process.
|
void |
registerActionManifest(java.lang.String actionManifestAbsolutePath,
java.lang.String startingActiveActionSets)
Registers an action manifest.
|
void |
resetInputSinceLastCall()
Reset the current activation of the inputs.
|
void |
setActiveActionSet(java.lang.String actionSet)
Updates the active action set (the action group that will have their states available to be polled).
|
void |
setAxisMultiplier(float set)
Set the controller axis multiplier.
|
void |
swapHands()
Swap the two hands (exchange the hands' controller 1 and 2 indices).
|
void |
triggerHapticAction(java.lang.String actionName,
float duration,
float frequency,
float amplitude,
java.lang.String restrictToInput)
Triggers a haptic action (aka a vibration) restricted to just one input (e.g.
|
void |
triggerHapticPulse(int controllerIndex,
float seconds)
Trigger a haptic pulse on the selected controller for the duration given in parameters (in seconds).
|
void |
updateConnectedControllers()
Update the connected controllers.
|
void |
updateControllerStates()
Update the controller states.
|
boolean |
wasButtonPressedSinceLastCall(int controllerIndex,
VRInputType checkButton)
Check if the given button / input from the given controller has been just pressed / activated.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetAnalogActionState, getDigitalActionState, triggerHapticActionpublic LWJGLOpenVRInput(VREnvironment environment)
environment - the VR environment to which the input is attached.public void registerActionManifest(java.lang.String actionManifestAbsolutePath,
java.lang.String startingActiveActionSets)
VRInputAPIVRInputAPI.isButtonDown(int, com.jme3.input.vr.VRInputType)
will no longer work
See https://github.com/ValveSoftware/openvr/wiki/Action-manifest for documentation on how to create an
action manifest
This option is only relevant to OpenVRregisterActionManifest in interface VRInputAPIactionManifestAbsolutePath - the absolute file path to an actions manifeststartingActiveActionSets - the actions in the manifest are divided into action sets (groups) by their prefix (e.g. "/actions/main").
These action sets can be turned off and on per frame. This argument sets the action set that will be
active now. The active action sets can be later be changed by calling VRInputAPI.setActiveActionSet(java.lang.String).
Note that at present only a single set at a time is supportedpublic void setActiveActionSet(java.lang.String actionSet)
VRInputAPIsetActiveActionSet in interface VRInputAPIactionSet - the actions in the manifest are divided into action sets (groups) by their prefix (e.g. "/actions/main").
These action sets can be turned off and on per frame. This argument sets the action set that will be
active now.public DigitalActionState getDigitalActionState(java.lang.String actionName, java.lang.String restrictToInput)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String) must have been called before using this method.getDigitalActionState in interface VRInputAPIactionName - The name of the action. E.g. /actions/main/in/openInventoryrestrictToInput - the input to restrict the action to. E.g. /user/hand/right. Or null, which means "any input"public AnalogActionState getAnalogActionState(java.lang.String actionName, java.lang.String restrictToInput)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String) must have been called before using this method.getAnalogActionState in interface VRInputAPIactionName - The name of the action. E.g. /actions/main/in/openInventoryrestrictToInput - the input to restrict the action to. E.g. /user/hand/right. Or null, which means "any input"public float getAxisMultiplier()
VRInputAPIgetAxisMultiplier in interface VRInputAPIVRInputAPI.setAxisMultiplier(float)public void setAxisMultiplier(float set)
VRInputAPIsetAxisMultiplier in interface VRInputAPIset - the controller axis multiplier.VRInputAPI.getAxisMultiplier()public void swapHands()
VRInputAPIswapHands in interface VRInputAPIpublic boolean isButtonDown(int controllerIndex,
VRInputType checkButton)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String). Note; action based will only work with the OpenVR apiisButtonDown in interface VRInputAPIcontrollerIndex - the index of the controller to check.checkButton - the button / input to check.true if the button / input is down / activated and false otherwise.public boolean wasButtonPressedSinceLastCall(int controllerIndex,
VRInputType checkButton)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String). Note; action based will only work with the OpenVR apiwasButtonPressedSinceLastCall in interface VRInputAPIcontrollerIndex - the index of the controller.checkButton - the button / input to check.true if the given button / input from the given controller has been just pressed / activated and false otherwise.public void resetInputSinceLastCall()
VRInputAPIpublic Vector2f getAxisDeltaSinceLastCall(int controllerIndex, VRInputType forAxis)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String). Note; action based will only work with the OpenVR apigetAxisDeltaSinceLastCall in interface VRInputAPIcontrollerIndex - the index of the controller.forAxis - the axis.public Vector3f getVelocity(int controllerIndex)
VRInputAPIgetVelocity in interface VRInputAPIcontrollerIndex - the index of the controller.VRInputAPI.getAngularVelocity(int)public Vector3f getAngularVelocity(int controllerIndex)
VRInputAPIgetAngularVelocity in interface VRInputAPIcontrollerIndex - the index of the controller.VRInputAPI.getVelocity(int)public Vector2f getAxisRaw(int controllerIndex, VRInputType forAxis)
VRInputAPIVRInputAPI.registerActionManifest(java.lang.String, java.lang.String) Note; action based will only work with the OpenVR apigetAxisRaw in interface VRInputAPIcontrollerIndex - the index of the controller.forAxis - the axis.VRInputAPI.getAxis(int, VRInputType)public Vector2f getAxis(int controllerIndex, VRInputType forAxis)
VRInputAPIraw value multiplied by the axis multiplier.
Deprecated as should use an actions manifest approach. See VRInputAPI.registerActionManifest(java.lang.String, java.lang.String). Note; action based will only work with the OpenVR apigetAxis in interface VRInputAPIcontrollerIndex - the index of the controller.forAxis - the axis.VRInputAPI.getAxisRaw(int, VRInputType),
VRInputAPI.getAxisMultiplier()public boolean init()
VRInputAPIinit in interface VRInputAPItrue if the initialization is successful and false otherwise.public VRTrackedController getTrackedController(int index)
VRInputAPIgetTrackedController in interface VRInputAPIindex - the index of the controller.VRInputAPI.getTrackedControllerCount()public int getTrackedControllerCount()
VRInputAPIgetTrackedControllerCount in interface VRInputAPIVRInputAPI.getTrackedController(int)public org.lwjgl.openvr.VRControllerState getRawControllerState(int index)
VRInputAPIgetRawControllerState in interface VRInputAPIindex - the index of the controller.public boolean isInputFocused()
VRInputAPIisInputFocused in interface VRInputAPItrue if the VR system has the focus and false otherwise.public boolean isInputDeviceTracking(int index)
VRInputAPIisInputDeviceTracking in interface VRInputAPIindex - the index of the controller.true if the input device is actually tracked and false otherwise.public Quaternion getOrientation(int index)
VRInputAPIgetOrientation in interface VRInputAPIindex - the index of the controller.public Vector3f getPosition(int index)
VRInputAPIgetPosition in interface VRInputAPIindex - the index of the controller.public Quaternion getFinalObserverRotation(int index)
VRInputAPIgetFinalObserverRotation in interface VRInputAPIindex - the index of the controller.public Vector3f getFinalObserverPosition(int index)
VRInputAPIgetFinalObserverPosition in interface VRInputAPIindex - the index of the controller.public void triggerHapticPulse(int controllerIndex,
float seconds)
VRInputAPItriggerHapticPulse in interface VRInputAPIcontrollerIndex - the index of the controller.seconds - the duration of the pulse in seconds.public void triggerHapticAction(java.lang.String actionName,
float duration,
float frequency,
float amplitude,
java.lang.String restrictToInput)
VRInputAPItriggerHapticAction in interface VRInputAPIactionName - The name of the action. Will be something like /actions/main/out/vibrateduration - how long in seconds thefrequency - in cycles per secondamplitude - between 0 and 1restrictToInput - the input to restrict the action to. E.g. /user/hand/right, /user/hand/left. Or null, which means "any input"public void updateConnectedControllers()
VRInputAPIupdateConnectedControllers in interface VRInputAPIpublic void updateControllerStates()
VRInputAPIupdateControllerStates in interface VRInputAPIpublic long getOrFetchInputHandle(java.lang.String inputName)
inputName - the input name, e.g. /user/hand/right. Or null, which means "any input"