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:
- Options that give measurements now take units (at the end of the line
for vectors); the default units are feet.
Options affected are: InterocularDistance, HeadSensorOffset,
WandSensorOffset, TransmitterOffset, Origin, CAVEWidth,
CAVEHeight, HeadVerticalDistance, HeadFrontDistance,
TransmitterHorizontalOffset, TransmitterVerticalOffset,
& TransmitterFrontOffset
- "Walls" no longer requires (or uses) pipe number following wall name
- "WallDisplay" specifies the pipe number for a given wall, and
(optionally) the window geometry
e.g.: WallDisplay front 0 512x512+300+200
- "HeadSensorOffset" specifies the offset (dx dy dz) from the head's
sensor to the point midway between the user's eyes
- "WandSensorOffset" specifies the offset (dx dy dz) from the wand's
sensor to the position that the library will report
- "WandSensorElevation" specifies the rotation of the wand sensor
around the X axis
- "TransmitterOffset" - combines "TransmitterHorizontalOffset",
"TransmitterVerticalOffset", and "TransmitterFrontOffset"
- "HeadSensorOffset" - combines "HeadVerticalDistance" and
"HeadFrontDistance" (and adds X offset)
- "Units" - "Units feet" (default) causes all coordinates to be in feet;
"Units meters" causes all coordinates to be in meters
- "HideCursor" - tells whether to hide the cursor (via cursoff())
in the CAVE windows
- "SoundPort", "SoundPath", "DTM", "DTMInputPort", "DTMOutputPort",
& "ExitKey" removed (they haven't actually been used in
a while)
- New "utility" functions:
- int CAVEButtonChange(int buttonnum)
- float CAVEGetTime()
- void CAVEGetVector(int vectorname,float *vector)
- void CAVEWallTransform()
- 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
Internal
- 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, pape@evl.uic.edu