You may download a copy of GRAFPAK-PHIGS for evaluation.
GRAFAPK-PHIGS™ is an implementation of Programmer's Hierarchical Interactive Graphics System (PHIGS), a world standard for portable, device-independent interactive 3D graphics software development. The implementation includes facilities for Shading, Lighting and Surfaces defined originally as the PHIGS Plus. PHIGS is an ANSI and ISO standard developed over a period of about ten years. The standard specifies basic drawing primitives along with a set of attributes for each. Primitives are invoked in a conceptual graphics workstation operating in the context of control functions that determine its state. The workstation also has input facilities defined for operator interaction. A unique feature of this standard is the specification of a set of Language Bindings, one for each programming language. A Language Binding formalizes features like routine names, data type and the calling sequence for each routine. Thus, an application may be designed and in fact, coded completely in the absence of an implementation of the standard. PHIGS is notable for its sophistication in definition, modification and display of hierarchival graphics data.
GRAFPAK-PHIGS is a robust and complete implementation of the PHIGS standard, featuring X display, C, FORTRAN and Ada Language Bindings and support for hardcopy through CGM (Computer Graphics Metafile) generation.
PHIGS was developed in world-wide collaborative effort by experts in graphics software development. A very stable standard since its formal inception in 1988, PHIGS has been implemented by many commercial and academic organizations the world over. GRAFPAK-PHIGS is based on DEC PHIGS, first developed by Digital Equipment Corporation in 1988. Since then, there have been three revisions to the product. Each revision represents major development efforts in updating the implementation to evolving computation and display technologies. However, it is still possible to take an application developed on the first version and built it on a new platform with the current version no source modification.
GRAFPAK-PHIGS maintains a graphical database known as the structure store. Output primitives, attributes, labels, name set specifications and transformations may be placed in the structure store. A structure may reference other structures. Structure contents may be edited by the application at any time.
Rendering by structure store traversal is not efficient for the display of large volumes of rapidly changing data. For such applications, GRAFPAK-PHIGS provides an alternative called Immediate Mode Rendering. In Immediate Mode, PHIGS primitives are rendered directly to the display surface without being placed in structure store.
An application's objects may be defined in their own modeling coordinate systems. Transformation functions are provided to position these objects with respect to one another in a world coordinate system. World coordinate systems may have any scale. PHIGS automatically converts from world coordinate systems to coordinates appropriate for the display device in use. The user can control multiple simultaneous views of the same objects on separate display surfaces, as well as the position and size of the picture on the surface. In addition to the standard PHIGS viewing model, GRAFPAK-PHIGS also provides alternate viewing functionality commonly known as "post to views".
Functions for creating both 2D and 3D primitives are supported. Some of the primitives support lighting and shading information to be specified, as well. Among the available primitives are Polyline, Polymarker, Text, Fill Area, Fill Area Set, Annotation Text, Circle, Arc, Triangle Strip, Quadrilateral Mesh, Indexed Polygons and Non-uniform Rational B-splines (NURBs). Each primitives has a set of attributes that enhances the appearance of the output. Attributes may be defined in groups (bundles) or individually. Some examples of attribues include linetype, linewidth, color and character attributes like font, spacing, height, path and so on.
GRAFPAK-PHIGS supports both synchronous (request, sample) and asynchronous (event) input using any of six logical input devices: locator, stroke, valuator, choice, pick and string. Locator and stroke input return coordinates in the user’s world coordinate system. Pick input returns a pick path which contains a list of structure and pick identifiers as well as a element number for each level in the structure network.
GRAFPAK-PHIGS implements name sets. Individual primitives can be associated with members of a name set that is used to determine eligibility for structure-wide operations like highlighting, visibility control and picking.
The availability of a complete set of inquiry functions is a unique feature of the PHIGS standard. Inquiries may be used to great advantage in developing modular, device-independent graphics applications.
GRAFPAK-PHIGS provides an interface to archive files which allows for all or part of a structure storage network to be saved for later recall. Archive files may be used for saving and restoring graphical information between sessions, transporting graphical information between similar systems and for storing accompanying non-graphical information.
GRAFPAK-PHIGS works exceptionally well with in a X Window System and Motif environment. Interactive 3D-graphics applications may be developed to take advantage of the best of both standards: PHIGS for graphics and device output, Motif for interactive input. The power of high-level, generalized PHIGS primitives and attributes, structure store, viewing operations like zoom and pan, and coordinate transformations, combined with Motif widgets for user interaction results in the richest possible application development environment. Drawing objects may be constructed, displayed, edited and geometrically transformed with PHIGS facilities. In addition, PHIGS may be used as a convenient alternative to create new windows, write to existing windows, or create a blanket window to overlaid over an existing window to create a composite image.