Package gaiasky.vr.openvr
Class VRContext.VRDevice
java.lang.Object
gaiasky.vr.openvr.VRContext.VRDevice
- Enclosing class:
- VRContext
public class VRContext.VRDevice
extends java.lang.Object
Represents a tracked VR device such as the head mounted display, wands
etc.
-
Method Summary
Modifier and Type Method Description float
getAxisX(int axis)
float
getAxisY(int axis)
boolean
getBooleanProperty(VRContext.VRDeviceProperty property)
VRContext.VRControllerRole
getControllerRole()
TheVRContext.VRControllerRole
, indicating if theVRContext.VRDevice
is assigned to the left or right hand.com.badlogic.gdx.math.Vector3
getDirection(VRContext.Space space)
float
getFloatProperty(VRContext.VRDeviceProperty property)
int
getInt32Property(VRContext.VRDeviceProperty property)
IntModelInstance
getModelInstance()
VRContext.VRDevicePose
getPose()
com.badlogic.gdx.math.Vector3
getPosition(VRContext.Space space)
com.badlogic.gdx.math.Vector3
getRight(VRContext.Space space)
java.lang.String
getStringProperty(VRContext.VRDeviceProperty property)
VRContext.VRDeviceType
getType()
long
getUInt64Property(VRContext.VRDeviceProperty property)
com.badlogic.gdx.math.Vector3
getUp(VRContext.Space space)
void
initialize()
boolean
isButtonPressed(int button)
boolean
isConnected()
boolean
isInitialized()
boolean
pollAxis(int axis)
Updates the axis values and returns whether the values changed.java.lang.String
toString()
void
triggerHapticPulse(short duration)
Trigger a haptic pulse (vibrate) for the duration in microseconds.void
updateAxesAndPosition()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Method Details
-
initialize
public void initialize() -
getPose
- Returns:
- the most up-to-date
VRContext.VRDevicePose
in tracker space
-
updateAxesAndPosition
public void updateAxesAndPosition() -
getPosition
- Returns:
- the position in the given
VRContext.Space
-
getRight
- Returns:
- the right vector in the given
VRContext.Space
-
getUp
- Returns:
- the up vector in the given
VRContext.Space
-
getDirection
- Returns:
- the direction vector in the given
VRContext.Space
-
getType
- Returns:
- the
VRContext.VRDeviceType
-
getControllerRole
TheVRContext.VRControllerRole
, indicating if theVRContext.VRDevice
is assigned to the left or right hand.Note: the role is not reliable! If one controller is connected on startup, it will have a role of
VRContext.VRControllerRole.Unknown
and retain that role even if a second controller is connected (which will also haven an unknown role). The role is only reliable if two controllers are connected already, and none of the controllers disconnects during the application life-time. At least on the HTC Vive, the first connected controller is always the right hand and the second connected controller is the left hand. The order stays the same even if controllers disconnect/reconnect during the application life-time. -
isConnected
public boolean isConnected()- Returns:
- whether the device is connected
-
isButtonPressed
public boolean isButtonPressed(int button)- Returns:
- whether the button from
VRContext.VRControllerButtons
is pressed
-
getAxisX
public float getAxisX(int axis)- Returns:
- the x-coordinate in the range [-1, 1] of the given axis from
VRContext.VRControllerAxes
-
getAxisY
public float getAxisY(int axis)- Returns:
- the y-coordinate in the range [-1, 1] of the given axis from
VRContext.VRControllerAxes
-
triggerHapticPulse
public void triggerHapticPulse(short duration)Trigger a haptic pulse (vibrate) for the duration in microseconds. Subsequent calls to this method within 5ms will be ignored.- Parameters:
duration
- pulse duration in microseconds
-
getBooleanProperty
- Returns:
- a boolean property or false if the query failed
-
getFloatProperty
- Returns:
- a float property or 0 if the query failed
-
getInt32Property
- Returns:
- an int property or 0 if the query failed
-
getUInt64Property
- Returns:
- a long property or 0 if the query failed
-
getStringProperty
- Returns:
- a string property or null if the query failed
-
getModelInstance
- Returns:
- a
IntModelInstance
with the transform updated to the latest tracked position and orientation in world space for rendering or null
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-
pollAxis
public boolean pollAxis(int axis)Updates the axis values and returns whether the values changed.- Parameters:
axis
- The axis- Returns:
- Whether the values of this axis changed
-
isInitialized
public boolean isInitialized()
-