Class OpenVRInput

java.lang.Object
com.jme3.input.vr.openvr.OpenVRInput
All Implemented Interfaces:
VRInputAPI

public class OpenVRInput extends Object implements VRInputAPI
A class that wraps an OpenVR input.
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 Details

    • OpenVRInput

      public OpenVRInput(VREnvironment environment)
      Create a new OpenVR input attached to the given VR environment.
      Parameters:
      environment - the VR environment to which the input is attached.
  • Method Details

    • getAxisMultiplier

      public float getAxisMultiplier()
      Description copied from interface: VRInputAPI
      Get the controller axis multiplier. The controller axis raw data (trackpad, trigger, ...) value is multiplied by the one given in parameter.
      Specified by:
      getAxisMultiplier in interface VRInputAPI
      Returns:
      the controller axis multiplier.
      See Also:
    • setAxisMultiplier

      public void setAxisMultiplier(float set)
      Description copied from interface: VRInputAPI
      Set the controller axis multiplier. The controller axis raw data (trackpad, trigger, ...) value is multiplied by the one given in parameter.
      Specified by:
      setAxisMultiplier in interface VRInputAPI
      Parameters:
      set - the controller axis multiplier.
      See Also:
    • swapHands

      public void swapHands()
      Description copied from interface: VRInputAPI
      Swap the two hands (exchange the hands' controller 1 and 2 indices).
      Specified by:
      swapHands in interface VRInputAPI
    • isButtonDown

      public boolean isButtonDown(int controllerIndex, VRInputType checkButton)
      Description copied from interface: VRInputAPI
      Check if the given button is down (more generally if the given input type is activated).
      Specified by:
      isButtonDown in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller to check.
      checkButton - the button / input to check.
      Returns:
      true if the button / input is down / activated and false otherwise.
    • wasButtonPressedSinceLastCall

      public boolean wasButtonPressedSinceLastCall(int controllerIndex, VRInputType checkButton)
      Description copied from interface: VRInputAPI
      Check if the given button / input from the given controller has been just pressed / activated.
      Specified by:
      wasButtonPressedSinceLastCall in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      checkButton - the button / input to check.
      Returns:
      true if the given input from the given controller has just been activated, false otherwise.
    • resetInputSinceLastCall

      public void resetInputSinceLastCall()
      Description copied from interface: VRInputAPI
      Reset the current activation of the inputs. After a call to this method, any input activation is considered a new activation.
      Specified by:
      resetInputSinceLastCall in interface VRInputAPI
      See Also:
    • getAxisDeltaSinceLastCall

      public Vector2f getAxisDeltaSinceLastCall(int controllerIndex, VRInputType forAxis)
      Description copied from interface: VRInputAPI
      Get the controller axis delta from the last value.
      Specified by:
      getAxisDeltaSinceLastCall in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      forAxis - the axis.
      Returns:
      the controller axis delta from the last call.
    • getVelocity

      public Vector3f getVelocity(int controllerIndex)
      Description copied from interface: VRInputAPI
      Get the controller velocity on all axes.
      Specified by:
      getVelocity in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      Returns:
      the controller velocity on all axes.
      See Also:
    • getAngularVelocity

      public Vector3f getAngularVelocity(int controllerIndex)
      Description copied from interface: VRInputAPI
      Get the controller angular velocity on all axes.
      Specified by:
      getAngularVelocity in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      Returns:
      the controller angular velocity on all axes.
      See Also:
    • getAxisRaw

      public Vector2f getAxisRaw(int controllerIndex, VRInputType forAxis)
      Description copied from interface: VRInputAPI
      Get the axis value for the given input on the given controller.
      Specified by:
      getAxisRaw in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      forAxis - the axis.
      Returns:
      the axis value for the given input on the given controller.
      See Also:
    • getAxis

      public Vector2f getAxis(int controllerIndex, VRInputType forAxis)
      Description copied from interface: VRInputAPI
      Get the axis value for the given input on the given controller. This value is the raw value multiplied by the axis multiplier.
      Specified by:
      getAxis in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      forAxis - the axis.
      Returns:
      the axis value for the given input on the given controller.
      See Also:
    • init

      public boolean init()
      Description copied from interface: VRInputAPI
      Initialize the input.
      Specified by:
      init in interface VRInputAPI
      Returns:
      true if the initialization is successful and false otherwise.
    • getTrackedController

      public VRTrackedController getTrackedController(int index)
      Description copied from interface: VRInputAPI
      Get a tracked controller (for example, a hand controller) that is attached to the VR system.
      Specified by:
      getTrackedController in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the tracked controller (for example, a hand controller) that is attached to the VR system.
      See Also:
    • getTrackedControllerCount

      public int getTrackedControllerCount()
      Description copied from interface: VRInputAPI
      Get the number of tracked controllers (for example, hand controllers) attached to the VR system.
      Specified by:
      getTrackedControllerCount in interface VRInputAPI
      Returns:
      the number of controllers attached to the VR system.
      See Also:
    • getRawControllerState

      public VRControllerState_t getRawControllerState(int index)
      Description copied from interface: VRInputAPI
      Get the native wrapping of a controller state.
      Specified by:
      getRawControllerState in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the native wrapping of a controller state.
    • isInputFocused

      public boolean isInputFocused()
      Description copied from interface: VRInputAPI
      Check if the VR system has the focus and if it's not used by other process.
      Specified by:
      isInputFocused in interface VRInputAPI
      Returns:
      true if the VR system has the focus and false otherwise.
    • isInputDeviceTracking

      public boolean isInputDeviceTracking(int index)
      Description copied from interface: VRInputAPI
      Check if the input device is actually tracked (i-e if we can obtain a pose from the input).
      Specified by:
      isInputDeviceTracking in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      true if the input device is actually tracked and false otherwise.
    • getOrientation

      public Quaternion getOrientation(int index)
      Description copied from interface: VRInputAPI
      Get the orientation of the input.
      Specified by:
      getOrientation in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the orientation of the input.
    • getPosition

      public Vector3f getPosition(int index)
      Description copied from interface: VRInputAPI
      Get the position of the input.
      Specified by:
      getPosition in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the position of the input.
    • getFinalObserverRotation

      public Quaternion getFinalObserverRotation(int index)
      Description copied from interface: VRInputAPI
      Get where is the controller pointing, after all rotations are combined. This position should include observer rotation from the VR application.
      Specified by:
      getFinalObserverRotation in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the rotation of the input after all positional tracking is complete.
    • getFinalObserverPosition

      public Vector3f getFinalObserverPosition(int index)
      Description copied from interface: VRInputAPI
      Get the position of the input after all positional tracking is complete. This position should include observer position from the VR application.
      Specified by:
      getFinalObserverPosition in interface VRInputAPI
      Parameters:
      index - the index of the controller.
      Returns:
      the position of the input after all positional tracking is complete.
    • triggerHapticPulse

      public void triggerHapticPulse(int controllerIndex, float seconds)
      Description copied from interface: VRInputAPI
      Trigger a haptic pulse on the selected controller for the duration given in parameters (in seconds).
      Specified by:
      triggerHapticPulse in interface VRInputAPI
      Parameters:
      controllerIndex - the index of the controller.
      seconds - the duration of the pulse in seconds.
    • updateConnectedControllers

      public void updateConnectedControllers()
      Description copied from interface: VRInputAPI
      Update the connected controllers. This method should be used just after the initialization of the input.
      Specified by:
      updateConnectedControllers in interface VRInputAPI
    • updateControllerStates

      public void updateControllerStates()
      Description copied from interface: VRInputAPI
      Update the controller states. This method should be called before accessing any controller data.
      Specified by:
      updateControllerStates in interface VRInputAPI