4 Implementation and Development
The file that is downloaded when a Mosaic user selects a CAVEview application for viewing has
a '.cave' extension. This file is an archive of several files, while contents vary from application
to application, generally a '.cave' file would contain the application object and data files and
CAVEview script and data files.
4.1 CAVEview Data File
The data file contains application specific information that is required by CAVEview. All
CAVE applications share a similar structure, drawing and calculation routines are separate
functions. In addition, the GL graphics initialization and regular initialization must be in
separate functions. CAVEview obtains names for these functions by accessing a file with the
extension '.cv_data'. The application designer can also set certain visual cues to be automatically
turned on or off upon application start up. This information resides in a file with the extension
'.cv'. The application object and data files, the CAVEview script and data files are all archived
together into one file with the '.cave' extension. Thus, the '.cave' is the file Mosaic downloads
when a user selects a link to a CAVEview application.
4.2 Mosaic File Transfer
When Mosaic downloads an image, animation, or HTML document across the network it
attempts to put the information in the data cache. However, for large animation and image files,
Mosaic writes the files temporarily to /usr/tmp.[1] Like Mosaic, CAVEview also writes files to
/usr/tmp however, CAVEview creates a temporary directory /usr/tmp/CAVEviewXXXX, where
XXXX is the process ID number. The application object and data files and CAVEview script and
data files are extracted from the '.cave' file into this temporary directory. CAVEview then
accesses files from this directory during execution. When the CAVEview application exits this
temporary directory is removed.
4.3 Dynamic Link
External viewers work independently of the data or image presented. Unfortunately, the CAVE
Simulator library must be compiled with each CAVE application. In order for CAVEview to
operate like other external viewers, CAVEview was designed to dynamically link the CAVE
application shared object file to CAVEview using rld, the SGI runtime linker. Using rld allows
any application in the '.cave' format to be accessed by CAVEview.
NEXT PAGE
CAVEview: Mosaic-based Virtual Reality HOME PAGE