Picture creation is conceptually different from picture modification.
1. Creation
Open - Name of segment
Automatically set attributes to global defaults
Perhaps specify which attributes of this segment will later be modified
mixture of:
Primitives
Attribute mode setting for subsequent primitives
.....
End
Attribute values remain in effect until explicitly changed by the mode setting commands.
2. Modification
Delete segment-name
Assign attribute-value to segment-name
Since we are dealing with segments with no references (e.g. macros, subpictures),
the problem with scope of attributes does not arise.
3. Extend
Reopens a segment for the specification of additional primitives. Result of previous primitives is not affected.
Issue: One or two levels of segmentation?
See Foley's position paper Picture Naming & Modification ; an Overview for discussion of issues.
His recommendations were not agreed upon by the group, but no additional arguments were set forth for each position.
In view of the distinction between model building and displaying, it should be stressed that the model building package
may have multiple levels of segmentation, but this may not be reflected at the drawing level.
Issue: Current Position
Alternative 1:
Current Position is basically a syntactic construct to permit remaining operations to be
expressed more compactly. The notation may be expanded (e.g., interpreted or bound) at different times (namely execution time).
Alternative 2:
Current Position is a semantic construct that is a primitive in our system.
Discussion:
When a division is made between the modelling domain and the drawing only domain, then two kinds of
current position might exist: one (or more) reference markers used by models to save locations of interest
and one current beam position used by the graphics package to improve the display performance.
Therefore, the two alternatives are both viable because one construct is in the modelling domain and the
other in the graphics drawing domain.
May be useful, but far from complete and neglects problems of multiple levels of reference.
Picture Structure and Attribute Control
The unit of picture modification is the segment.
Segments have attributes which apply to all primitives and subpictures contained within the segment.
Possible attributes are:
color
intensity
visibility
selectability
highlight (e.g., blink, dark lines)
All segment attributes are set to global default values when the segment is opened.
These default values remain in effect until the end of the segment or until an explicit
mode change command. {This does not imply that all segment attributes will be resettable.)
The most recent value of the attributes will be available to the applications program.
There will be no more than two levels of segmentation (the choice between 1 or 2 is still open).
Markers
A graphical primitive whose only relevant property is its position.
Its position is transformed as are all other coordinates.
Only during the display of the visual portion of the picture is the marker given any visible characteristics.
Those visible characteristics (e.g., orientation, partial clipping) may depend upon the sequence of transformations applied to the picture.
Device Control Discussion
Functions
Semantics and Implications
Initialise Device
Acquire device
Close Previous Open Device, if any
Lockout other programs from acquiring this device.
Release Device
Permits a clean closing of a device;
returns device tables to desired default condition.
Clear Device
Returns device to a state identical to that following an Initialize.
We wish to interactively edit a schematic diagram (e.g. a logic diagram).
As the link is slow, adequate interaction access cannot be achieved if we have to transmit the whole of
each symbol for each symbol instance. We have to hold the symbol definitions in the satellite.
The definitions must be setup and invoked:
Example:
Begin symbol N
Draw - symbol definition
End symbol
Begin segment N
Draw
Insert symbol N at x,y rotated by a - symbol instance
End segment
The inserted symbol is to be macro expanded in-line (i.e. there are no subroutine calls in the display file).
It is difficult to see how to map this onto the structures described .