Graphical Elements

This page shows some of the objects visible in the graphical interface and describes their purpose. Here are the basic elements related to connecting icons together:

There are three main types of element to which Nets can connect -- Terminals, Junctions, and Grapples. Terminals are the visual representation of Ports, and each is part of an Icon. Junctions are like nodes: up to four nets can connect at a single junction. (The reason for the number four is that it's just easier to draw.) Grapples are the grab handles that drawing programs provide you with to reshape graphical objects. We use grapples in three ways: 1) attached to the end-points of a net, so that the net can be detached from a terminal; 2) attached to the end-point of a disconnected net, so that it is easy to grab and reconnect the net; and 3) attached to internal vertices of a net, so that nets can be reshaped. An additional application-specific element, Delay, is shown here, and there may be others, such as bus splitters and joiners.

Some objects can both have Nets connected to them, and represent a Vertex of the underlying semantic graph. A Junction, for instance, has up to four connected Nets, but, unlike a Terminal, is a Vertex of the Graph in its own right. The object model uses multiple inheritance to model this; in the implementation, it will just be done using attributes of graphical objects.

I have tried to rationalize the graphical language so that it is not too tricky to implement while still providing a complete set of modeless editing operations. With the elements shown above, it should be possible to perform the following with a single mouse button and no keyboard:


JohnR, 14 Oct 97