Devices are managed by drivers. Each driver can create several devices. For example, the driver responsible for handling basic devices, uses Microsoft Direct Input to create devices such as a keyboard, a mouse or joysticks.
Here are the different devices currently supported by MiddleVR :
The trackers hold the position and/or orientation information of a device in space. This information is typically stored as a transformation matrix. The data can also be accessed more simply by asking for a position (a vector of three floats), and an orientation (a quaternion).
Axis typically store data and events about the axis of a joystick or a mouse, but this could represent any kind of analog information, such as a slider. This information is stored as an array of floats.
The Joystick device is used to store information about joysticks, gamepads, or similar devices. A joystick internally stores its information as both Axis and Buttons types.
In most immersive cubes you interact with the simulation with a standard device called a Wand, or a Flystick.
This device is held in the hand and tracked in space. It commonly has several buttons and a two-axis joystick :
ART Flystick 2
ART Flystick 3
The Wand can be decomposed in three parts :
- its 3D position and orientation,
- the value of the joystick axis,
- the state of the buttons
MiddleVR includes standard interactions based on the Wand: navigation, grabbing of objects.
You first have to configure the three parts of the Wand before you can use those interactions.