1 Why Use IDI?

IDI is intended for those users (applications) that need to be able to manipulate images on an image display to a greater extent than is available with GKS and its offspring (e.g. PGPLOT). GKS allows an image to be displayed, its look-up table changed and a cursor to be moved over it. The most obvious advantage of IDI over GKS is that it allows the image to be scrolled and zoomed. Other differences that users may wish to exploit is the ability to blink images and to read back a representation of the whole display, which can then be used to obtain a hardcopy of it.

IDI allows these functions to be programmed in a device independent way. Once IDI has been implemented for one device then the same program can run on the different devices just by supplying the appropriate device name to Open Display, with the proviso that not all the routines have been implemented on all devices.

This does not mean that IDI supercedes GKS. IDI was written to offer features not available in GKS. It does not have the sophistication of GKS for producing vector (line) plots or character annotation. IDI does have routines to draw lines and plot text, but these are primitive and offer the user little control over how the result will appear, in terms of character sizes, style of line widths etc.

The major strength of IDI is the ability to perform many types of interaction using the mouse. This can be programmed to move the cursor, or the memories, rotate the look-up table, zoom up and down, blink the memories, or perform even more complex tasks by passing control back to the calling program.

It should be noted that it is not possible to mix calls from GKS and IDI on the same display; the two packages use completely different models of the display. An application could, however, use the packages one after the other by utilising the Applications Graphics Interface (SUN/48) to mediate between them.