From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc965.txt | 2905 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2905 insertions(+) create mode 100644 doc/rfc/rfc965.txt (limited to 'doc/rfc/rfc965.txt') diff --git a/doc/rfc/rfc965.txt b/doc/rfc/rfc965.txt new file mode 100644 index 0000000..b3340bc --- /dev/null +++ b/doc/rfc/rfc965.txt @@ -0,0 +1,2905 @@ +Network Working Group Lorenzo Aguilar +Request for Comments: 965 SRI International + December 1985 + + A Format for a Graphical Communication Protocol + + +STATUS OF THIS MEMO + + This paper describes the requirements for a graphical format on which + to base a graphical on-line communication protocol. The proposal is + an Interactive Graphical Communication Format using the GKSM session + metafile. Distribution of this memo is unlimited. + +ABSTRACT + + This paper describes the requirements for a graphical format on which + to base a graphical on-line communication protocol. It is argued that + on-line graphical communication is similar to graphical session + capture, and thus we propose an Interactive Graphical Communication + Format using the GKSM session metafile. + + We discuss the items that we believe complement the GKSM metafile as + a format for on-line interactive exchanges. One key application area + of such a format is multi-media on-line conferencing; therefore, we + present a conferencing software architecture for processing the + proposed format. We make this format specification available to those + planning multi-media conferencing systems as a contribution toward + the development of a graphical communication protocol that will + permit the interoperation of these systems. + + We hope this contribution will encourage the discussion of multimedia + data exchange and the proposal of solutions. At SRI, we stay open to + the exploration of alternatives and we will continue our research and + development work in this problem area. + +ACKNOWLEDGEMENTS + + The author wants to thank Andy Poggio of SRI who made many insightful + and valuable suggestions that trimmed and improved level U. His + expertise in multi-media communication systems and his encouragement + were a most positive input to the creation of this IGCF. Dave + Worthington of SRI also participated in the project discussions + involving this IGCF. Thanks are also due to Tom Powers, chairman of + ANSI X3H33, who opened this forum to the presentation of an earlier + version of this paper, thereby providing an opportunity for the + invaluable feedback of the X3H33 members. Jon Postel of ISI + recommended a number of changes that made this paper more coherent + and accessible. + + + + +Aguilar [Page 1] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Most of the work reported in this paper was sponsored by the U.S. + Navy, Naval Electronic Systems Command, Washington D.C., under + Contract No. N00039-83-K-0623. + +I. INTRODUCTION + + A. Use of a Graphical Communication Protocol + + In the field of computer communications, a protocol is a procedure + executed by two cooperating processes in order to attain a + meaningful exchange of information. A graphical communication + protocol is needed to exchange interactive vector graphics + information, possibly in conjunction with other information media + like voice, text, and video. Within this multi-media communication + environment, computer vector graphics plays a key role because it + takes full advantage of the processing capabilities of + communicating computers and human users, and thus it is far more + compact than digital images which are not generated from data + structures containing positional information. Vector graphical + communication trades intensive use of storage and processing, at + the communicating ends, in return for a low volume of exchanged + data, because workstations with graphical hardware exchange + graphics commands in conjunction with large data structures at the + transmitter and receivers. In this manner, the transmission of a + single command can produce extensive changes in the data displayed + at the sending and receiving ends. + + It is helpful to situate the aforesaid protocol at one of the + functional levels of the ISO Open Systems Interconnection + Reference Model [1]. Within such a model, a graphical protocol + functionality belongs primarily in the application level, though + some of it fits in the presentation level. We can distinguish the + following components of a communication protocol: + + a) a data format + b) rules to interpret transmitted data + c) state information tables + d) message exchange rules + + A format for a graphical protocol should provide the layout of the + transmitted data, and indicate how the formated data are + associated with interpretation rules. The choice of format + influences the state tables to be maintained for the correct + processing of the transmitted data stream. The graphical format + has a minor influence on the exchange rules, which should provide + for the efficient use of transmission capacity to transport the + data under such a format. Besides the graphical format, there are + + +Aguilar [Page 2] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + other aspects of a graphical protocol that determine state tables + and exchange rules. This paper concentrates in the data format, + and it does not discuss the message exchange. Nevertheless, we + discuss a simple software architecture for generating and + interpreting data streams written in our proposed format. Further, + we give an example of an application of a proposed format (in + Appendix B), and it illustrates the type of message exchanges that + are needed for establishing a communication session and exchanging + graphical information. + + Those in the computer communication field are well aware of the + importance of widely accepted protocols in order to achieve + meaningful communication. Those who need to implement interactive + graphical communications today are confronted with the lack of an + standard for computer graphics communication among application + programs. Nevertheless, we can use some of the work already done + by the computer graphics standard bodies. As a matter of fact, ISO + and ANSI have already appended, to the Graphical Kernel System + (GKS) standard, the GKSM session metafile specification that has + many of the features needed for an on-line graphical protocol. + + It is pertinent to mention an example of graphical communication + that illustrates the real-time nature of the interaction and also + illustrates the use of graphics in conjunction with other + information media. With audio-graphics conferencing, a group of + individuals at two or more locations can carry on an electronic + meeting. They can converse over voice channels and concurrently + share a graphics space on which they can display, point at, and + manipulate vector graphics pictures [2, 3, 4, 5, 6, 7]. + + The conference voice channels can be provided by a variety of + transmission technologies. The shared graphics space can be + implemented on workstations that display the pictures and permit + graphical interaction and communication with other locations. The + communication of operations upon pictures involves modifications + to the underlying data structures, but we are concerned with + graphical database updating only to the extent that such updating + supports the communication. + + In order to play out a recorded graphical session, we will need + indications of the rate at which the graphical elements must be + shown and the graphical operations recreated. We do not include + the means for indicating the timing of a session in a format + because our main purpose is to use it in mixed-media communication + environments. In these environments, the play-out timing must be + compatible across information media in order to coordinate them. + Therefore, we leave the timing mechanisms to conference-control + + +Aguilar [Page 3] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + modules. We also leave to conference control processes the manner + in which a conferee station emulates a graphical capability that + it lacks. One example is the representation of color in monochrome + displays. + + B. Relationship to Other Work + + There are a number of actual, and proposed, standards for graphics + information exchange. In the following, we explain the reasons + why, at present, none of them can be used as the basis of an + on-line protocol. As some of these standards evolve, however, some + may become suitable. Moreover, the experience gained with early + on-line graphics communication systems will provide insight into + the proper standard extensions to support more advanced systems. + Such insight could also be used to modify the format proposed in + this paper, which we consider an initial approach to the problem. + In the future, the format proposed in this paper could be replaced + by one of the aforesaid extended standards. + + The North American Presentation Level Protocol Syntax, NAPLPS, + specifies a data syntax and application semantics for one-way + teletext information dissemination and two-way videotex database + access and transaction services. The two-way videotex operational + model is based on the concept of a consumer and an information + provider or service operator. Because of this asymmetry, it is + assumed that almost all graphical information will flow from the + provider toward the consumer. In the reverse direction, the + consumer is expected to manipulate and transmit alphanumeric + information, for the most part. Although this standard includes + geometric drawing primitives, a user cannot directly modify shapes + drawn with the primitives. + + At present, NAPLPS does not include interaction concepts like + picture transformations or detectability, which are fundamental + for attaining a shared graphical workspace. Neither does it allow + key graphics input devices like mice, joysticks, stylus, rotating + balls, or light pens, which are needed for simple and efficient + editing of the shared workspace. + + We want to have user-to-user graphical communication that features + the level of sophistication and ease of interaction provided by + today's interactive graphics packages. Computer vector graphics + can provide both because its paradigm includes an application + program that keeps track of a very large number of possible + changes of state of the displayed picture. In addition, the + application drives a powerful graphics package, like GKS or ACM + Core. In the videotex paradigm, the provider application only + + +Aguilar [Page 4] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + allows limited changes to the displayed image, primarily database + retrieval requests. Also, the paradigm does not include a separate + graphics package. Both the graphics functionality and the data + format are collapsed into a coding specification, like NAPLPS. + + In this paper we are interested primarily in business and + industrial applications where there is a two-way, or multi-way, + flow of vector graphics information among the users. The users + will have workstations with substantial processing and storage + capacities, and high-resolution monitors; moreover, the + communication will be on a distributed architecture not depending + on a central server host, like the provider application host of + videotex. + + Currently, the videotex equipment at the consumer end consists of + inexpensive microprocessor-based decoders or personal computer + boards driving, in most cases, low-resolution standard TV sets and + personal computer displays. There is already affordable technology + to produce sophisticated decoders and high-resolution graphics + devices. The videotex standards need extensive revisions to take + advantage of these advances; in particular, they should consider + the receiving devices as capable of hosting a programmable + customer-application process. When this happens, videotex + protocols will be applicable to our intended problem areas [8]. + + The Computer Graphics Metafile [9] will become an international + and North American standard for graphics picture interchange in + the near future. However, the CGM, also referred as VDM, is a + picture-capture metafile that only records the final result of a + graphics session. It is not intended to record the + picture-creation process, which is fundamental for the interactive + applications that we are addressing. Moreover, the CGM is + presently aimed at a minimum support of GKS functionality. It will + be some time before the CGM will have some of the elements needed + for on-line interaction. If, after these additions, the CGM is + augmented for session capture, it would become a logical candidate + for a protocol format. + + Another future standard is the Computer Graphics Interface, CGI + also referred as VDI [10]. The CGI is a standard functional and + syntactical specification of the control and data exchange between + device-independent graphics software and one or more + device-dependent graphics device drivers. A major use of the CGI + is for the communication between an application host and a + graphics device, but the asymmetry between its intended + communicating ends hinders the use of CGI for our purposes. + + + +Aguilar [Page 5] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + As previously stated, we want to take advantage of intelligence + and storage at the communicating ends in order to achieve powerful + information-conveying effects using narrow-bandwidth channels. + This requires that the format we seek must have items for + communication between two applications. In contrast, the CGI + streams are processed by device-dependent drivers, rather than by + applications. The CGI specification does include application data + elements, but only to be stored in a metafile. These application + data elements are not interpreted by the drivers, but by + applications that read the metafile, some time after metafile + creation. + + Furthermore, the CGI has elements for obtaining graphical input, + as well as elements for inquiring graphics device capabilities, + characteristics, and states. Later, in Section III, we explain why + these two classes of elements are unnecessary for the + communication protocol we need. As the CGI evolves, it will + undergo significant changes, and, in the future, it may become a + very suitable kernel for the graphics protocol we seek. As a + matter of fact, the CGI will be the communication protocol between + graphical application hosts and graphics terminals. At SRI we are + tracking its evolution, and we are interested in defining a format + based on the CGI. + + Finally, the Initial Graphics Exchange Specification [11] is not + aimed at our primary area of interest. The IGES defines standard + file and language formats for storing and transmitting + product-definition data that can be used, in part, to generate + engineering drawings and other graphical representations of + engineering products. Besides the CAD orientation of IGES, the + graphical output function may be secondary to other goals like + transmitting numerical-control machine instructions. + +II. OPERATIONAL REQUIREMENTS AND USABILITY + + The main goal of this paper is to lay the groundwork for the + development of a vector graphics format to be used as a basis for an + on-line graphical communication protocol. We call such a format an + "interactive graphical communication format," or IGCF. In this + section we describe some operational requirements and usable + characteristics for an IGCF. + + A. Interoperation of Heterogeneous Systems + + A first functional requirement is that an IGCF must permit + communication among heterogeneous graphical systems differing both + in the hardware used and in the software of their graphics + + +Aguilar [Page 6] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + application interfaces. This is a fundamental for attaining + communication among similar graphical application programs running + on dissimilar hardware and using dissimilar graphics interface + packages. Some examples of such application programs are graphics + editors, CAD systems, and graphical database retrieval programs + communicating with other editors, CAD programs, and graphical + databases, respectively. + + B. Picture Capture + + A required characteristic of an IGCF is that it must be usable for + the exchange of static graphic pictures, i.e. for picture capture; + yet, it must not be restricted to final picture recording only. + There will be picture exchanges as part of the interactive + communication, and we anticipate the need to record the state of a + picture at some points during the on-line graphics engagement. We + foresee the creation of graphical IGCF libraries containing object + definitions and pictures for inclusion in new pictures. Since + metafiles have been used for a long time to capture pictures, + there is a strong motivation to base an IGCF on a metafile + standard in order to secure compatibility with a large number of + metafile sources and consumers. + + C. Prompt Transmission + + In some forms of interactive graphical communication, like + audiographics conferencing, it is critical to convey across users + the real-time nature of the interaction. This dictates that object + creations and manipulations be transmitted as they happen rather + than as a final result since a substantial part of the information + may be transmitted concurrently with the construction or operation + of an object, possibly through associated media like voice. Since + both construction and manipulation processes have to be + transmitted, there is a limit to the number of intermediate states + that can be economically transmitted. + + A third requirement is, therefore, that the IGCF elements provide + fine "granularity" to convey the dynamics of the constructions and + manipulations. We believe that it is sufficient that the IGCF have + basic construction elements like polygons, markers, polylines, and + text strings and that it transmit them only when they are + completed; i.e., it is not necessary to transmit partial + constructions of such elements. + + The problem for manipulations extends beyond an IGCF. Whereas we + know that an IGCF should include segment transformations, segment + highlighting and segment visibility on/off, the transmitter must + + +Aguilar [Page 7] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + decide how often to sample an on-going transformation and transmit + its current state. The choice of a sampling frequency will depend + on the available transmission bandwidth. + + D. Low Traffic Volume + + In many of the applications we envision, coordinate graphics will + be transmitted over narrow bandwidth channels, and thus it is + essential to minimize traffic. Accordingly, several requirements + are imposed on an IGCF to take advantage of the characteristics of + the graphics communication intercourse and architecture in order + to minimize traffic. + + An IGCF can help reduce traffic by including the basic geometric + objects from which so many other objects are built. Moreover, an + IGCF should permit the use of objects for the creation of more + complex objects; since reuse is very common, the result is a + reduction of traffic and storage cost. + + E. Preservation of Application Semantic Units + + A related requirement is that an IGCF must include elements to + represent graphical objects corresponding to real world entities + of the intended applications. For example, in a Navy application, + the entities of interest are carriers, submarines, planes, and the + like. We want to communicate such semantic units across systems + and to treat them as unitary objects because, in many + applications, communication is based on creating and operating + such units. If an IGCF has elements to represent such semantic + units, the communication traffic decreases because the entity + definitions can be transmitted only once and then reused, and + because the entities are manipulated as units rather than + separately manipulating their components. + + It turns out that there is a small set of primary operations that + can be applied to a graphical object, and an IGCF must have + elements representing such operations. In contrast to dumb + graphics terminals receiving screen refresh information from a + host, we foresee graphical communication taking place among + intelligent workstations that can exchange encoded operations, + interpret them, and apply them to objects stored locally. + + F. Transmission Batching + + We previously indicated the desirability of conveying to the human + users the real-time tempo of interactive graphics exchanges. + However, it is possible to do so without having to transmit + + +Aguilar [Page 8] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + immediately all IGCF elements. As a matter of fact, IGCF elements + should be divided into those causing a change on a displayed + picture and those that do not, although both classes may cause + changes to the stored graphical data structures. + + It is only necessary to transmit immediately those elements + causing a visible change on a displayed picture because they are + the ones whose reception and interpretation delivers information + to a human user. The second class of elements can be batched and + queued for transmission until one element of the first class is + submitted. We call the first class update Group-1, and the second, + update Group-2. + + The aforesaid division is quite important for packet + communications because each packet contains a hefty amount of + overhead control traffic. It is therefore mandatory to batch, into + a packet, as much client data as possible in order to reduce total + traffic. The batching units can be varied in size according to the + network traffic and response time of conference hosts. During + congested periods, the units may have to be increased, thus + lowering the number of messages, and then reduced when congestion + eases, thus increasing the number of messages. + + G. Simple Translation Between IGCF and User Interface + + According to the first requirement, an IGCF must permit the + interoperation of related heterogeneous graphics applications. + Such interoperation has, as an objective, the communication + between human users or between a human and a database. + Correspondingly, the interoperation involves a mapping between the + user interface commands and the IGCF elements. It is not advisable + to use the commands themselves as the IGCF elements; otherwise the + exchange would depend on the communicating systems, and every pair + of communicating systems would require an ad-hoc protocol. + + An additional usability characteristic is that there must be a + simple mapping between IGCF elements and the actions represented + by the user interface commands employed for graphical + communications. This simplicity is a must because every + communicating graphical system must have a translator that ideally + should be very simple. It seems that the inclusion of command + sequence delimiters in the IGCF helps the simplicity since the + delimiters permit keeping a smaller amount of state information + for processing an IGCF stream. + + We have verified the mapping from one set of commands for + audiographics conferencing to the IGCF proposed in this paper. The + + +Aguilar [Page 9] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + mapping from user interface commands to IGCF can be done in a + direct and efficient manner; on the other hand, the reverse + mapping, from IGCF to user interface commands, is a more difficult + task. We anticipate that, in order to improve performance, we will + have to map the IGCF elements to calls to lower level subroutines + implementing the user interface actions. Whereas such mapping is + conceptually no more complex than translating IGCF to the commands + themselves, it will require considerably more programming. + +III. ELEMENTS OF AN IGCF + + IGCF Element Classes + + In this section we list the classes of elements that we believe an + IGCF should have in order to exchange vector graphics under the + requirements of the previous section. The classes correspond to + the common function classes in computer graphics interfaces, and + each contains elements corresponding to interface primitives and + attributes. We do not list the elements for each class because + they are exemplified by the elements in the proposed IGCF. + + In the following list, two categories of functions are missing: + functions used to query the status of a graphics system, and input + functions. As a matter of fact, an IGCF only needs to have + elements representing actions that cause a change in the state of + the communicating graphical systems, and the inquire functions + obviously do not change their state. Even though an input function + executed at the transmitting end causes a local change, it is not + necessary to transmit the input command itself. The receivers only + need to get the data input, in IGCF representation, and they can + process the data in any manner, maybe simulating local input + actions. + + Control + + Elements for workstation: initialization, control and + transformation; and elements for normalization transformation. + (The normalization and workstation transformations can be used + to implement zooming.) + + Primitive attributes + + Elements for primitive, segment, and workstation attributes. + + Output primitives + + Elements for output primitives. + + +Aguilar [Page 10] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Segmentation + + Elements for basic segmentation and workstation independent + segment storage. + + Object manipulations can be implemented with segment + transformations. Object insertion can be implemented using + segment recall and segment visibility. Object deletion can be + implemented using segment deletion and segment visibility. + Object selection can use segment highlighting as feedback to + the user. + + Dynamics + + A considerable part of the graphical information exchanged + through an IGCF will be in the form of pointer movements over a + background picture. Pointer tracking is used to transmit points + sampled from a graphical pointer trace in order to reproduce, + at the receivers, the movement of the pointer at the sender + site. This can be done either by just moving the cursor or by + tracing its movement with a line. Rubber band echoes are used + to signal areas, routes, and scopes in a highly dynamic way. + These are indicated by an echo reference point and a feedback + point. + + Hierarchical object definitions + + The requirement for preserving application semantics dictated that + an IGCF include the means to represent objects that stand for + application entities, and to manipulate such entities as graphical + units. Furthermore, the low-traffic-volume requirement called for + the use of already existing objects for the creation of new ones. + + One way to meet the aforesaid requirements is by including in an + IGCF the means to represent object hierarchies. In such a + hierarchy an object is a set of output primitives associated with + a set of attribute values or a set of lower-level objects, each + associated with a composition of transformations [12]. + + Graphics segments can be used to implement objects in the lowest + level of a hierarchy. The definition of a higher-level object can + be represented by sequences of IGCF elements describing the + definition process. Such a definition can be done by instantiating + lower-level objects with specific transformation parameters. Thus + an IGCF must incorporate brackets to mark the beginning and end of + object definitions, object instantiations, and object + redefinitions. + + +Aguilar [Page 11] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + In order to complement the mechanism for object definition, an + IGCF must permit the use of a flexible alphabet for creating + object identifiers that ensure the uniqueness of an identifier in + a hierarchy. The construction of the object identifiers is not + part of an IGCF, an IGCF only has to represent the identifiers. + Further, an identifier has to be independent of a communication + session and a particular graphics system so that identifiers + created at a host during one session can be used, in other + sessions possibly involving other hosts, to recall the objects + they label. + + We also leave to the communicating systems the implementation of + mechanisms to resolve duplicate identifiers when merging two + hierarchies, created in different sessions. In this paper we shall + limit ourselves to the warning that segment numbers do not qualify + as identifiers because they depend on the session and state of the + system in which they are created. + + In addition to object definition and instantiation, an IGCF should + have elements representing operations on objects. The operations + so far identified are: transformation, deletion, display, + disappearance, expose, and hide. Expose is used to uncover objects + on a screen that are hidden by other objects; hide is used to + place an object behind others on a screen. + +IV. A PROPOSED IGCF + + A. Using the GKSM as a Basis + + An IGCF must be usable to transmit all graphical actions in a + conference session. This suggests to base an IGCF on a standard + session-capture graphics metafile, thus ensuring compatibility + with a large user population. We have based the proposed IGCF, + PIGCF, on the GKSM session-capture metafile specification because + GKSM contains many of the elements identified for an IGCF [14]. In + addition, the audit trail orientation of GKSM permits the + recording of interactive communication sessions for later play + out, and this is a feature that we anticipate will be frequently + used. + + The GKSM is a proper subset of our PIGCF and thus any graphical + system developed to handle the PIGCF, can read a GKSM metafile. + Conversely, the applications using the PIGCF should have an option + for constraining session recording only to the GKSM part, possibly + suppressing some session events. By doing so, we will be able to + ship a GKSM metafile to any correspondent who has GKSM + + + +Aguilar [Page 12] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + interpretation software. Alternatively, an application with a + GKSM interpreter but without an PIGCF interpreter can read a PIGCF + file interpreting only the GKSM part and ignoring the rest. + + Whereas the GKSM was specified for the GKS system, we believe that + the GKSM is a sound and general basis for all of our 2-D + applications. We feel that the GKSM specification is not parochial + to GKS systems but contains all the most useful items desired in a + metafile. In the future, we expect to tackle applications + requiring 3-D, like interactive repair and maintenance aids. When + GKS be augmented with 3-D capabilities [13], we will extend the + PIGCF with any necessary elements. + + We are aware that the GKSM specification is not part of the GKS + standard itself but is an appendix recommending such a metafile + format. Nevertheless, all the GKS vendor implementations that we + know of, at the present time, support GKSM metafile output and + interpretation. If this trend continues, as we expect, we will be + able to exchange graphical files with a large base of GKS + installations. There will indeed be many of them since GKS will be + adopted as an standard by ISO and by many national standard bodies + in the near future. + + B. Positional Information Coordinates + + Following the GKSM convention, the PIGCF positional information is + in normalized device coordinates, NDC. Thus the originator of a + conference must indicate the workstation window for the + conference. This window is the sub-rectangle of the NDC space + enclosing the area of interest for the conference. In most cases, + the participating workstations will take this window as their own. + However, the graphical systems should provide for the possibility + of a workstation choosing a different workstation window, which + may contain the conference window or just overlap it. Except for + special cases, a conference originator should not state a + conference workstation viewport. In this manner, each workstation + can display its workstation viewport in the most convenient + portion of the screen. + + There will be conferences where the participating workstations + will maintain the positional information in world coordinates, WC. + It might be necessary to reconstruct the world dimensions after + transmission because such dimensions have a relevant meaning for + the application, like sizes of components or distances. In this + case, a workstation will have to map from WC to NDC before + transmitting and from NDC to WC after receiving. At the outset, + the conference originator has to specify the world window and the + + +Aguilar [Page 13] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + NDC viewport used in the conference in order for the conferencing + workstations to do such mappings. These mappings could be done by + the presentation layer, in terms of the ISO Open Systems + Interconnection Reference Model, in a manner that is transparent + to the communicating application programs. + + Most often all workstations will have the same world windows and + NDC viewports. However, the graphical systems will provide for the + possibility of a workstation choosing a different window or + viewport, but such workstation will have to record the conference + ones for doing the aforesaid mappings. There are graphical + systems, like the ACM Core, that do not provide for a workstation + transformation. In such systems, the NDC viewport is considered to + be the workstation window for the aforesaid mappings. + + C. Layers of the PIGCF + + There are two levels in the PIGCF a lower level L and an upper one + U. The lower level L is just the GKSM metafile specification as + defined in Appendix E of the proposed GKS ANSI standard [14]. We + have excerpted most of Appendix E of [14] at the end of this RFC + as our Appendix A. All level L elements belong to the update + Group-1 except: SET DEFERRAL STATE, the output primitive attribute + elements, the workstation attribute elements, CLIPPING RECTANGLE, + CREATE SEGMENT, CLOSE SEGMENT, RENAME SEGMENT, SET SEGMENT + PRIORITY, and SET DETECTABILITY. + + The upper level U is those elements that we believe complement the + GKSM for general on-line graphical exchanges. This layering + conforms to the graphics metafile level-structure described in + Enderle et. al [15]. Under such structuring, an application + oriented metafile can be based on graphical metafiles. + + D. PIGCF Elements in the Level U + + The level U items are encoded as GKSM user item elements so that a + PIGCF file will conform to the GKSM metafile specification. + Accordingly, a PIGCF file will be a GKSM metafile in its entirety. + We use the same formatting conventions as the GKSM specification. + Those unfamiliar with these conventions should read the beginning + of the appendix. The following items belong to the second update + group: the two items for object definition, the two items for + object redefinition, the two items for object instantiation, the + two items for normalization transformation, SELECT COMPONENT, and + RECALL LIBRARY. The remaining items belong to the first update + group. + + + +Aguilar [Page 14] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Items for Object Definition + + BEGIN DEFINITION + + | 'GKSM 120' | L | + + Indicates beginning of object definition sequence + + END DEFINITION + + | 'GKSM 121' | L | I | + + Indicates end of object definition sequence. I(Nc): object + identifier ( N preceding c, i, r means an arbitrary number + of characters, integers, or reals.) Objects defined + interactively are made visible on the screen; i.e. they are + automatically instantiated. If only the definition is to be + kept but not the image, a DISAPPEAR item must follow. + + BEGIN REDEFINITION + + | 'GKSM 122' | L | I | + + Indicates beginning of object redefinition sequence + I(Nc): object identifier + + END REDEFINITION + + | 'GKSM 123' | L | + + Indicates end of object redefinition sequence + + Items for Object Instantiation + + BEGIN INSTANTIATION + + | 'GKSM 124' | L | I | + + Indicates beginning of object instantiation sequence + I(Nc): Object identifier + + END INSTANTIATION + + | 'GKSM 125' | L | + + Indicates end of object instantiation sequence + + + +Aguilar [Page 15] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Items for Object Manipulation + + TRANSFORM OBJECT + + | 'GKSM 126' | L | C | I | M | + + Apply transformation M to object I + C: number of characters in identifier + I(Nc): object id + M(6r): upper and center rows of a 3x3 matrix representing + a 2D homogeneous transformation [12]. + M 11 M 12 M 13 M 21 M 22 M 23 + + DELETE OBJECT + + | 'GKSM 127' | L | I | + + I(Nc): object identifier + + DISPLAY OBJECT + + | 'GKSM 128' | L | I | + + Turn on visibility of object I + I(Nc): object identifier + + DISAPPEAR OBJECT + + | 'GKSM 129' | L | I | + + Turn off visibility of object I + I(Nc): object identifier + + EXPOSE OBJECT + + | 'GKSM 130' | L | I | + + Redisplay object I on top of any overlapping objects + I(c): object identifier + + HIDE OBJECT + + | 'GKSM 131' | L | I | + + Redisplay object I behind any overlapping objects + I(c): object identifier + + + +Aguilar [Page 16] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + SELECT COMPONENT + + | 'GKSM 132' | L | I | P | + + Select component P of object I + I(c): object identifier + P(i): pick id of component + This is used to select a group of output primitives + identified by P in a segment associated with I. + + ERASE COMPONENT + + | 'GKSM 133' | L | I | P | + + Erase component P of object I + I(c): object identifier + P(i): pick id of component + + This erases a group of output primitives identified by P in + a segment associated with I. This element can be used only + within a REDEFINE OBJECT sequence. + + Items for Normalization Transformation + + SET WINDOW + + | 'GKSM 134' | L | W | + + Define boundaries of world window for normalization + transformation. + W(4r): limits of world window (XMIN, XMAX, YMIN, YMAX ) + + SET VIEWPORT + + | 'GKSM 135' | L | V | + + Define boundaries of NDC viewport for normalization + transformation. + V(4r): limits of NDC viewport (XMIN, XMAX, YMIN, YMAX ) + + + + + + + + + + +Aguilar [Page 17] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Items for Other Operations + + ABORT + + | 'GKSM 136' | L | + + Abort ongoing operation transmitted in PIGCF stream. This + provides the means to abort unwanted or erroneous + operations. Only the innermost operation of a nested + sequence is aborted; successive aborts can be used to get + out of several levels of operation nesting. + + POINTER TRACKING + + | 'GKSM 137' | L | T | P | + + Update graphical pointer position to P + T(i): 0 causes only cursor to be moved + 1 causes cursor movement to be traced with + a line + P(p): a point sampled from graphical pointer + movement trace + + + + + + + + + + + + + + + + + + + + + + + + + + + +Aguilar [Page 18] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + RUBBER BAND + + | 'GKSM 138' | L | T | P | + + Echo a rubber band of type T with given reference and + feedback points. The first occurrence of this item in a + sequence carries the coordinates of the echo reference + point. Subsequent occurrences carry updates to a pointer + position indicating an echo feedback point. + + T(i): echo type + ( 0 echo reference point; + > 0 echo feedback: + 1 = line, + 2 = rectangle, + 3 = circle ) + P(r): echo reference point (T = 0), + or echo feedback point (T > 0) + + The reference and feedback points are: + T = 1 - reference is one end of line, feedback is + other end. + T = 2 - reference is one corner of rectangle, feedback + is opposite corner. + T = 3 - reference is center of circle, feedback is + perimeter point. + + RECALL LIBRARY + + | 'GKSM 139' | L | F | + + Recall graphical library in file F + F(i): name of file containing library + + The graphical pictures in F and all their components become + available for use during the communication session. The + pictures are assumed to be recorded with the PIGCF, and + their components have to be displayed with DISPLAY OBJECT + elements or similar actions so that the pictures become + visible. + + + + + + + + + +Aguilar [Page 19] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +V. AN ARCHITECTURE FOR PIGCF PROCESSING + + This section presents an example software architecture for the + generation and interpretation of PIGCF in a multimedia conferencing + system using GKS as the underlying programmer's graphics interface. + This section should not be interpreted as a definitive statement of + such an architecture, but only as an exercise to illustrate how the + format proposed in this paper fits within the overall framework of a + conferencing system. Choosing GKS simplifies the example + architecture; nevertheless, other graphics packages can be used by + adding, to the architecture, the modules to interpret and generate + the PIGCF level L items. + + Figure 1 shows the major software modules charged with graphics + interaction and display at a conferencing workstation. This is a + familiar programmer's view of the graphics pipeline. A conferencing + application program updates data structures and uses + device-independent graphics services through a language binding. + These services, in turn, use device-dependent graphics services that + call on device drivers to accept input and to present graphic + pictures. The application performs numerous other functions for + conference management and control of other media streams, but we need + not consider them in this example. + + In Figure 2, the basic graphics pipeline has been augmented with the + software modules involved in the generation, transmission, reception, + and interpretation of PIGCF streams. The application has a module for + interpreting the lower and higher levels of PIGCF and one for + generating the upper level U. The device-independent graphics + services include modules for generating and interpreting the lower + level, L. This reflects the current practice of including the + generation and interpretation functions in the graphics package. + There is also a module that transmits the outgoing PIGCF streams to + remote work stations. Similarly, there is a module that receives + incoming streams from remote stations. In actual practice, the + transmit and receive modules are decomposed into several processes + implementing a layered protocol architecture. A process receives both + levels of PIGCF and writes them into a conference record metafile for + future use. A router process receives and forwards PIGCF traffic from + and to the modules previously referred. This router is likely to be + replaced by independent communication interfaces between pairs of + modules exchanging PIGCF. + + The thick arrows show the flow of outgoing PIGCF, whereas the thin + arrows show the incoming PIGCF flow. We first follow the outgoing + path, starting at the application. The application processes local + user actions which are transformed into data structure updates, level + + +Aguilar [Page 20] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + U PIGCF elements, and executions of device independent graphics + subroutines that, among other things, generate level L PIGCF (GKSM) + elements. + + The router merges both level streams according to generation order + and sends them to the local copy of the conference record and to the + transmission module. The latter batches Group-2 PIGCF items until it + receives a Group-1 item. It also timestamps the PIGCF stream to + synchronize its play-back, at the receiver, with the play-back of + other media information. The PIGCF may be separated into traffic + categories transmitted over diverse communication facilities + according to the transport services required by the categories, for + example, real-time service for pointer updates, highly reliable + transmission for new object definitions, or low-priority service for + graphical library transfers. Finally, the transmit module must + acknowledge the reception of incoming PIGCF, and of other media + traffic as well. + + The receive module is the entry point for incoming PIGCF streams that + may come within diverse traffic categories requiring merging. It + checks the timestamps for synchronizing PIGCF items with related data + in other media, for example, voice. It is possible to include here a + high-level error-correction function that validates the received + streams using state and context information about PIGCF syntax and + semantics. The receive module passes the streams to the router which + forwards them to three processes: It sends level L items to the GKSM + interpreter which produces the corresponding changes on the displayed + picture; it sends level L and level U items to the conference record, + as well as to the PIGCF interpretation code in the application. The + level U items cause updates to both the data structures modeling + object hierarchies, and the pictorial representation of the + hierarchies, through the execution of graphics services. U items also + update graphics cursors and may recall new graphics libraries. The + application must process level L items because they could indicate + updates to the data structures; this happens if, for example, the + structures record attribute value information for the object + hierarchies. The application coordinates these actions with other + media effects according to the timestamps. Conference record + play-back is done in off-line mode. Record items are received by the + router and thereafter processed similarly to incoming PIGCF. + + + + + + + + + +Aguilar [Page 21] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + +------------+ +-------------+ + |APPLICATION | | OTHER | + | DATA | | MEDIA | + |STRUCTURES | |-------------| + +-----|------+ | CONFERENCE | + |----------> | APPLICATION | + | GRAPHICS | + |----------> | | + +-----|------+ | | + | LANGUAGE | +-------------+ + | BINDING | + +-----|------+ +-------------+ + |----------> | DEVICE- | + +------------+ | INDEPENDENT | + | DEVICE | | GRAPHICS | + | DEPENDENT | <---> | SERVICES | + | GRAPHICS | | | + | SERVICES | | | + +-----|------+ | | + | | | + v | | + +------------+ | | + | DEVICE | | | + | DRIVERS | | | + +------------+ +-------------+ + + FIGURE 1 - THE BASIC GRAPHICS PIPELINE + IN A CONFERENCING SYSTEM + + + + + + + + + + + + + + + + + + + + + +Aguilar [Page 22] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + ++------------+ +------------+ +------------------+ +|APPLICATION | | OTHER | | TRANSMIT | +| DATA | | MEDIA | | ACK |=> +| STRUCTURES | |------------| +-----+ | SEPARATE TRAFFIC |=> ++-----|------+ | CONFERENCE | | |===> | BATCHING |=> + |---------->|APPLICATION | | | | TIMESTAMPING | + | GRAPHICS | | | +------------------+ + |---------->|------------| | | + | | PIGCF L, U | <---| | +------------------+ ++-----|------| | INTERPRETER| | | | RECEIVE | +| LANGUAGE | +------------+ | R | | MERGE TRAFFIC |<- +| BINDING | | PIGCF U |===> | O | <---| CHECK TIMESTAMPS |<- ++-----|------+ | GENERATOR | | U | | ERROR CORRECTION |<- + | +------------+ | T | | | + ------------------| | E | +------------------+ ++------------+ +-----V------+ | R | +| DEVICE | | DEVICE | | | +------------------+ +| DEPENDENT | |INDEPENDENT | | |====>| | +| GRAPHICS |<-->| GRAPHICS | | |---->| CONFERENCE | +| SERVICES | | SERVICES | | | | RECORD | +| | | | | | | | ++-----|------+ |------------| | | +------------------+ + | | GKSM | | | + v | INTERPRETER|<--- | | <--- INCOMING PIGCF ++------------+ +------------+ | | +| DEVICE | | GKSM | | | ===> OUTGOING PIGCF +| DRIVERS | | GENERATOR |===> | | ++------------+ +------------+ +-----+ + +FIGURE 2 - A CONFERENCING SOFTWARE ARCHITECTURE FOR PROCESSING PIGCF + +VI. CONCLUSIONS + + Teleconferencing and other multi-media applications will be part of + the communication resources available to organizations in the near + future. This will prompt computer graphics and computer communication + practitioners to address the issue of application-to-application + graphics communication. A key element of the issue is a protocol, and + a key component of the protocol is a data format. We have presented + the operational requirements for such a protocol and have proposed a + format that fulfills these requirements. + + At present, none of the existing or emerging graphics standards can + be used as the needed protocol or as a format for the protocol, but + this may change as the standards evolve. We are monitoring the + standards development and will study the use of some of them as a + format basis, in particular the CGI. Nevertheless, the computer + + +Aguilar [Page 23] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + communication community badly needs experience with multi-media + conferencing implementations. In order for these applications to + happen, one can base a graphics communication protocol on an official + or on a de-facto standard that is likely to gain wide use thus + assuring interoperability with a broad user base. We believe that, + by using the GKSM session metafile, we are moving in the proper + direction. + + Planning the software architecture for generating and interpreting + the proposed PIGCF has brought up some problems we will confront as + we continue our work toward the development of a complete graphics + protocol. This is being done as part of the SRI on-going program in + multimedia communications. Within this program, we are implementing + a simple multi-media conferencing prototype and will design a more + complete one. The experience from both exercises will be a valuable + input to the protocol architecture design. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Aguilar [Page 24] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +APPENDIX A + + Excerpt from "Draft Proposal: Graphical Kernel System" [14] + + E.2 Metafile Based on ISO DIS7942 + + This metafile may be categorized as one which aims to provide a + means of recording the exact sequence of function calls made to + GKS. Its functional capability covers the entire range of GKS + output functions, from level m to level 2. It is, therefore, + suitable for applications where the individual graphics actions + need to be 'played back', perhaps with selective graphical editing + being done by the interpreter. + + Two encodings have been specified for this metafile. One encoding + is inefficient for many applications. The second allows an + unspecified binary format. The remainder of this IGCF appendix + gives full details of these metafile structures and encodings. + + E.2.1 File Format and Data Format + + The GKS metafile is built up as a sequence of logical data + items. The file starts with a file header in fixed format which + describes the origin of the metafile (author, installation), + the format of the following items, and the number + representation. The file ends with an end item indicating the + logical end of the file. In between these two items, the + following information is recorded in the sense of an audit + trail: + + a) workstation control items and message items; + + b) output primitive items, describing elementary + graphics objects; + + c) attribute information, including output primitive + attributes; segment attributes, and workstation + attributes; + + d) segment items, describing the segment structure and + dynamic segment manipulations; + + e) user items. + + + + + + +Aguilar [Page 25] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + The overall structure of the GKS metafile is as follows: + + FILE: |file |item|---|item|---|end | + |header| 1 | | i | |item| + + ITEM: |item |item data record| + |header | | + + ITEM |'GKSM' |identification|length of item data| + + HEADER: |optional| number | in bytes | + + All data items except the file header have an item header + containing: + + a) the character string 'GKSM' (optional) which is + present to improve legibility of the file and to + provide an error control facility; + + b) the item type identification number which indicates + the kind of information that is contained in the + item; + + c) the length of the item data record. + + The lengths of these fields of the item header are + implementation dependent and are specified in the file header. + The content of the item data record is fully described below + for each item type. + + The metafile contains characters, integer numbers, and real + numbers marked (c), (i), (r) in the item description. + Characters in the metafile are represented according to ISO 646 + and ISO 2022. Numbers will be represented according to ISO 6093 + using format F1 for integers and format F2 for reals. (Remark: + Formats F1 and F2 can be written and read via FORTRAN formats I + and F respectively.) + + Real numbers describing coordinates and length units are stored + as normalized device coordinates. The workstation + transformation, if specified in the application program for a + workstation writing a metafile of this format, is not performed + but WORKSTATION WINDOW and WORKSTATION VIEWPORT are stored in + data items for later usage. Real numbers may be stored as + integers. In this case transformation parameters are specified + in the file header to allow proper transformation of integers + into normalized device coordinates. + + +Aguilar [Page 26] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + For reasons of economy, numbers can be stored using an internal + binary format. As no standard exists for binary number + representation, this format limits the portability of the + metafile. The specification of such a binary number + representation is outside the scope of this document. + + When exchanging metafiles between different installations, the + physical structure of data sets on specific storage media + should be standardized. Such a definition is outside the scope + of this standard. + + E.3 Generation of Metafiles + + Table E1 contains a list, by class, of all GKS functions which + apply to workstations of category MO, and their effects on this + GKSM. In the table, GKSM-OUT is a workstation identifier + indicating a workstation writing a metafile of this format. + + The concepts of clipping rectangle and clipping indicator are + encapsulated in one metafile item which specifies a clipping + rectangle. This item is written to the metafile on activate + workstation with the values (0, 1, 0, 1), if the clipping + indicator is OFF, or the viewport of the current normalization + transformation, if the clipping indicator is ON. If the viewport + of the current normalization transformation is redefined or a + different normalization transformation is selected when the + clipping indicator is ON, a further clipping rectangle item is + written. If the clipping indicator is changed to OFF, a clipping + rectangle item (0, 1, 0, 1) is written. If the clipping indicator + is changed to ON, an item containing the viewport of the current + normalization transformation is written. This is analogous to the + handling of clipping in segments (see 4.7.6 [14]). + + +GKS functions which apply to workstations GKSM item created +of category MO or effect +======================================================================== + +Control functions + +OPEN WORKSTATION (GKSM-OUT,...) - (file header) + 1 (CONDITIONAL) +CLOSE WORKSTATION (GKSM-OUT) 0 (end item) +ACTIVATE WORKSTATION (GKSM-OUT) (61, 21-44) + ensure attributes + current; + enable output + + +Aguilar [Page 27] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +DEACTIVATE WORKSTATION (GKSM-OUT) disable output +CLEAR WORKSTATION (GKSM-OUT,...) 1 + 2 +REDRAW ALL SEGMENTS ON WORKSTATION (GKSM-OUT) +UPDATE WORKSTATION (GKSM-OUT,...) 3 +SET DEFERRAL STATE (GKSM-OUT,...) 4 +MESSAGE (GKSM-OUT,...) 5 (message) +ESCAPE 6 +________________________________________________________________________ + +Output Primitives + +POLYLINE 11 +POLYMARKER 12 +TEXT 13 +FILL AREA 14 +CELL ARRAY 15 +GENERALIZED DRAWING PRIMITIVE 16 +________________________________________________________________________ + +Output Attributes + +SET POLYLINE INDEX 21 +SET LINETYPE 22 +SET LINEWIDTH SCALE FACTOR 23 +SET POLYLINE COLOUR INDEX 24 +SET POLYMARKER INDEX 25 +SET MARKER TYPE 26 +SET MARKER SIZE SCALE FACTOR 27 +SET POLYMARKER COLOUR INDEX 28 +SET TEXT INDEX 29 +SET TEXT FONT AND PRECISION 30 +SET CHARACTER EXPANSION FACTOR 31 +SET CHARACTER SPACING 32 +SET TEXT COLOUR INDEX 33 +SET CHARACTER HEIGHT 34 +SET CHARACTER UP VECTOR 34 +SET TEXT PATH 35 +SET TEXT ALIGNMENT 36 +SET FILL AREA INDEX 37 +SET FILL AREA INTERIOR STYLE 38 +SET FILL AREA STYLE INDEX 39 +SET FILL AREA COLOUR INDEX 40 + +SET PATTERN SIZE 41 +SET PATTERN REFERENCE POINT 42 + + + +Aguilar [Page 28] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +SET ASPECT SOURCE FLAGS 43 +SET PICK IDENTIFIER 44 +________________________________________________________________________ + +Workstation Attributes + +SET POLYLINE REPRESENTATION (GKSM-OUT,...) 51 +SET POLYMARKER REPRESENTATION (GKSM-OUT,...) 52 +SET TEXT REPRESENTATION (GKSM-OUT,...) 53 +SET FILL AREA REPRESENTATION (GKSM-OUT,...) 54 +SET PATTERN REPRESENTATION (GKSM-OUT,...) 55 +SET COLOUR REPRESENTATION (GKSM-OUT,...) 56 +________________________________________________________________________ + +Transformation Functions + +SET WINDOW of current normalization 34, 41, 42 +transformation +SET VIEWPOINT of current normalization 61, 34, 41, 42 +transformation +SELECT NORMALIZATION TRANSFORMATION 61, 34, 41, 42 +SET CLIPPING INDICATOR 61 +SET WORKSTATION WINDOW (GKSM-OUT,...) 71 +SET WORKSTATION WINDOW VIEWPORT (GKSM-OUT,...) 72 + +Note: item 61 (CLIPPING RECTANGLE) is described more fully in E.2.2. + +Note: When the current normalization transformation is altered, items +corresponding to attributes containing coordinate information are sent +(items 34, 41, and 42). +________________________________________________________________________ + +Segment Functions + +CREATE SEGMENT 81 +CLOSE SEGMENT 82 +RENAME SEGMENT 83 +DELETE SEGMENT 84 + +DELETE SEGMENT FROM WORKSTATION (GKSM-OUT,...) 84 +ASSOCIATE SEGMENT WITH WORKSTATION 81, (21-44), (11-16), +(GKSM-OUT,...) (61), 82 +COPY SEGMENT TO WORKSTATION (GKSM-OUT,...) (21-44), (11-16), (61) + +INSERT SEGMENT (21-44), (11-16), (61) +________________________________________________________________________ + + + +Aguilar [Page 29] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +Segment Attributes + +SET SEGMENT TRANSFORMATION 91 + +SET VISIBILITY 92 +SET HIGHLIGHTING 93 +SET SEGMENT PRIORITY 94 +SET DETECTABILITY 95 +________________________________________________________________________ + +Metafile Functions + +WRITE ITEM TO GKSM > 100 +________________________________________________________________________ + + E.4 Interpretation of Metafiles + + E.4.1 Introduction + + The interpretation of metafiles in GKS is described in 4.9 + [14]. The effects of INTERPRET ITEM for all types of metafile + item are described in the following sections. Items are grouped + by class of functionality. + + E.4.2 Control Items + + Interpretation of items in this class is described under the + definitions of each item in E.5. ([14] reads "E.2.4" instead of + "E.5" which we believe is an error). + + E.4.3 Output Primitives + + Interpretation of items in this class generates output + corresponding to the primitive functions, except that + coordinates of points are expressed in NDC. Primitive + attributes bound to primitives are those which have originated + from interpretation of primitive attribute items in this + particular metafile (see E.4.4). + + E.4.4 Output Primative Attributes + + Interpretation of items in this class sets values for use in + the display of primitives subsequently originating from this + particular metafile (see E.4.3). No changes are made to entries + in the GKS state list. + + + + +Aguilar [Page 30] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + E.4.5 Workstation Attributes + + Interpretation of items in this class has the same effect as + invocation of the corresponding GKS functions shown in Table + E1. The GKS functions are performed on all active workstations. + + E.4.6 Transformations + + Interpretation of a clipping rectangle item sets values for use + in clipping output primitives subsequently originating from + this particular metafile. No changes are made to entries in the + GKS state list. Interpretation of other items in this class + (WORKSTATION WINDOW and WORKSTATION VIEWPORT) causes the + invocation of the corresponding GKS functions on all active + workstations. + + E.4.7 Segment Manipulation + + Interpretation of items in this class has the same effect as + invocation of the corresponding GKS functions shown in Table + E1. (Item 84 causes an invocation of DELETE SEGMENT.) + + E.4.8 Segment Attributes + + Interpretation of items in this class has the same effect as + invocation of the corresponding GKS functions shown in Table + E1. + + E.5 Control Items + + FILE HEADER + + | GKSM | N | D | V | H | T | L | I | R | F | RI | ZERO | ONE | + +All fields in the file header item have fixed length. Numbers are +formated according to ISO 6093 - Format F1. + +General Information: + +GKSM 4 bytes containing string 'GKSM' +N 40 bytes containing name of author/installation +D 8 bytes date (year/month/day, e.g., 79/12/31) +V 2 bytes version number: the metafile described here has + version number 1 +H 2 bytes integer specifying how many bytes of the string 'GKSM' + are repeated at the beginning of each record. + Possible values: 0, 1, 2, 3, 4 + + +Aguilar [Page 31] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +T 2 bytes length of item type indicator field +L 2 bytes length of item data record length indicator field +I 2 bytes length of field for each integer in the + item data record (applied to all data marked (i) + in the item description) +R 2 bytes length of field for each real in the item data record + (applies to all data marked (r) in the item + description). + +Specification of Number Representation: + +F 2 bytes Possible values: 1, 2. This applies to all data + in the items marked (i) or (r) and to item type + and item data record length: + 1: all numbers are formatted according to ISO 6093 + 2: all numbers (except in the file header) are + stored in an internal binary format +RI 2 bytes Possible values: 1, 2. This is the number + representation for data marked (r): + 1 = real, 2 = integer +ZERO 11 bytes integer equivalent to 0.0, if RI = 2 +ONE 11 bytes integer equivalent to 1.0, if RI = 2 + + After the file header, which is in fixed format, all values in + the following items are in the format defined by the file + header. For the following description, the setting: + + H = 4; T = 3; F = 1 + + is assumed. In addition to formats (c), (i) and (r), which are + already described, (p) denotes a point represented by a pair of + real numbers (2r). The notation allows the single letter to be + preceded by an expression, indicating the number of values of + that type. + + {Explanatory comments have been added to some item + specifications; these are not part of the GKS Appendix E and + they are enclosed in braces {}. A complete definition of the + generation and interpretation of the GKSM items is given by the + definition of the corresponding GKS functions [14].} + + END ITEM + + | 'GKSM 0' | L | + + Last item of every GKS Metafile. Sets condition for the error. + + + +Aguilar [Page 32] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + CLEAR WORKSTATION + + | 'GKSM 1' | L | C | + + Requests CLEAR WORKSTATION on all active workstations. + + C(i): clearing control flag + (0 = CONDITIONAL, 1 = ALWAYS) + + REDRAW ALL SEGMENTS ON WORKSTATION + + | 'GKSM 3' | L | R | + + Requests UPDATE WORKSTATION on all active workstations. + + R(i): regeneration flag + (0 = PERFORM, 1 = SUSPEND) + + DEFERRAL STATE + + | 'GKSM 4' | L | D | R | + + Requests SET DEFERRAL STATE on all active workstations. + + D(i): deferral mode + (0 = ASAP, 1 = BNIG, 2 = BNIL, 3 = ASTI) + + R(i): implicit regeneration mode + (0 = ALLOWED, 1 = SUPPRESSED) + + {This item provides control over the occurrence of the visual + effect of GKS functions in order to optimize the use of + workstation capabilities according to application needs.} + + MESSAGE + + | 'GKSM 5' | L | N | T | + + Requests MESSAGE on all active workstations. + N(i): number of characters in string + T(Nc): string with N characters. + + {The message is not part of a metafile output primitives; the + message is only for interpretation by workstation operators.} + + + + + +Aguilar [Page 33] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + ESCAPE + + | 'GKSM 6' | L | FI | L | M | I | R | + + Requests ESCAPE + + FI(i): function identifier + L(i): length of integer data in data record + M(i): length of real data in data record + I(Li): integer data + R(Mr): real data. + + {This item permits the invocation of a specific non-standard + escape function FI. The execution of the function with the + given parameters must not alter the GKS state list nor produce + geometrical output.} + + E.6 Items for Output Primitives + + POLYLINE + + | 'GKSM 11' | L | N | P | + + N(i): number of points of the polyline + P(Np): list of points + + POLYMARKER + + | 'GKSM 12' | L | N | P | + + N(i): number of points + P(Np): list of points. + + TEXT + + | 'GKSM 13' | L | P | N | T | + + P(p): starting point of character string + N(i): number of characters in string T + T(Nc): string with N characters from the set of ISO 646 + + FILL AREA + + | 'GKSM 14' | L | N | P | + + N(i): number of points + P(Np): list of points. + + +Aguilar [Page 34] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + CELL ARRAY + + | 'GKSM 15' | L | P | Q | R | N | M | CT | + + P(p),Q(p),R(p): coordinates of corner points of pixel array + (P and Q are the images of the points P and + Q specified in the function CELL ARRAY and + R is another corner) + M(i): number of rows in array + N(i): number of columns in array + CT(MNi): array of colour indices stored row by row + + {This item permits passing raster images to GKS. The raster + image is defined by the colour index matrix CT, and its World + Coordinate position given by points P and Q.} + + GENERALIZED DRAWING PRIMITIVE + + | 'GKSM 16' | L | GI | N | P | L | M | I | R | + + GI(i): GDP identifier + N(i): number of points + P(Np): list of points + L(i): length of integer data in data record + M(i): length of real data in data record + I(Li): integer data + R(Mr): real data. + + {This item provides a standard way for drawing additional + non-standard output primitives. The generalized drawing + primitive GI is drawn according to the point list P and the + data record in I and R.} + + E.7 Items for Output Primitive Attributes + + POLYLINE INDEX + + | 'GKSM 21' | L | LT | + + LT(i): linetype + + + + + + + + + +Aguilar [Page 35] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + LINEWIDTH SCALE FACTOR + + | 'GKSM 23' | L | LW | + + LW(r): linewidth scale factor + + {In GKS, the line width is not affected by GKS transformations. + However, the effective line width is calculated as the product + of the nominal line width times the line width scale factor in + effect when a line is drawn.} + + POLYLINE COLOUR INDEX + + | 'GKSM 24' | L | CI | + + CI(i): polyline colour index + + POLYMARKER INDEX + + | 'GKSM 25' | L | I | + + I(i): polymarker index + + MARKER TYPE + + | 'GKSM 26' | L | MT | + + MT(i): marker type + + MARKER SIZE SCALE FACTOR + + | 'GKSM 27' | L | MS | + + MS(r): marker size scale factor + + {In GKS, the marker size is not affected by GKS + transformations. However, the effective marker size is + calculated as the product of the nominal marker size times the + marker size scale factor in effect when a marker is drawn.} + + POLYMARKER COLOUR INDEX + + | 'GKSM 28' | L | CI | + + CI(i): polymarker colour index + + + + +Aguilar [Page 36] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + TEXT INDEX + + | 'GKSM 29' | L | I | + + I(i): text index + + TEXT FONT AND PRECISION + + | 'GKSM 30' | L | F | P | + + F(i): text font + P(i): text precision + (0 = STRING, 1 = CHAR, 2 = STROKE) + + CHARACTER EXPANSION FACTOR + + | 'GKSM 31' | L | CEF | + + CEF(r): character expansion factor + + {This item allows the manipulation of the width/height of the + character body. The width of the character body is scaled by + the CEF factor.} + + CHARACTER SPACING + + | 'GKSM 32' | L | CS | + + CS(r): character spacing + + TEXT COLOUR INDEX + + | 'GKSM 33' | L | CI | + + CI(i): text colour index + + + + + + + + + + + + + + +Aguilar [Page 37] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + CHARACTER VECTORS + + | 'GKSM 34' | L | CH | CW | + + CH(2r): character height vector + CW(2r): character width vector + + Note: These vectors are the height and width vectors described + in 4.4.5 of [14]. + + {The character height vector is parallel to the character up + vector and has a length equal to character height. The + character height specifies the height of a capital letter. The + character width vector is perpendicular to the height vector, + in the direction of the character baseline, and has the same + length.} + + TEXT PATH + + | 'GKSM 35' | L | P | + + P(i): text path + (0 = LEFT, 1 = RIGHT, 2 = UP, 3 = DOWN) + + TEXT ALIGNMENT + + | 'GKSM 36' | L | H | V | + + H(i): horizontal character alignment + (0 = NORMAL, 1 = LEFT, 2 = CENTRE, 3 = RIGHT) + V(i): vertical character alignment + (0 = NORMAL, 1 = TOP, 2 = CAP, 3 = HALF, 4 = BASE, + 5 = BOTTOM) + + FILL AREA INDEX + + | 'GKSM 37' | L | I | + + I(i): fill area index + + FILL AREA INTERIOR STYLE + + | 'GKSM 38' | L | S | + + S(i): fill area interior style + (0 = HOLLOW, 1 = SOLID, 2 = PATTERN, 3 = HATCH) + + + +Aguilar [Page 38] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + FILL AREA STYLE INDEX + + | 'GKSM 39' | L | SI | + + SI(i): fill area style index + + FILL AREA COLOUR INDEX + + | 'GKSM 40' | L | CI | + + CI(i): fill area colour index + + PATTERN SIZE + + | 'GKSM 41' | L | PW | PH | + + PW(2r): pattern width vector + PH(2r): pattern height vector + + {One style for filling areas is with a pattern of color cells. + Such a pattern is defined by an array of color indices which is + mapped into a pattern rectangle with dimensions given by PW and + PH.} + + PATTERN REFERENCE POINT + + | 'GKSM 42' | L | P | + + P(p): reference point + + {One style for filling areas is with a pattern of color cells. + Such a pattern is defined by an array of color indices which is + mapped into a pattern rectangle whose lower left corner is + given by P.} + + + + + + + + + + + + + + + +Aguilar [Page 39] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + ASPECT SOURCE FLAGS + + | 'GKSM 43' | L | F | + + F(13i): aspect source flags + (0 = BUNDLED, 1 = INDIVIDUAL) + + {An application can set an output primitive attribute to either + bundled or individual. Bundled attributes are + workstation-dependent, their binding is delayed, and their + values can change dynamically. Individual attributes are global + attributes, they are bound immediately, and their value is + static and cannot be manipulated.} + + PICK IDENTIFIER + + | 'GKSM 44' | L | P | + + P(i): pick identifier + + E.8 Items for Workstation Attributes + + POLYLINE REPRESENTATION + + | 'GKSM 51' | L | I | LT | LW | CI | + + I(i): polyline index + LT(i): linetype number + LW(r): linewidth scale factor + CI(i): polyline colour index + + POLYMARKER REPRESENTATION + + | 'GKSM 52' | L | I | MT | MS | CI | + + I(i): polymarker index + MT(i): marker type + MS(r): marker size scale factor + CI(i): polymarker colour index + + + + + + + + + + +Aguilar [Page 40] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + TEXT REPRESENTATION + + | 'GKSM 53' | L | I | F | P | CEF | CS | CI | + + I(i): text index + F(i): text font + P(i): text precision + (0 = STRING, 1 = CHAR, 2 = STROKE) + CEF(r): character expansion factor + CS(r): character spacing + CI(i): text colour index + + FILL AREA REPRESENTATION + + | 'GKSM 54' | L | I | S | SI | CI | + + I(i): fill area index + S(i): fill area interior style + (0 = HOLLOW, 1 = SOLID, 2 = PATTERN, 3 = HATCH) SI(i): fill + area style index + CI(i): fill area colour index + + PATTERN REPRESENTATION + + | 'GKSM 55' | L | I | N | M | CT | + + I(i): pattern index + N(i): number of columns in array* + M(i): number of rows in array + CT(MNi): table of colour indices stores row by row + + {* The ANSI document reads "area" instead of "array".} + + {One style for filling areas is with a pattern of color cells. + Such a pattern is defined by a pattern representation.} + + COLOUR REPRESENTATION + + | 'GKSM 56' | L | CI | RGB | + + CI(i): colour index + RGB(3r): red, green, blue intensities + + + + + + + +Aguilar [Page 41] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + E.9 Items for Transformations + + CLIPPING RECTANGLE + + | 'GKSM 61' | L | C | + + C(4r): limits of clipping rectangle (XMIN, XMAX, YMIN, YMAX) + + WORKSTATION WINDOW + + | 'GKSM 71' | L | W | + + W(4r): limits of workstation window (XMIN, XMAX, YMIN, YMAX) + + {GKS includes a workstation transformation that maps a + rectangle of the NDC space (a workstation window) into a + rectangle of the device coordinate space (a workstation + viewport).} + + WORKSTATION VIEWPORT + + | 'GKSM 72' | L | V | + + V(4r): limits of workstation viewport (XMIN, XMAX, YMIN, YMAX) + + E.10 Items for Segment Manipulation + + CREATE SEGMENT + + | 'GKSM 81' | L | S | + + S(i): segment name + + CLOSE SEGMENT + + | 'GKSM 82' | L | + + indicates end of segment + + RENAME SEGMENT + + | 'GKSM 83' | L | SO | SN | + + SO(i): old segment name + SN(i): new segment name + + + + +Aguilar [Page 42] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + DELETE SEGMENT + + | 'GKSM 84' | L | S | + + S(i): segment name + + E.11 Items for Segment Attributes + + SET SEGMENT TRANSFORMATION + + | 'GKSM 91' | L | S | M | + + S(i): segment name + M(6r): transformation matrix + upper and center rows of a 3x3 matrix representing + a 2D homogeneous transformation [9] + M 11 M 12 M 13 M 21 M 22 M 23 + + {This differs from the ANSI X3.124 Jan. 5 1984 document, in the + matrix elements indicated. We believe there is an error in such + document.} + + SET VISIBILITY + + | 'GKSM 92' | L | S | V | + + S(i): segment name + V(i): visibility + (0 = VISIBLE, 1 = INVISIBLE) + + SET HIGHLIGHTING + + | 'GKSM 93' | L | S | H | + + S(i): segment name + H(i): highlighting + (0 = NORMAL, 1 = HIGHLIGHTED) + + SET SEGMENT PRIORITY + + | 'GKSM 94' | L | S | P | + + S(i): segment name + P(r): segment priority + + + + + +Aguilar [Page 43] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + SET DETECTABILITY + + | 'GKSM 95' | L | S | D | + + S(i): segment name + D(i): detectability + (0 = UNDETECTABLE, 1 = DETECTABLE) + + E.12 User Items + + USER ITEM + + | 'GKSMXXX' | L | D | + + XXX > 100 + D: user data (L bytes) + + {The PIGCF level U items are encoded as GKSM USER ITEM elements + so that a PIGCF file will conform to the GKSM metafile + specification.} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Aguilar [Page 44] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +APPENDIX B + + Example of PIGCF Use in Conferencing + + This section presents an example illustrating the proposed PIGCF + graphical component in an audio-graphics conference exchange. We + present only the graphical part of the conference exchange, which + actually would be complemented with speech. For the sake of briefness + the example does not contain all the parameter negotiation that a + conference set-up would require. + + The example is about an on-line audio-graphics conference between a + Navy command and control center and a Navy task force. The PIGCF + items shown do not belong to a single transmission stream. The stream + they belong to is determined by the station that transmits them, and + the identification of the transmitter belongs to lower level + communication protocols. We use the character encoding, rather than + the binary one, for this PIGCF example. We illustrate just a few of + the possible groups of items that could be batched in this example. + The plot of the example is as follows. + + The command center (center) establishes a conference with some ships + in a task force (platforms) to coordinate the interception of an + unidentified ship that has been sighted in a conflict area. After + recalling graphical libraries, all conference sites can see in their + screens a map of the sighting area as well as iconic representations + of the task force ships. Then the center interactively draws an + iconic representation of the unidentified vessel, scales it, and + places it in the sighting location. + + The platforms explain possible courses of action using graphical + pointers. The center draws the expected trajectory of the + unidentified ship and the platforms situate the task force icons at + the expected points of interception. Then the center zooms into the + interception area and the platforms use rubber bands to discuss + interception maneuvers. + + Now we proceed to list the PIGCF items exchanged. The center + initiates the conference graphical set-up with the FILE HEADER item + to set basic representation parameters for the graphical + information to be exchanged. This item can be interpreted + according to its definition in E.5 [14]. The most important + parameter selections for this example are: + + i) The items contain 0 characters of the "GKSM" string in the + identification field of the item header. + ii) The item type indicator field containing the PIGCF + + +Aguilar [Page 45] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + item number is three bytes long in each item. + iii) The integers are 4 bytes long, and the reals 6 bytes long. + iv) The item data record length indicator is 2 bytes long. + + We will obey the PIGCF specification field lengths and the aforesaid + field length settings. However, we will add one space before and + after the "|" separator to improve legibility. Also, every item will + be preceded with its name to help identification. + + FILE HEADER: + + | GKSM | center | 84/11/10 | 1 | 0 | 3 | 2 | 4 | 6 | 1 | 1 + | | | + + The center states the boundaries of the work station window for the + conference. + + WORKSTATION WINDOW: | 71 | 24 | 0.0 0.5 0.0 0.375 | + + In this example, we assume that the conferencing work stations use + world coordinates for the internal representation of positional + information. Accordingly, the center states the boundaries of the + world window for the normalization transformation used in the + conference. + + SET WINDOW: | 134 | 28 | 0.0 320.0 0.0 240.0 | + + The center informs the location of its local NDC viewport, however, + other conferees can choose different NDC viewports for the same + transformation, but their work station window should include the + conference's. All systems record the conference: world window, NDC + viewport, and work station widow. + + SET VIEWPORT: | 135 | 28 | 0.0 0.5 0.0 0.375 | + + The center recalls graphical libraries containing geographical maps + of the crisis area and icons of the task forces in the area. It + also displays a graphical object that provides a background picture. + + RECALL LIBRARY: | 139 | 9 | caribbean | + DISPLAY OBJECT: | 128 | 11 | coast_lines | + RECALL LIBRARY: | 139 | 10 | task_units | + + The center proceeds to instantiate one of the task forces in the + task_units library. This is done by recalling some of the library + objects and applying transformations to the objects, later. Since set + window, set viewport, and recall library belong to the update + + +Aguilar [Page 46] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + Group-2, they can be batched until display object, from update + Group-1, is entered. The second recall library can be batched + together with the following begin instantiation until display object + is produced. The rest of the example contains more cases of item + sequences which can be batched; however, for briefness we do not + indicate any more of them. + + BEGIN INSTANTIATION: | 124 | 15 | US_CONSTITUTION | + DISPLAY OBJECT: | 128 | 15 | US_CONSTITUTION | + TRANSFORM OBJECT: | 126 | 55 | 15 | US_CONSTITUTION | + 0.1 0.0 0.0 0.0 0.1 0.0 | + TRANSFORM OBJECT: | 126 | 55 | 15 | US_CONSTITUTION | + 0.1 0.0 0.312 0.0 0.1 0.078 | + END INSTANTIATION: | 125 | 0 | + + BEGIN INSTANTIATION: | 124 | 13 | US_NEW_JERSEY | + DISPLAY OBJECT: | 128 | 13 | US_NEW_JERSEY | + TRANSFORM OBJECT: | 126 | 53 | 13 | US_NEW_JERSEY | + 0.1 0.0 0.0 0.0 0.1 0.0 | + TRANSFORM OBJECT: | 126 | 53 | 13 | US_NEW_JERSEY | + 0.1 0.0 0.312 0.0 0.1 0.093 | + END INSTANTIATION: | 125 | 0 | + + Next the center sets values for two output primitive attributes in + preparation for drawing a new icon on the screens. We assume that all + the other attributes have been assigned default values as a result of + the conference set-up. + + POLYLINE INDEX: | 21 | 4 | 20 | + POLYLINE COLOUR INDEX: | 24 | 4 | 200 | + + The following items correspond to the interactive definition of the + unidentified vessel. Since the definition is done interactively, the + vessel image remains visible on the screens after definition. + + BEGIN DEFINITION: | 120 | 0 | + POLYLINE: | 11 | 64 | 5 | + 0.047 0.063 0.063 0.047 0.125 0.047 0.14 0.063 0.047 0.047 | + POLYLINE: | 11 | 52 | 3 | + 0.078 0.063 0.078 0.078 0.109 0.078 0.109 0.063 | + END DEFINITION: | 121 | 8 | sighting | + + Then the unidentified vessel "sighting" is scaled and placed at the + sighting site. + + + + + +Aguilar [Page 47] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + BEGIN INSTANTIATION: | 124 | 8 | sighting | + TRANSFORM OBJECT: | 126 | 48 | 8 | sighting | + 0.2 0.0 0.0 + 0.0 0.2 0.0 | + TRANSFORM OBJECT: | 126 | 48 | 8 | sighting | + 0.1 0.0 0.156 + 0.0 0.1 0.016 | + END INSTANTIATION: | 125 | 0 | + + The center and the platforms use graphical pointer movements to + discuss possible routes the unidentified vessel might follow. We only + show a few pointer updates. In practice, there would typically be a + large number of points transmitted to convey the movement of the + pointers over the screens. + + from the center: + + POINTER TRACKING: | 137 | 16 | 0 | 0.39 0.032 | + POINTER TRACKING: | 137 | 16 | 0 | 0.388 0.035 | + POINTER TRACKING: | 137 | 16 | 0 | 0.388 0.039 | + POINTER TRACKING: | 137 | 16 | 0 | 0.386 0.04 | + + from one of the platforms: + + POINTER TRACKING: | 137 | 16 | 0 | 0.22 0.016 | + POINTER TRACKING: | 137 | 16 | 0 | 0.222 0.159 | + POINTER TRACKING: | 137 | 16 | 0 | 0.233 0.157 | + POINTER TRACKING: | 137 | 16 | 0 | 0.24 0.155 | + + The center now draws the expected route to be followed by the + unidentified ship. This time the pointer trace is recorded on the + screen by drawing a line. + + POINTER TRACKING: | 137 | 16 | 1 | 0.388 0.038 | + POINTER TRACKING: | 137 | 16 | 1 | 0.386 0.038 | + POINTER TRACKING: | 137 | 16 | 1 | 0.386 0.052 | + POINTER TRACKING: | 137 | 16 | 1 | 0.375 0.078 | + POINTER TRACKING: | 137 | 16 | 1 | 0.369 0.105 | + POINTER TRACKING: | 137 | 16 | 1 | 0.361 0.125 | + POINTER TRACKING: | 137 | 16 | 1 | 0.352 0.144 | + POINTER TRACKING: | 137 | 16 | 1 | 0.351 0.156 | + POINTER TRACKING: | 137 | 16 | 1 | 0.35 0.16 | + + A platform moves the two US ship icons to interception positions. + + + + + +Aguilar [Page 48] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + TRANSFORM OBJECT: | 126 | 55 | 15 | US_CONSTITUTION | + 1.0 0.0 0.16 + 0.0 1.0 -0.046 | + TRANSFORM OBJECT: | 126 | 53 | 13 | US_NEW_JERSEY | + 1.0 0.0 0.113 + 0.0 1.0 -0.034 | + + The center zooms into the interception area in order to obtain a + larger view for further discussion. + + WORKSTATION WINDOW: | 71 | 24 | 0.286 0.403 0.077 0.177 | + + The two platforms indicate their striking ranges using circular + rubber bands centered at each ship. For each platform, we show first + the echo reference point and then two echo feedback points. Typically + there will be a large number of feedback points. + + RUBBER BAND: | 138 | 10 | 0 | 0.335 0.125 | + RUBBER BAND: | 138 | 10 | 3 | 0.35 0.128 | + RUBBER BAND: | 138 | 10 | 3 | 0.37 0.128 | + + RUBBER BAND: | 138 | 10 | 0 | 0.384 0.13 | + RUBBER BAND: | 138 | 10 | 3 | 0.367 0.128 | + RUBBER BAND: | 138 | 10 | 3 | 0.346 0.129 | + + Once the interception strategy has been agreed upon, the center zooms + out to the original, larger picture. + + WORKSTATION WINDOW: | 71 | 24 | 0.0 0.5 0.0 0.375 | + + The center terminates the conference + + END ITEM: | 0 | 0 | + + At the end of a conference, the final pictures remain visible on the + screens. In addition, the PIGCF items will be recorded in its + entirety in order to play back the conference session if necessary. + The conference record could also be sent to other locations as part + of a multi-media message. + + + + + + + + + + +Aguilar [Page 49] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + +REFERENCES + + [1] J. D. Day and H. Zimmermann, "The OSI Reference Model", + Proceedings of the IEEE, V 71, N 12; Dec. 1983, pp 1334-1340. + + [2] W. Pferd, L. A. Peralta and F. X. Prendergast, "Interactive + Graphics Teleconferencing", IEEE Computer, V 12, N 11; Nov. + 1979, pp 62-72. + + [3] K. S. Sarin, "Interactive On-Line Conferences", Ph.D. Diss. + MIT, Dept. of EE and CS, 1984. + + [4] S. Randall, "The Shared Graphic Workspace: Interactive Data + Sharing in a Teleconference Environment", Proceedings CompCon + 82 Fall, IEEE Computer Society, pp 535-542. + + [5] G. Heffron, "Teleconferencing Comes of Age", IEEE Spectrum, + Oct. 1984, pp 61-66, pp 61-66. + + [6] R. W. Hough and R. R. Panko, "Teleconferencing Systems: A + State-of-the-Art Survey and Preliminary Analysis", SRI + International, Menlo Park California, SRI project 3735, April + 1977. + + [7] C. W. Kelly III, "An Enhanced Presence Video Teleconferencing + System" Proc. CompCon 1982, Sept. 20-23 Washington D.C., pp + 544-551. + + [8] J. Vanglian, "Private Communication", Comments on the + suitability of videotex for on-line graphical communication. + + [9] ANSI Technical Committee X3H, "Draft Proposal: Virtual Device + Metafile", X3.122, X3 Secretariat, CBEMA, Washington, D.C. + + [10] American National Standards Committee X3H3, "Virtual Device + Interface", X3 - Information Processing Systems, Working + Document, Jan. 2, 1985 Available from Computer and Business + Equipment Manufacturers Association, Washington D.C. + + [11] E. Van Deusen, "Graphics Standards Handbook", CC Exchange 1984, + P.O. Box 1251, Laguna Beach, CA 92652. + + [12] J. D. Foley and A. Van Dam, "Fundamentals of Interactive + Computer Graphics", Addison-Wesley, 1982. + + + + + +Aguilar [Page 50] + + + +RFC 965 December 1985 +A Format for a Graphical Communication Protocol + + + [13] American National Standards Committee X3H3, "GKS -- 3D + Extensions", X3 - Information Processing Systems, Working + Document, Nov. 16 1984 Available from Computer and Business + Equipment Manufacturers Association, Washington D.C. + + [14] ANSI Technical Committee X3H3, "Draft Proposal: Graphical + Kernel System", X3.124, X3 Secretariat, CBEMA, Washington, D.C. + + [15] G. Enderle, K. Kansy, and G. Pfaff, "Computer Graphics + Programming", Springer-Verlag, 1984. + + [16] International Organization for Standardization "Information + processing - Representation of numerical values in character + strings for information interchange", ISO/DIS 6093.2, ISO/TC + 97, 1984-01-19; available from ANSI, New York, N.Y. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Aguilar [Page 51] + -- cgit v1.2.3