Interaction
Previous  Top  Next


A user interacts with a CAVELib application using a tracker and an input controller (wand, gloves, etc.) when in an immersive display device, but uses the keyboard and mouse on a desktop. Trackers report the position and orientation of its sensors; and input controllers usually consist of a set of buttons and valuators, such as a joystick, that reports floating point values (usually normalized to a range between -1 and 1). The CAVELib does not talk directly to trackers and input devices. Instead a middleware application called trackd reads data from devices and puts the information into system shared memory. From system shared memory other applications, such as a CAVELib application, can read the data at will.

The tracker's and controller's data structures are updated from the trackd's shared memory once per display frame. Thus, the values will remain constant during a given frame, and for each thread. Several CAVELib library functions are available to then access this data within the application as well as to obtain derived values, such as the front vector of a tracker sensor. When using the CAVELib in a cluster, the CAVELib guarantees that the trackd data will be the same for each frame on each machine.