next up previous
Next: Source Code Up: Implementation Previous: PCCTS

Program Structure

We have split the IVL interpreter into two main components (and two processes):

The IVL parser accepts commands from standard input and modifies the scene graph and other internal data structures. This component is run as the main process. Objects that are to be animated are added to a list shared by this process and the viewer process. Since SGI's implementation of Open Inventor is not multi-thread safe, we cannot modify the scene graph directly from within the parsing process.

The IVL viewer is attached to the scene graph and updates the viewer window accordingly. Every 50 milliseconds, this process looks to see if any objects have been added to the list of objects to animate. All animated objects are updated by this main loop ``timeout'' callback. In place of the viewer, IVL can deliver the results directly to a VRML browser via the HTTP protocol.

Figure 3.2 illustrates the basic block diagram of the IVL application.

Figure 2: Implementation of IVL code

Timothy F. Rohaly
Terence J. Parr
Mon Sep 11 11:59:26 EDT 1995