This specification is designed to be incorporated into a contract to define the technical requirements to be met when it is desired to purchase illustration or picture description data (in contrast to product definition data) in digital form for use in technical illustrations and technical publications. A metafile as specified herein represents illustration data in the form of a conforming basic metafile, i.e., it contains, in device-independent, system-independent, and implementation-independent form, the picture description data represented by the functions invoked through an application program interface. This specification defines the allowable elements and parameters which may be used to compose the picture. In addition, certain constraints on CGM generators and interpreters are specified herein to remove implementation dependencies, thereby serving to ensure predictable interchange of conforming basic metafiles between clients. Thus, this specification may also be used in a contract to define the
technical requirements to be met when it is desired to purchase conforming basic generators and/or interpreters.
Most standards tend to be very completely specified, and ideally all implementations of standards would implement all possible elements, options and permissible values. Then there would be no problems in exchanging either implementations or files. However, not all standards are completely specified, nor are all possible elements, options and permissible values implemented by all implementors. FIPS PUB 128, the CGM standard, is not completely specified. This was intentional on the part of the CGM standards committee to allow implementation on a wider range of existing systems and make the CGM standard more adaptable to the various needs and philosophies of a diverse clientele. This introduces difficulties in trying to unambiguously describe an intended picture using the CGM standard. Nor have all implementors of the CGM standard chosen to include all possible elements, options and permissible values available and allowed in the standard. For their own reasons they have chosen particular subsets of the CGM standard to implement. This means that a picture written to a metafile using a particular generator may not be able to be fully rendered using a particular interpreter. Unpredictable results can and do occur. In addition, since the behavior of generators and interpreters themselves are not part of the CGM standard, a further unpredictability of results can occur.
This is the reason that certain groups of users have gotten together to rigorously define and adhere to the same subset of the CGM standard. This ensures predictable results and interworking between machines, sites, and applications. Such subsets are known as application profiles.
This specification is a CGM Application Profile for a particular group of users, namely DoD and contractors dealing with DoD. It is based on FIPS PUB 128, and defines the allowable elements, parameters and options which may be used to compose a picture in a metafile. In addition to more completely specifying semantic gaps in the CGM standard, specifying the operations and required capabilities of generators and interpreters, specifying the particular subset of CGM elements and parameters and their Basic Set of values, this specification also:
[obull] specifies implementation requirements;
[obull] specifies maxima and minima values of certain CGM elements and parameters; and
[obull] specifies some additional element values which have completed the process of Graphical Registration.
Metafiles in the CGM standard are defined as a series of layers of detail. The highest level of structure is the metafile itself. Each metafile may contain one or more pictures, which are completely independent of each other. Each of the items stored in a metafile is stored as an element. Each element may have associated with it a list of data called parameters. Elements may be grouped into Segments, which may be referenced and reused multiple times. There are nine classes of elements, and each is defined in turn in the CGM standard: Delimiter elements, Metafile Descriptor elements, Control elements, Graphical Primitive elements, Attribute elements, Escape elements, External elements, and Segment elements. Specific requirements in section 3 herein are organized similarly. Additionally, a new class of elements is specified in section 3 herein, namely Segment elements, and are inserted after Attribute elements.
"Permissible values" are the range of values for CGM elements and parameters as specified in FIPS PUB 128. "Basic values" are the range of permissible values that are mandatory for conformance to this specification, and are specified herein. In some cases Basic values are augmented herein by additional values. Thus, both the Basic values and additional values specified herein constitute the "Basic Set."
FIPS PUB 128 adopts the international Computer Graphics Metafile (CGM) standard, ANSI/ISO 8632, as the Federal Information Processing Standard (FIPS) for use by Federal agencies. The FIPS only provides for the use of ANSI/ISO 8632 within the Federal government, explaining what it is and how it is to be applied and implemented. ANSI/ISO 8632, part 1, provides the functional specification for CGM elements and parameters, and their permissible values, while parts 2, 3 and 4 specify encodings. In particular, ANSI/ISO 8632, part 3, specifies the Binary encoding. All references to FIPS PUB 128 herein apply to ANSI/ISO 8632, and where necessary will also cite in parentheses the particular reference location in ANSI/ISO 8632.
It is unclear in FIPS PUB 128 whether there should be a mandatory ordering of Metafile Descriptor elements (the grammar implies some). ANSI/ISO 8632 recommends such an ordering; METAFILE VERSION, METAFILE ELEMENT LIST, and METAFILE DESCRIPTION should be the first three elements, in that order.
The line types specified in table VIII of 3.2.2.1 have been registered by ISO, the International Standards Organization, for graphics registration, and are contained in the ISO Register of Graphical Items. In table VIII, the name of the line type is given, followed by the numeric value (the line type parameter) by which it is to be referenced. These values are the ISO-registered values.
This Application Profile contains two character sets in the Basic Set, ASCII and ANSI X3.134/2 ("Right Hand Part of Latin Alphabet Number 1"). The Basic Set also specifies the Hershey fonts as one of the basic font families. There is finally, the requirement that the requested character set be representable in the requested font. X3.134/2 is not fully representable in the digitized databases of the original public domain versions of the Hershey fonts. Those characters of X3.134/2 which are not contained in the original Hershey set should be rendered in a way that is consistent in style and metrics of the requested Hershey font. For example, the style and metrics of a Hershey version of the character "LOWER CASE A ACCENT GRAVE" should have an obvious relationship to those of "LOWER CASE A."
This problem does not arise in the other font families specified herein.
It is recognized that the Hershey fonts may not be of adequate quality for modern publication requirements.
View Less