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