Input Notes for EQUIP Chris Greenhalgh 9 April 2001 VR Juggler ========== Abstract types -------------- VRJuggler defines the following 'device abilties': const unsigned int DEVICE_POSITION = 1; const unsigned int DEVICE_GESTURE = 2; const unsigned int DEVICE_DIGITAL = 4; const unsigned int DEVICE_ANALOG = 8; const unsigned int DEVICE_GLOVE = 16; const unsigned int DEVICE_KEYBOARD = 32; The 'digital' subclass is an array of 0 or more bits, each of which may be 'OFF' (0) or 'ON' (1). 'TOGGLE_ON' (2) and 'TOGGLE_OFF' (3) are also defined for internal use. -1 indicates out of range. The 'analog' subclass is an array of 0 or more ints (apparently). With some newer facility to normalize to float 0.0-1.0f. The 'keyboard' subclass includes alphanumerics, shift, alt, ctl, arrow keys, mouse buttons and relative mouse movements (pos/neg, x/y) as if keys. It returns the number of time a given key has been pressed since last update, i.e. you have to query for keys individually, and there is no single order of pressed keys as for text input. There is a custom glove interface - finger wrist angles/bending. The 'position' input subclass is an array of 3D matrices, including last update time. The 'gesture' subclass returns an integer id for the current gesture, and includes operations for training and for saving and loading gesture data. I suspect that this is momentary rather than time series, e.g. a particular glove pose. The 'speech' subclass appears to interface to a piece of dragon dictation software over the network, and returns a sequence of words. Concrete types -------------- VR Juggler appears to support the following at present: Tracker plus multi-function devices: CAVE trackd tracker demon Intersense IS-300, IS-600, IS-900 and InterTrax Diverse Toolkit Multi-function devices: Immersion Box - 4 digital, 4 analog Tracker: Motionstar Flock of birds Intersense (see above)