Basic Graphics Packages: GKS, HIGZ and PHIGS

Present Situation

This is a summary of the present situation on basic graphics facilities.
  1. GKS was frozen in 1992 and no further driver has been installed. The interest from users in this package has dropped nearly completely. One can note that the package is still available on VM and VMS, but no X driver is available and no request for installation has been received since 1993.
  2. Existing applications requiring an X driver (for display on a workstation or an X-terminal) should use HIGZ, whenever it is possible. It is realised that some applications could exceptionally require the full functionality of GKS and X-Window. The developers of these packages have been invited to contact us (graphics.support@cern.ch) in order to seek alternative solutions.
  3. New high-level 3D applications should be based on PHIGS.
We advise application programmers to use HIGZ for relatively simple 2D applications, or PHIGS for 3D highly-interactive applications requiring hierarchical data structures.

WHICH GRAPHICS PACKAGE?

Users at CERN have now a relatively large choice of graphics facilities, and we want here to indicate some basic guidelines for the user who has to decide which one is most suitable for his needs. Apart from the interactive applications (e.g. PAW, which, although having physics data analysis as its main goal, can be also a tool for a casual user wishing to produce graphs quickly) the user has access on most platforms to the two main graphics libraries:
  1. HIGZ ("High level Interface to Graphics and ZEBRA" - see section 4.1.3.)
  2. GPHIGS (CERN-supported implementation of PHIGS, the "Programmer's Hierarchical Interactive Graphics System" - see section 4.1.4.)

Which one should you use?

For the production of simple drawings (like an X/Y plot):

Use PAW, or one of the numerous graphical tools available on Macintosh and PC. Note that PAW offers a lot of capabilities relating to data analysis, but it is also a powerful tool that is simple to use for the production of any kind of graph, and it is available on virtually all platforms at CERN.

For the implementation of your own graphical application:

  1. If the application is 2D, does not require segmentation, must be portable: use HIGZ.
  2. If the application is simple 3D, must be portable: use HIGZ.
  3. If the application is high-level 3D, must be portable: use PHIGS.
  4. If the application is 2D, does require segmentation, if it is at the moment GKS-based, but it must now run under X-Window (for display on a workstation or an X-terminal) or on a new platform where GKS does not exists: this is a very specific case for which you are invited to contact us (graphics.support@cern.ch).

HIGZ

HIGZ is an interface package between a user program and an underlying standard graphics package. These "standard graphics packages" or libraries (like GKS or X-Window):

  1. do not provide the high level functions (axes, graphs, histogram, surface and lego plots, logarithmic scales, etc.) necessary for a data presentation system, and,
  2. always have differences (sometimes minor) in the actual implementations on different computers.

The main motivation of HIGZ is to solve these two main problems, offering exactly the same user interface on different platforms.

HIGZ offers a high level user interface to the graphics package, keeping the program independent of it. The level of HIGZ has been deliberately chosen to be close to GKS or PHIGS and as basic as possible.

HIGZ is part of the CERN Program Library, hence is freely available to all those having access to it.

The main advantages of HIGZ may be summarised as follows:

  1. Simple to use (the user needs to know less than 20 routines).
  2. The calling sequences of the basic routines are very simple.
  3. Some graphics macro-primitives are implemented, providing very frequently used functions such as histograms, full graphs, circles, bars and pie charts, surfaces and lego plots, axes, etc.
  4. Permits the storage of graphics data in a way which makes their organization and subsequent editing possible and easy. The picture data base is highly condensed and fully transportable, based on direct access files. A picture management facility is available for picture creation, merging, archiving, editing, etc.
  5. The package is fully portable: HIGZ is available on all UNIX machines (workstations), IBM/VM, VAX/VMS and a reduced version (without picture handling) is also available on PCs.
  6. The following interfaces are available: GPR (APOLLO), GL (SGI), GDDM (IBM), DI3000, PHIGS, all flavours of GKS, X11 (all dialects) (Standard, DecWindow, Openwindow), PostScript, and Falco terminals.
  7. Simple 3D routines are now being implemented.

A comprehensive User's manual is available.

The basic limitations in using HIGZ to support GKS-based programs are as follows:

  1. Bundled attributes do not exist.
  2. Minor differences in the ``Normalization and Workstation Transformation'' management.
  3. Segmentation is not available (and this is the main limitation of HIGZ as a GKS-interface).
  4. The 3D implementation is completely different from GKS.

PHIGS (GPHIGS)

The Programmer's Hierarchical Interactive Graphics System (PHIGS) is a 3D graphics standard which was developed within ISO in parallel to GKS-3D. It was accepted as a full International Standard in 1988. A great deal of PHIGS is identical to GKS-3D, including the primitives, the attributes, the workstation concept, and the viewing and input models. However, PHIGS has a single Central Structure Store (CSS), unlike the separate Workstation Dependent and Workstation Independent Segment Storage (WDSS and WISS) of GKS. The CSS contains Structures which can be configured into a hierarchical directed-graph database, and within the structures themselves are stored the graphics primitives, attributes, and so forth. PHIGS is aimed particularly at highly interactive applications with complicated hierarchical data structures, for example: Mechanical CAD, Molecular Modelling, Simulation and Process Control.

At the end of 1991, CERN acquired an implementation of PHIGS in a portable machine-independent version (i.e. it did not consider hardware-dependent packages supplied by the hardware manufacturers). The package is from the French companie G5G - Graphisme 5eme Generation -. This specific implementation of PHIGS, the only one officially supported at CERN, is called GPHIGS. The package is available on the following platforms: VAX VMS, HP (HP/UX), Silicon Graphics, IBM RISC 6000, SUN (SunOS and Solaris), DEC Station (Ultrix), DEC ALPHA (OpenVMS and OSF/1). Both the FORTRAN and C bindings are available. The following driver interfaces are available: X-Window, DEC-Windows, GL, Starbase, XGL, HP GL, CGM, and PostScript. A new version (3.1) is now available, as announced in CNL 216.

GPHIGS is freely available to the European collaborating Institutes and available against payment of a fee to the supplier (via CERN), to the non-European collaborating Institutes.

The conditions for obtaining a GPHIGS licence are based on the following terms:

 ______________________________________________________________
|                                                              |
| EUROPEAN COLLABORATING INSTITUTES                            |
|                                                              |
|  1. Binary obtainable from CERN free of charge.              |
|  2. Documentation payable to CERN.                           |
|                                                              |
| NON-EUROPEAN COLLABORATING INSTITUTES                        |
|                                                              |
|  1. Binary obtainable from CERN against payment of a fee to  |
|     the supplier via CERN                                    |
|  2. Documentation payable to CERN.                           |
+--------------------------------------------------------------+
   
Olivier Couet, Nicole Cremel, Carlo E. Vandoni CN/ASD