.# BULLETED LIST START .de bu .in +8 .en .# BULLETED LIST ITEM .de bb .sp 1 .ti -3 .en .# END BULLETED LIST .de eb .sp 1 .in -8 .en .po 8 .he //METAFILES PRODUCT BRIEF .fo //Page #/May 14, 1984 .ls 2 .sp 5 {!DESCRIPTION!} .sp 2 .fi .ju Apollo's Graphics Metafile Resource (GMR) is the most advanced member of the DOMAIN Graphics Resources (DGR). GMR provides a comprehensive set of graphics routines that application developers can use to create advanced, interactive graphics programs with a minimum of effort. Fully integrated with the Display Manager, GMR is a standard feature of all DOMAIN Workstations. .sp GMR combines both graphics database and advanced graphics subroutine calls into one integrated package. While previous graphics systems were burdened by a clear division between compute power and display subsystems, GMR takes advantage of the integration that only a graphics workstation can offer. This unique integration is the foundation of a graphics architecture that offers an unprecedented combination of throughput and functionality. .sp GMR's architecture integrates graphics, text, and data into one coherent, high-level system that greatly simplifies development of the highly interactive, tightly-integrated graphics applications that the marketplace demands. .sp 3 .ne 30 .nf .ls 1 {!FEATURES BENEFITS!} Comprehensive set of high Simplifies application development; level graphics routines cuts time to market Fully integrated with the Create high-productivity user Display Manager interfaces with less work Runs on all DOMAIN Promotes resource sharing; increases workstations individual and group productivity Graphics Metafile: Off-loads graphics database; an editable, tree-structured shares same graphics among database applications; stores data in world coordinates Graphics Metafile: Up to 256M bytes; stores complex a virtual file models in a single Metafile Nested segmentation and Stores data compactly; instancing of segments simplifies modification of repetitive data. High graphics throughput Takes maximum advantage of graphics hardware; stores bounding rectangles for fast redraw speeds Multiple viewports Customized display of graphics data Hardcopy capability Rasterizes data for output on bit-mapped hardcopy devices .sp 3 .ls 2 .fi {!The Graphics Metafile!} .sp 2 The Graphics Metafile, an editable, tree-structured, database, is the focal point of GMR. GMR provides a comprehensive set of routines that allows the application to build and edit complex models. Graphics data is stored directly in world coordinates, and can be viewed on all DOMAIN Workstations. .sp With GMR, data can be grouped into segments; segments can be instanced and nested for compact storage. Furthermore, segments can reference or actually contain non-graphic data. .sp 3 {!Comprehensive Set of Graphics Routines!} .sp 2 GMR provides a complete set of high-level graphics routines, while still optimizing for graphics throughput. Data can be displayed in multiple viewports, and GMR handles all scaling, translation, windowing, and clipping. Attributes can be associated with viewports or instances to control color, linestyle, fill pattern, etc. Moreover, GMR provides a powerful set of pick capabilities. .sp 3 {!Use with Existing Applications!} .sp 2 The modeling and editing portions of GMR can work in conjunction with Apollo's Graphics Primitives Resource (GPR). This level of compatibility means that existing applications can be easily enhanced to take advantage of GMR. For example, within a GPR application, GMR can be used to display a Metafile at any screen location, with a specified scale and rotation. .sp 3 {!User-Defined Primitives!} .sp 2 Programmers can define special primitives not defined in GMR and insert these primitives into the Metafile. .sp When GMR encounters such a user-defined command, it takes note of the world coordinates for the command, transforms them for the viewport, and hands that data to the user routine, which draws the primitive on the screen using GPR. GMR then resumes traversing the Metafile. This feature provides an unprecedented level of flexibility, while still off-loading the transforming operations from the application developer. .sp 3 {!Multiple Active Viewports!} .sp 2 GMR provides multiple active viewports. Each viewport can be used to display all or part of a Metafile. Data in the viewports can be scaled, translated, and rotated easily. All viewports can be active at once, so changes to the Metafile are reflected in all views simultaneously. .sp 3 {!Support for Input Devices!} .sp 2 Since GMR is designed to simplify interactive applications, input devices are fully supported. Logical input can be handled from locator, keyboard, or function key devices. GMR's advanced pick capability allows pick by command, or segment, and provides highlighting, thresholding, pick apertures, and masks. .ne 7 .sp 3 {!World Coordinate Flexibility!} .sp 2 GMR can accept world coordinate data in three formats: 16-bit or 32-bit integer, and single-precision floating point. Furthermore, since each segment can use any of the three formats, data can be stored in the way most appropriate for that segment. .sp 3 {!Store Non-Graphic Data!} .sp 2 Non-graphic data can be stored as tags in the Metafile. These tags are similar to comments; they do not affect the visual data with which thay are associated. GMR tag routines provide search, locate, and edit capabilities. Applications can use tags to provide pathnames to data associated with a particular segment, or directly store that data. .sp 3 {!Designed for Speed!} .sp 2 GMR's file structure is designed for high graphics throughput. The Metafile stores graphics commands with world coordinate data. GMR handles traversing the database and outputting the data to high-speed hardware or software modules for display on screen viewports. By storing bounding rectangles with each segment, GMR eliminates portions of the "tree" that are not on the screen. This means that screen updates are fast, even with large files. .sp 3 {!A Strong Foundation!} .sp 2 GMR is a strong foundation for integrated, interactive graphics applications. With GMR, programmers can concentrate on tailoring their applications to the needs of the marketplace, rather than spending their time on graphics program development. The result is applications that reach the market sooner, and require less maintenance later. .sp 3 {!The Metafile Approach:!} Caption for Metafile Graphic .sp 2 GMR's Graphics Metafile uses an advanced, flexible approach to store both graphics and non-graphics data. Primitives are grouped into segments that can be nested in an easily editable tree structure. Multiple instances of repetitive data keeps the file compact. Non-graphic data can be stored as tags within segments, or these tags can be used as pointers to data stored elsewhere. .sp 3 {!Multiple Viewports:!} Caption for Multiple Viewport Graphic .sp 2 GMR's multiple viewport feature is extremely flexible and easy to use. Each viewport can display different data, or different parts of a single Metafile. Data in the viewport can be scaled, translated, or rotated. This multiple viewport feature means that application developers can present data in the way most convient for their end users. .sp 3 .ls 1 .ne 30 .ce {_GMR ROUTINES: A Table_} .sp 2 GMR provides a compreshensive set of almost two hundred graphics routines that provide a fast, flexible foundation for application development. For a full listing of all GMR commands, refer to the {_Programmer's Guide to the DOMAIN Graphics Metafile Resource_}. {!FILE!} create metafile open metafile close metafile select metafile {!SEGMENT!} create segment open segment close segment delete segment rename segment set/inq pickable set/inq temporary set/inq visible {!DATA COERCION!} real to integer {!MODELING!} insert/read circle insert/read curve insert/read polyline insert/read rectangle insert/read user primitive insert/read segment instance insert/read draw style insert/read draw raster op insert/read draw value insert/read fill pattern insert/read fill value insert/read fill background value insert/read plane mask insert/read tag insert/read attribute class .ne 7 {!TEXT!} insert/read text string insert/read text background value insert/read text size insert/read text value insert/read font family include font family (pixel or stroke) {!EDITING!} delete command erase segment copy segment replace/insert commands locate tag {!VIEWPORTS!} create viewport clear viewport delete viewport move viewport select viewport refresh viewports set/inq viewport border size set/inq viewport bounds set/inq viewport background value set/inq viewport visible threshold set/inq viewport visible mask set/inq refresh state {!DISPLAYING METAFILES IN VIEWPORTS!} display full/partial file display full/partial segment display segment (GPR mode) set/inq color map scale viewport contents rotate viewport contents translate viewport contents reset viewport transformations {!CURSOR!} set/inq active set/inq pattern set/inq position {!ATTRIBUTES!} create attribute block copy attribute block assign display attributes assign viewport attributes set/inq attributes in block {!INPUT!} enable input disable input check/wait for event {!PICK!} pick command pick segment pick aperture center pick aperture size pick mask pick threshold highlight picked command highlight picked segment readback picked segments {!OUTPUT!} create bitmap