Navigation Functions
- CAVENavTranslate (float x, float y, float z)
- CAVENavRot (float angle, char axis)
- CAVENavScale (float xscale, float yscale, float zscale)
- CAVENavMultMatrix (float mat[4][4])
- CAVENavLoadMatrix (float mat[4][4])
- CAVENavGetMatrix (float mat[4][4])
- Operate on the current navigation matrix.
These functions are similar to the corresponding GL functions.
The transformations are in physical CAVE coordinates (they are
post-multiplied).
- CAVENavLoadIdentity (void)
- Replaces the navigation matrix with the identity matrix.
- CAVENavTransform (void)
- Applies the latest navigation transformation. This should only
be called in the display processes.
- CAVENavConvertCAVEToWorld (float inposition[3], float outposition[3])
- CAVENavConvertVectorCAVEToWorld (float invector[3], float outvector[3])
- Converts a position or direction vector from physical CAVE coordinates
to navigated world coordinates.
- CAVENavConvertWorldToCAVE (float inposition[3], float outposition[3])
- CAVENavConvertVectorWorldToCAVE (float invector[3], float outvector[3])
- Converts a position or direction vector from navigated coordinates
to physical coordinates.
- CAVENavLock (void)
- CAVENavUnlock (void)
- Controls access to the navigation matrix, so that several transformations
can be performed atomically.
The tracking functions CAVEGetPosition(), CAVEGetOrientation(), and
CAVEGetVector() can also return values in navigated, rather than tracker,
coordinates.
To do this, append _NAV to the name of the value being requested.
For example:
CAVEGetPosition(CAVE_HEAD_NAV, headpos);
navigate1.c - Example navigation program
navigate2.c - Navigation example with interaction
Previous page
Next page
Last modified 15 June 1996.
Dave Pape, pape@evl.uic.edu