Changes in CAVE Library Version 2.3 (installed 27 June 1994)

- CAVEConfigure does a putenv of the SOUNDSERVER variable, using the SoundServer config option

- Added "simulator tracking" option - provides keyboard/mouse control of the head & wand tracker data as in the simulator. Selected by the configuration option: "TrackerType simulator"

- Changes to configuration:

- New "utility" functions:

- CAVEGetHead returns the point between the user's eyes, rather than the location of the sensor itself

- Rewrote & rearranged tracker and synchronization code to attempt to minimize the tracker latency

- Rewrote CAVEDisplay, et al. to reduce the delay of the display processes (CAVEDisplayLoop has to pause when the function pointers are being changed)

- Display processes clear their window immediately after opening it

- Ascension reset delay reduced from 10 seconds to 4

- Shared memory allocation (CAVEUserSharedMemory & amalloc) should be much faster

- Tracker process will be run on an isolated processor when CPU locking is enabled (if one is available; it uses processor n+1, where n is the number of active walls)

- New tracker logfile format - CAVE_LOG_HEADER_ST followed by sequence of {cave_time, head_sensor, wand_sensor, buttons, valuators}

- New spaceball tracking option


- Removed CAVEButton[123] & CAVELastButton[123] - just uses CAVEController now
- Removed CAVESync->UpdatingSensorsReading
- Hand-optimized CAVEGetEyePosition to reduce # of trig functions
- Removed dir_cos & quaternion entries from CAVE_SENSOR_ST
- Added HeadSensorOffset & WandSensorOffset to CAVEConfig (& removed HeadSensorYOffset & HeadSensorZOffset)
- Added HalfInterocularDistance to CAVEConfig; InterocularDistance now stores full interocular distance
- Removed CAVESharedArena; use usmalloc to allocate shared data, rather than amalloc
- CAVEUserSharedMemory memory-maps /dev/zero instead of a temp file in /usr/tmp; should eliminate dependence on free space, and speed things up

Bug fixes after release

7/5/94 - Moved update of tracker data in CAVEDisplayLoop back to right after the swapbuffers. Previous position made it possible for the tracker data to change while some walls were running the FrameFunction.

7/7/94 - Fixed writing of tracker log header. Previously caused display process to core dump. Optimized CAVEGetVector functions a little more (about 10% faster).

7/10/94 - Added putenv("DISPLAY=:0.0") to tracker process initialization

Last modified 23 January 1995.
Dave Pape,