The LONGLIB library is designed with three internal packages for plotting on 3 major classes of output graphics devices: graphics terminals, display screens and/or windows, and hardcopy devices via metafiles. The packages are termed: 1) the Terminal Package, 2) the RAMTEK Package, and 3) the Metafile Package. Several options for the RAMTEK Package are available including dummy routines, Ramtek display screeen, X-Windows, and screen emulations. A large variety of graphics terminals, graphics terminal emulations, and hardcopy devices are supported through the Terminal and Metafile Packages.
Graphics output to each type of device via the packages is discussed below. LONGLIB achieves virtual output device independence by using only a minimum of low-level commands. These include: initialization, a clear/new page command, drawing vectors, line colors, line textures (if supported on the selected graphics device), line widths (if supported), and limited image capability for the screen/window devices and the meta files. Hardcopy devices which require rasterization are also supported using the Metafile.
The library is principally designed for vector (i.e. line plotting). Lines are drawn by specifying the movement of an ``electronic pen". The color, width, and pattern of up/down motions in a line (the line type) may be specified. Capability for pixel-based graphics is provided for the Ramtek screen/window package. Images may be also be output to the metafile.
The library consists of various subroutines which, when called by a user-written program, will produce line drawings on the desired graphics device(s). The system is interactive in the sense that the user can see and modify plots immediately (on screen devices). The library can also produce a metafile which can then be processed by programs supplied with the LONGLIB library to produce hardcopy output on a variety of hardcopy devices. Provisions have been incorporated for device-dependent graphics input to a program (see CURSOR routines).
The library is designed with several levels of graphics routine users in mind. For the user who simply wants to obtain a plot of an array of data with a minimum of effort, the MASTER routines offer a simple solution. These routines handle opening/closing the plot package, scaling, and axis generation, etc, a wide variety of formats. For the user interested in more elaborate plots, access to several levels of the plotting routines are provided.
The LONGLIB graphics library supports both line type (such as pen width and dot-dash patterns) and color attributes. In general, these attributes are device dependent and specific line types or colors used on one plotting device may appear differently on a second device. Typically, line width is simulated for graphics terminals while line typing relies on hardware support. A routine for software generation of line types (LINSEQ) has been provided.
Support for device-dependent image "maps" is also included (see METMAP, RAMMAP, TEKMAP).