GriffinDoc.tioga
Maureen Stone, September 23, 1985 6:26:33 pm PDT
Ken Pier, November 19, 1985 5:35:35 pm PST
CEDAR GRIFFIN
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
Cedar Griffin
Maureen Stone and Ken Pier
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: Griffin is an interactive illustrator for creating full-page color illustrations composed of lines, curves, filled areas, and captions. Illustrations are constructed on the screen using the mouse and menus and can then be printed at high resolution on a monochrome or color printer. Griffin has been converted to the Cedar environment. Since it uses Cedar's virtual memory, there is no longer a practical limit on the number of objects in a Griffin file. This memo describes Cedar Griffin.
Created by: Maureen Stone et al.
Maintained by: Maureen Stone <Stone.pa>, Ken Pier <Pier.PA>
Keywords: Illustrator, interactive graphics
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
New for Cedar 6.0
Griffin has had a significant rework for Cedar 6.0 and as a result has become a much better Cedar citizen. There are no longer any text editing capabilities in Griffin—if you need a string, select it in a convenient Tioga viewer somewhere. This applies to both file names and captions. You should be able to run Griffin from ///Commands/.
When you open a Griffin icon you will see two lines of Viewer menus at the top of the Griffin viewer. The top line consists of BiScroller menu functions, described below. The bottom line consists of Griffin menu buttons. These buttons are divided into two groups: "file" operations and a replacement for the "master" griffin menu.
Starting Griffin
Run Griffin from the CommandTool by typing:
Griffin < optional list of file names > (CR)
Griffin.load will be executed, which will run:
Geom2DImpl.bcd, BiScrollersImpl.bcd, BiScrollersButtonned.bcd for the BiScroller containing the Griffin viewer;
InterpressPackage.bcd for Interpress files;
AISImpl.bcd: for background AIS files.
Griffin.bcd: the illustrator itself.
Griffin Viewers
Users may have any number of Griffin viewers simultaneously. To get an empty Griffin viewer, type Griffin (CR) to the Command Tool. To get a series of filled Griffin viewers type, for example,
% Griffin fee fie foe fum (CR)
to get four Griffin viewers on Griffin files fee.Griffin, fie.Griffin, foe.Griffin, and fum.Griffin from the "current" working directory. The current working directory is the one in which Griffin was originally run. If files cannot be found, empty viewers will appear with the message "Unknown file." File names may be full path names.
Griffin viewers are contained in a special kind of container called a BiScroller. See /Cedar/CedarChest@/Documentation/BiScrollersDoc.tioga for detailed information on BiScrollers. The features provided for Griffin by BiScrollers include vertical and horizontal scrolling and some transformations which affect what the user sees in the viewer. Note that these transformations are only temporary and apply only to the viewer and are not to be confused with actual Griffin transformations on Griffin objects invoked via the Transform menu.
A BiScroller has both a vertical scroll bar at the left of the picture and a horizontal scroll bar at the bottom of the picture. Moving the mouse into a scroll bar area causes that scroll bar to become visible. The vertical scroll bar is much like a Tioga viewer scroll bar, with Scroll Up, Thumb, and Scroll Down invoked as usual. The horizontal scroll bar is similarly implemented using Scroll Left, Thumb, and Scroll Right. The amount of scrolling is always proportional to the distance from the left edge of the horizontal scroll bar to the mouse position in the scroll bar.
Note that, unlike Tioga viewers, the BiScroller represents a semi-infinite plane, and repeated scrolling in a single direction will likely take the user off the edge in an unpleasant manner. The shading in the BiScroller scroll bars will give you some idea of where you are. Griffin operations are not guaranteed to work way out in Never-Never land, although the Griffin file format will accept INTEGER coordinates for its objects. Griffin files still contain a single page.
The BiScroller menu buttons in the first menu line are:
Scale: scale the picture. If there is a Tioga selection which can be interpreted as a number, invoking Scale with the left mouse button causes the picture to scale UP from its current size by that number. Invoking Scale with the right mouse button causes the picture to scale DOWN in scale from its current size by that number. Invoking Scale with the middle mouse button causes the picture to return to Scale = [1, 1]. If the selection cannot be successfully interpreted as a number, the number 2.0 is used. Invoking scale up/down too many times in succession causes unpleasantness. This scaling is independent of the scaling provided by the Griffin Scale transformations.
Rotate: rotate the picture. If there is a Tioga selection which can be interpreted as a number, invoking Rotate with the left mouse button causes the picture to rotate that number of degrees counterclockwise. Invoking Rotate with the right mouse button causes the picture to rotate that number of degrees clockwise. Invoking Rotate with the middle mouse button causes the picture to return to its original orientation. If the selection cannot be successfully interpreted as a number, the number 90.0 is used.
Fit: scale and translate the image so as to maximize magnification while fitting the entire image in the viewer. Aspect ratio is preserved. This transformation can help the user navigate around a large drawing. Fit may be invoked by any mouse button.
ResetAndCenter: resets all scaling and rotation transformations and centers the picture in the visible viewer. ResetAndCenter may be invoked by any mouse button.
Center: centers the picture in the available viewer, without resetting any transformations. Center may be invoked by any mouse button.
Vanilla: resets all transformations and positions the picture in a client specified way. Griffin's vanilla transformation places the [0, 0] of its coordinate system near the lower left corner of the BiScroller. Vanilla may be invoked by any mouse button.
Left: positions the picture so that the left extent of the picture shows at the left of the viewer. Left may be invoked by any mouse button.
Right: positions the picture so that the right extent of the picture shows at the right of the viewer. Right may be invoked by any mouse button.
Top: positions the picture so that the top extent of the picture shows at the top of the viewer. Top may be invoked by any mouse button.
Bottom: positions the picture so that the bottom extent of the picture shows at the bottom of the viewer. Bottom may be invoked by any mouse button.
Selected: positions the picture so that the center of the bounding box of the selected item shows at the center of the viewer. If more than one object is selected, the topmost selected object is centered. Bottom may be invoked by any mouse button; if invoked with right click, BiScroller scaling and rotation transformations will be reset before the centering is done.
Griffin File Operations
All filing operations are done with new file operation menu buttons in the Griffin menu:
DeleteAll: provides the functionality of "SelectAll" and "Delete" with much better performance and it will automatically delete things out of both views. It should be used like the Tioga "Clear" function The button is guarded and Undo will still work so it should be safe enough.
Get and Merge: "Get" takes the current Tioga selection as a file name (can be a full path name) and displays that file in the viewer, replacing all previous contents. "Merge" adds the contents of the current selected file name to the current viewer rather than replacing it. "Merge" is similar to the merge button in the View menu, except that it merges another file into the current file in the viewer.
Store and Save: like the Tioga "Store" and "Save". "Store" creates a new file and defines the "current file" in the Griffin viewer. "Store" requests confirmation in the Message Window. "Save" saves the current contents on the current file.
IP: writes an Interpress file with the name <current name base>.ip, unless the current selection is a valid file name, in which case the selected file name is used. If the selected name has no extension, ".IP" will be used. IP requests confirmation in the Message Window. Griffin will not allow an Interpress file to be written with extension ".Griffin" to avoid an easy trap for the user.
Bkgnd: will create a background color from an AIS file specified in the current selection (can be a full path name), and then toggle between the AIS background and the normal white background. When Bkgnd is toggled to the background color, if there is a new valid AIS file name in the current selection, it will be used to make a new background. The AIS file content is not a Griffin object and is not known to Griffin in any way.
Color Griffin
If you turn on the color display in 8 bit/pixel mode (use the ColorDisplay component of the Cedar release), you can run the Griffin viewer on the color display. NOTE: Unless you have a 1000 line monitor, you may be disappointed at the amount of screen real estate available.
Objects
The basic graphical unit in Griffin is the object. Single objects may be grouped in a cluster, which behaves as a single object for most operations. The basic unit to be printed or saved is the illustration, which may be composed of any number of objects.
There are three types of object in Griffin: shapes, captions, and control objects. Shapes consist of straight and curved lines, either singly or linked end-to-end into more complex figures, and may be either closed (end points linked) or open (end points not linked). Closed shapes may be filled with a solid color. Captions are composed of text only.
Control objects that may appear on the Griffin screen include menus, control points, a control grid, and a frame. Control points are used in defining the geometry of shapes, and are placed and deleted with the mouse. The grid is provided as an aid in placing objects and control points precisely. The frame is provided as an aid to cropping the set of Griffin objects to be used to create Interpress hardcopy files.
Every object has a geometry and a style. The geometry of shapes is defined by placing control points and then fitting lines or curves through them. For captions, the geometry consists of an anchor position and a text string. Style attributes include such things as color, line thickness, font, etc. The style of an object can be changed without affecting the geometry, and vice versa.
Objects have a definite order of overlap. A newly created object is always placed at the top; operations are available for explicitly changing and controlling the overlap order of the objects in an illustration. Filled shapes are opaque, obscuring those below them in the overlap order. Shapes that are not filled are transparent, except on the border.
Menus
All Griffin commands are entered by menu selection. Command arguments are taken from the current Tioga selection. Menu items are selected by clicking down over the desired item on the menu with any of the three mouse buttons. Outside of the menus, the three mouse buttons have different functions, described below under Mouse Operations'.
Menus appear on top of the picture being drawn; they can be moved around to provide access to all parts of the picture. The master menu, always present in the normal viewer menu, controls the display of other menus used for various specialized purposes. Each item on the master menu is a toggle that can be turned on and off by repeated clicking with the mouse. Turning one of these toggles on causes the associated menu to appear on the screen; when the toggle is turned off, the menu vanishes. If the user clicks a master menu item with left or middle click, the menus will toggle without moving. A right click forces a master menu to appear near the bottom of the current viewer, even if the viewer has been scrolled away from the former menu positions. Some of the second-level menus in turn include toggles that control even more specialized submenus.
Some menus, known as one-of-many menus, have the property that only one item on the menu may be selected at a time. Selecting any item on such a menu automatically deselects the previously selected item.
The following table summarizes the various menus available in Griffin and the toggles that control them.
Menu Toggle On menu
Master menu Always present On the viewer menu line
Edit menu Edit' Master menu
*Shape menu Edit' With Edit menu
*Spline type menu Spline Type' Edit menu
Object menu Objects' Master menu
Transform menu Transform' Master menu
Overlap menu Overlap' Master menu
View menu View' Master menu
Style menu Style' Master menu
*Thickness menu Shape Style' Style menu
*Color control menu Shape Style' Style menu
*Line color menu Color Style' Style menu
*Area color menu Color Style' Style menu
*String rotation menu Text Style' Style menu
*Font menu Text Style' Style menu
*Anchoring menu Text Style' Style menu
* => "One-of-many" menu
User Messages
User messages (prompts, warnings, etc.) are displayed as a special menu containing the message in inverted video (white on black). The user message window will appear near the middle of the current viewer display. Clicking this menu makes it disappear. It is always possible to continue running Griffin after the appearance of one of these messages.
Some messages, particularly concerning file operations and their confirmation, appear in the Cedar Message Window.
Mouse Operations
Griffin uses each of the three mouse buttons for different operations, depending on whether you hold down the SHIFT and/or CONTROL key while pressing the button. The following table summarizes the mouse operations on object; CP means control point, and items marked ** invoke "grid defeat", explained below:
Mouse button: Left Middle Right
none Move Place CP Select object
SHIFT only Copy Delete CP Deselect object
CONTROL only Move ** Place CP ** Select object
CONTROL+SHIFT Copy ** Delete CP ** Deselect object
Draw-through -- --  Select all included
SHIFT Draw-through -- Delete all CP  Deselect all
   in rectangle  included
Objects affected Shapes Control points Shapes
 Clusters  Clusters
 Captions  Captions
 Control objects
 (move only)
Selecting and Deselecting
Many Griffin operations apply to one or more objects selected in the illustration. To select an object, click with the right mouse button while the mouse is over any point on the object; to deselect a selected object, similarly click with the right button while holding down the SHIFT key. If the object is part of a cluster, the entire cluster is selected or deselected.
Drawing diagonally through a rectangle (right button down, move, right button up) selects/deselects all objects entirely contained in the rectangle. If any object in a cluster would be selected/deselected in such a draw-through operation, the entire cluster is selected/deselected.
Selection is indicated by a small square token displayed on each selected object. For shapes, the selection token is displayed at some point on the edge. For captions, it is displayed at the anchor point. If the object is completely obscured (either by overlying objects or by the selection token itself), the token appears as a slashed box. A selected cluster is indicated by a square token with a small letter c' in it, displayed on the topmost object (in overlap order) of the cluster.
Move and Copy
Any Griffin object may be moved by pressing down the left mouse button over any point on the object, moving the mouse, and releasing the button at the new location. (A menu must be moved by pressing over its border, the grey surrounding the text.) The object is repositioned so that the point on the object that was under the down stroke of the mouse is moved to the location of the up stroke. If the object is part of a cluster, the entire cluster is moved as a unit. Holding down the SHIFT key during this operation causes a copy of the object (shape, cluster, or caption) to be placed at the indicated position, leaving the original object undisturbed. The copy is placed at the top of the overlap order; if the original object was selected before the copy operation, the selection transfers to the new copy. Holding down the CONTROL key as well defeats the grid if the grid is turned on. This means that objects not on the grid can be grabbed and moved/copied if CONTROL is used. Without grid defeat, it would be impossible to grab small objects not already on the grid.
Placing and Deleting Control Points
Control points are displayed as small crosses. They are placed by clicking the middle mouse button and deleted by clicking the same button while holding down the SHIFT key. Drawing through a rectangle with the shifted middle button deletes all control points in the rectangle. All control points on the screen are ordered in the sequence in which they were placed. Any new control point goes after all the previous ones, and there is no way to change the order. There is currently no good way to determine the order of the existing control points other than to plot a curve through them. Holding down the CONTROL key as well defeats the grid if the grid is turned on. This means that control points can be placed anywhere instead of just on the grid. Grid defeat for control points is very useful for marking out exact curves while the grid is on.
Creating and Modifying Objects
Shapes (graphical objects) are created and modified with the commands on the edit and shape menus, in conjunction with control points placed on the screen with the mouse. These menus are both controlled by the Edit' toggle on the master menu. Other attributes of the object to be created are specified on the various style menus (see Styles', below).
Drawing Shapes
To create a graphical object, place a series of control points in order with the middle mouse button, make sure the desired style attributes have been selected, then click Draw' or Close', for an open or closed shape, respectively. The type of shape to be drawn (straight-line or curved) is specified with the Line' or Curve' option on the shape menu. [For the aficionado, the menu item Spline Type' expands a one-of-many menu of various methods of curve fitting. These methods are explained in greater detail in the section Curve Fitting' at the end of this document.] The color control menu (see below) determines whether a closed object will be filled, outlined, or both.
For linked objects with more than one link, place the control points for each link separately, select Line' or Curve' for that link, then click Draw Link' for all but the last link. After placing the control points for the last link, click Draw' or Close'. Back Link' is used to back up one link while editing.
The special-purpose Box' command on the edit menu allows you to draw rectangles easily by placing just two control points, representing the endpoints of the rectangle's diagonal.
Creating Captions
To create a caption, place a control point, then select the caption text, then click Caption in the Edit menu. Your text will appear at the control point in the current style. To edit your caption, delete it and start over.
When captions are displayed on the screen, each character is positioned near as possible to where it would go on the printed page. Therefore, the caption will be displayed such that the total length relative to other objects in the picture is correct when the picture is printed. However, the character spacings on the display will look funny because of the difference between the fonts used on the printer and the fonts used on the display. The characters should look fine when printed.
Modifying Shapes
To modify an object, select it, then click Modify' on the edit menu. If more than one object is selected, the topmost selected object will be the one modified.
For a shape object, Modify' erases the object (or the last link of a linked object) and leaves its control points visible. The current shape and color styles (see below) are set to the style of the object being modified. You may now add, delete, or move control points, just as though you were drawing the object for the first time.
Manipulating Objects
The operations described in this section are used for object-level manipulations within an illustration. All of these operations appear on the object, view, and overlap menus, which are controlled, respectively, by the Objects', View', and Overlap' toggles on the master menu.
Deleting Objects
The Delete' command on the object menu deletes all objects currently selected. The last deletion can be canceled by clicking Undo'.
Selecting/Deselecting the Entire Illustration
For convenience, every object in the illustration can be selected or deselected by clicking Select All' or Deselect All' on the object menu. These operations apply only to objects on the current view (see Alternate View', below).
Grid
A control grid is available to aid in precise placement of objects and control points. The display of the grid is controlled by the Grid' toggle on the view menu. If the grid toggle is clicked with the left or middle mouse button, the grid will toggle on and off without moving. If the right button is used, the grid will be automatically turned on near the center of the current viewer display. The grid is displayed as a pair of horizontal and vertical axes, each of which can be moved independently. Whenever the grid is visible, all mouse operations (Move, Copy, Place and Delete control point), are rounded to the nearest grid point, unless CONTROL is used to invoke grid defeat.
Refresh
Refresh' on the view menu erases and replots the display.
Clusters
A cluster is a group of objects (shapes and captions) that are moved, copied, transformed, selected, and deselected together. That is, any of these operations performed on one item in the cluster is automatically applied to the entire cluster. A selected cluster is indicated by a single select token; however, every object in the cluster is considered selected.
To create a cluster, select all the objects that are to be part of the cluster (possibly including other clusters), then click Cluster' on the object menu. The user message New cluster made'' will appear. To unmake a cluster, select it and click Uncluster'. The user message Cluster unmade'' will appear. There is only one level of clustering, so a cluster of clusters makes one large group. That is, Uncluster' applied to such a cluster results in a group of single objects, not a group of clusters.
Changing the Overlap Order
Objects have a definite order of overlap, whether or not they actually cover each other up. Objects are displayed and printed in bottom-to-top order. To change the position of an object in the overlap order, select the object and click the desired item on the overlap menu: Top', Bottom', Up-One', or Down-One'. If more than one object is selected, they retain their relative positions as they move. For example, if five objects are selected and you click Top', the selected objects will become the top five objects.
Alternate View
Griffin allows you to work on two separate views within the same illustration. In effect, you have two separate pages to work on. The view you are currently working on is called the current view; the other is the alternate view. For example, you might create the background for a picture and place it on the alternate view, keeping only the foreground visible on your working view. This would speed up editing of the foreground by simplifying refresh operations. When the background and foreground were both completed, you would merge them into a single illustration. As another example, the alternate view might be used for selectively merging pieces of two different files. This could be done by reading each file into a separate view, then transferring objects from one view to the other.
All operations work identically on both views. To change from one view to the other, click Switch' on the view menu. This will erase the screen and display all objects on the other view. Control objects (menus, control points, and grid) are displayed in the same positions in either view.
To transfer objects from one view to the other, select the objects to be transferred and click Transfer' on the object menu. The selected objects are erased from the screen and transferred to the alternate view. Clicking Merge' on the view menu causes all objects currently on the alternate view to be transferred to the current view and displayed on the screen.
Only objects that are visible on the current view are included when an illustration is written out to an Interpress file. All objects on both views are included when the illustration is saved on a Griffin file.
Transforming Objects
Griffin offers a variety of transformations that may be applied to an object. All transformation operations appear on the transform menu, controlled by the Transform' toggle on the master menu. Only shape objects transform fully. For captions, only the anchor point is transformed
To transform one or more objects, select the objects to be transformed, place the transformation control points (details below under the various transformations), and click the appropriate item on the transform menu. The selected object(s) are erased, transformed, and redisplayed. If Use Copy' is selected on the transform menu, the original object is left undisturbed and a copy is created, placed on top in the overlap order, transformed as specified, and displayed. If the requested transformation would flatten the object in such a way that its original shape could not be recovered (for example, scaling it by zero), a warning message is displayed and the transformation is not performed.
X or Y Scaling
For X or Y scaling (ScaleX', ScaleY'), two or three control points are required. The points are projected onto the specified dimension (the other dimension is ignored). If three points are placed, the object is transformed so that the distance from the first to the second control point along the specified dimension is scaled into the distance from the first to the third point. If only two points are placed, the overall size of the object in the specified dimension is scaled to the distance between the control points in that dimension. The first control point is used as the origin for the scaling operation.
Full Scaling
For full scaling (Scale'), two or three points must placed. In effect, both X and Y scaling (see above) are done simultaneously with respect to these control points. For example, you can reduce the size of an object by a factor of 2 by placing the first two control points on a 45 degree diagonal, and the third on the same diagonal, midway between the first and the second. If only two control points are placed, they define the new bounding box of the object. The first control point is used as the origin for the scaling operation.
Rotation
Rotation (Rotate') requires two or three control points. The first point is the center of rotation. If three points are placed, the object is rotated so that the direction from the first to the second control point is mapped into the direction from the first to the third point. If only two points are placed, they represent an absolute angle relative to the horizontal.
Full Mapping (Scaling and Rotation)
For the full mapping transformation (Map'), two to six points may be placed. Two points specify a simple translation (move) to be applied to the selected object(s). Four points specify a mapping from the line defined by the first two points into the line defined by the third and fourth. Objects are scaled and rotated, but not deformed by this mapping. Three points may be used as a shorthand for the four-point map, in which the two lines are defined by the first and second points, and the first and third. For six points, the triangle defined by the first three points is mapped into the triangle defined by the second three. Five points are a shorthand for six points, with the two triangles defined by points one-two-three and one-four-five.
Styles
Every object in a Griffin illustration has a style that defines various attributes of the object's appearance when displayed or printed. Styles are specified with the style menu, controlled by the Style' toggle on the master menu. The Color Style', Shape Style', and Text Style' toggles on the style menu in turn control the display of specialized style submenus for setting the style attributes of an object.
The style submenus remember'' their settings, even when they are not currently displayed on the screen. The state of all these menus together defines the current style, which is applied to any newly created object. All objects carry all style attributesfor example, every shape object has a font style. It is only possible to operate on the entire style for an object, not just one attribute. For instance, there is no way to change the color of several captions in one operation without also setting them all to the same font.
To read the style of an object, click Indicate' on the style menu. The current style is set to the style of the selected object, and all visible style submenus are updated accordingly. If more than one object is selected, the style of the topmost selected object becomes the current style.
To change the style of an object, select the object, set the desired attributes on the style submenus, then click Apply' on the style menu. All selected objects are given the current style, as defined by the current settings of the style submenus.
Shape Styles
Shape styles include line thickness and whether a closed object is filled, outlined, or both. They are specified with the thickness menu and the color control menu, both controlled by the Shape Style' toggle on the style menu. The line thickness (given in pixels, where one pixel=32 micas=0.0139 inch) applies to all lines and outlines. All lines have round endpoints. Outlined objects are larger than objects without outlines by half the thickness of the outline.
Color Styles
Every Griffin object has two color attributes, one for the outline and another (applicable only to closed shapes) for area fill. These attributes are specified with the line color and area color menus, both controlled by the Color Style' toggle on the style menu.
Griffin provides a palette'' of colors that are intended to be generally useful for all types of illustration. All colors except black and white display as half-tone grey patterns on the LF display, and in true color on the color display. These patterns were chosen to give some indication of the brightness of the color, but are not unique. For example, red and green display as the same grey pattern.
[Because of changes in the color chart since the first alpha-release, it is possible for a Griffin file to contain objects with color values that are not on the menu. These objects will display in a 50% grey pattern, and will continue to print in the same colors as when they were created. Indicate' applied to such an object will set the color menu to black, so the color cannot be copied.]
Text Styles
Text styles include font, anchoring position, and rotation. They are specified with the font, anchoring, character rotation, and string rotation menus, all of which are controlled by the Text Style' toggle on the style menu. Because text display is based on the hardcopy widths of the characters, the spacing of characters on the screen may appear a bit strange. However, the overall length of each caption is represented accurately, so that shapes and captions can be correctly aligned.
[Character rotation, by which individual characters within a string are rotated, is not currently implemented and does not appear in the text style menu.]
Captions may be anchored at the left, right, or center by clicking the appropriate option on the anchoring menu. The designated anchor point is positioned over the control point when the caption is typed in. When a caption is selected, the select token appears at the anchor point.
String rotation controls the direction in which the caption itself is oriented. The items 0 d', 90 d', 180 d', and 270 d' on the string rotation menu represent normal (right), up, left, and down, respectively. String rotation is done about the anchor point.
Character rotation controls the direction in which the characters within the caption are oriented. The options on the character rotation menu have the same meanings as the corresponding items on the string rotation menu. Character rotations may require rotating a font. Character rotation is not currently implemented.
Of the 16 possible combinations of string and character rotation, only half are useful in practice. The 4 cases where the string rotation is the same as the character rotation, and the 4 cases where the string rotation equals the character direction plus 270 (producing a vertical column of characters), produce readable text. The other 8 cases are not generally useful.
Fonts
Griffin uses the Imager for text and assumes you want to use printer fonts so all fonts you use must be available on ///Fonts/Xerox/PressFonts/. Griffin keeps the old conventions for specifying font family, face and size so you name a font with a string of the form <family><pointsize><face>, ie: Helvetica10B. There is a menu under "Text Style" that shows a single font name which is the current font. To change the font select a new name and click the font menu. If Griffin can find the font the menu will change to reflect the new font, otherwise you will get a default font like Helvetica10.
Hardcopy and the Cropping Frame
Griffin provides hardcopy through Interpress files created by invoking the IP menu button. Once an Interpress file is created, it may be printed by converting it to a PD file for a specific printing device and then sending that PD file over the network to an instance of that printing device. See /Cedar/CedarChest@/Documentation/InterpressToolsDoc.tioga for details on how to make PD files.
The "Frame" button in the View menu paints a cropping frame that represents an 8.5 inch X 11.0 inch region. The frame may be moved like a menu by grabbing its edge or interior. If the frame is visible when the IP button is invoked, than the IP master will consist only of those objects within the frame, translated to fit on a standard size page.
Note that the frame is implemented as a "topmost object", so when it is on users cannot readily operate on objects underneath it. In particular, normal selection won't work. Sooo, turn the frame "on" only to check on the framing of objects and when IP is invoked if cropping is desired.
Backup File
Griffin keeps a backup file. If you destroy a viewer, Destroyed.Griffin is created and contains the current contents of the destroyed Griffin viewer.
If Griffin Breaks
Abort the error and destroy the icon. Hopefully you will get your file saved in Destroyed.Griffin. Notify Stone.PA and Pier.PA of all errors.
Curve Fitting
This section describes the various curve fitting methods available in Griffin. In general, deciding what method of curve fitting to use is a matter of personal preference. It is not necessary to understand all five methods to use the illustrator. The default fitting method corresponds to the menu item `Natural: Arc Length', and is adequate for most pictures. This section tries to give some description and guidelines for using the various methods. It isn't really as hard as it sounds. Experimentation is strongly encouraged.
There are five methods of curve fitting available in Griffin. These include two types of natural spline (arc length and unit length), which smoothly connect a set of control points; a non-interpolating (does not draw through the control points) spline called a B-spline; an interpolating but only first-order continuous (less smooth) curve called a Catmull-Rom curve; and a very different type of curve called a Bezier curve, which uses the control points as end points (on the curve) and tangent points (off the curve) in an alternating fashion. There is a figure on /Cedar/CedarChest@/Documentation/SplineSampler.press which shows the five curve types. This figure must be printed on a press printer.
B-splines, Catmull-Rom curves, and Bezier curves are local curves. That is, a given section of the curve is affected only by the control points near that section. As a result, these curves are more symmetrical and more modifiable (since changes at one end don't affect the other end of a long curve) than natural splines. Each section of the curve is completely defined by four control points. For the B-spline and Catmull-Rom curves, moving one control point will affect four sections of the curve. For Bezier curves, moving one control point will affect only one or two sections of the curve.
Natural splines and Catmull-Rom curves are defined by placing control points along the desired curve. The algorithm will draw a curve through the points. Think of these points as handles'' to control the slant of the curve at the end conditions. (The Catmull-Rom curve does not go through the first and last control points; by placing double points at the beginning and the end, you can make the curve continue out to the endpoints.) The two types of natural spline generate similar-looking curves, especially if the control points are evenly spaced. In general, the unit mesh version will give sharper turns at the control points. The Catmull-Rom curves, in comparison, look very square. However, because they are local curves, they may be easier to use for some shapes.
The B-spline goes near all the control points but through none of them. It is defined by placing control points near the desired path; the curve follows the direction of the points, but does not pass through them. B-splines are local curves and are very smooth and symmetrical, but it is quite a bit harder to predict from the positions of the control points where the curve will fall. Placing the control points in some regular pattern using the grid will produce very attractive curves for borders or symmetrical shapes.
Each section of a Bezier curve is defined by the end points plus two points off the curve (tangent points). The control points must be placed in the following order: end point, tangent point, tangent point, end point. The line from the first end point to the first tangent point is tangent to the curve (describes the slope or slant) at the end point. Similarly, the line from the second tangent point to the second end point is tangent to the curve at the second end point. If more than four control points are placed, the first four define the first section of curve, the fourth point plus the next three define the second section of curve, and so on. The sections are connected, but not smoothly. To make a smooth connection between sections, it is necessary to line up the tangents of the two sections. That is, there must be three control points in a line at the join point. Bezier curves are useful for drawing a short section of curve when the tangents at the end conditions are important (for example, a curve that points horizontally from the side of a box into the side of another box). Bezier curves can also be used to make symmetrical or repeated shapes with sharp breaks in them.
Because Catmull-Rom curves and B-splines do not go through the first and last control points, these curves cannot be used in this version of Griffin to make objects with multiple links. Objects are also restricted to using only one method of curve fitting for the entire object. Thus it is illegal to change the curve-fitting method in the middle of a multiply-linked object.
Griffin File Operations Summary
The following is a summary of file operations used in Griffin:
*DeleteAll: delete all picture objects
Get: DeleteAll then Get new file into viewer
Merge: Merge new file contents into existing viewer
*Store: Store viewer contents to selected Griffin file name (confirm)
Save: Store viewer contents to current Griffin file name
*IP: Create Interpress file (confirm)
Bkgnd: Create background from AIS file name;
  toggle background and "white"
* => guarded button
Griffin Menu Summary
The following is a summary of all menus used in Griffin and their contents:
Master menu always present on screen
*Edit: Toggle display of edit and shape menus
*Objects: Toggle display of object menu
*Style: Toggle display of style menu
*Transform: Toggle display of transform menu
*Overlap: Toggle display of overlap menu
*View: Toggle display of view menu

* => right clicks will move menus to current display window
Edit menu controlled by Edit toggle on master menu
Draw: Draw or complete open shape
Close: Draw or complete closed shape
Draw Link: Draw segment of linked object
Modify: Edit object [erases object, leaving control points visible]
Back Link: Edit last link [erases link, leaving control points visible]
Box: Draw rectangle [requires 2 control points]
Caption: Place the selected text at the control point
Spline Type: Toggle display of spline type menu
Shape menu (one-of-many) controlled by Edit toggle on master menu
Line: Draw object with straight lines
Curve: Draw object with spline curves
Spline type menu (one-of-many) controlled by Spline Type toggle on edit menu
Natural: Arc Length: Natural splines, arc length parameterized [default]
Natural: Unit Mesh: Natural splines, unit mesh parameterized [same as Draw]
Bezier Curve: 4 points determine a curve which goes through the
 first and fourth point
B-Spline: 4 points determine a curve which does not interpolate any point.
 Cannot be used in linked objects.
Catmull-Rom Curves: 4 points determine a curve which goes through the
 second and third points. Cannot be used in linked objects.
Object menu controlled by Objects toggle on master menu
Delete: Deletes selected object(s)
Undo: Cancel last deletion
Select All: Select all objects
Deselect All: Deselect all objects
Cluster: Make selected objects into a cluster
Uncluster: Break selected objects out of clusters
Transfer: Move selected object(s) to alternate view
Transform menu controlled by Transform toggle on master menu
Map: Map 1, 2, or 3 points into 1, 2, or 3 points.
ScaleX: Scale in X dimension
ScaleY: Scale in Y dimension
Scale: Scale in both dimensions
Rotate: Rotate around a point
Use Copy: Apply transformation to copy [leaves original object undisturbed]
Overlap menu controlled by Overlap toggle on master menu
Top: Move to top of overlap order
Bottom: Move to bottom of overlap order
Up One: Move up one position in overlap order
Down One: Move down one position in overlap order
View menu controlled by View toggle on master menu
Refresh:  Erase and repaint display
*Grid: Toggle display of control grid
Merge: Merge all objects in alternate view into current view
Switch: Switch to alternate view
*Frame: Display a frame for cropping hardcopy objects

* => right clicks will move items to current display window
Style menu controlled by Style toggle on master menu
Indicate: Set current style to style of selected object
Apply: Apply current style to selected object
Color Style: Toggle display of line and area color menus
Shape Style: Toggle display of thickness and color control menus
Text Style: Toggle display of font, anchoring, string rotation,
 and character rotation menus
Thickness menu (one-of-many) controlled by Shape Style toggle on style menu
1 pt: Set line thickness to 1 pixel (0.0139 inch)
2 pt: Set line thickness to 2 pixels
3 pt: Set line thickness to 3 pixels
4 pt: Set line thickness to 4 pixels
Color control menu (one-of-many) controlled by Shape Style toggle on style menu
Filled: Fill closed objects with current area color
Outlined: Outline closed objects with current line color
Both: Outline and fill closed objects with current line and area colors
Line color menu (one-of-many) controlled by Color Style toggle on style menu
Lines: list of available color names
Area color menu (one-of-many) controlled by Color Style toggle on style menu
Areas: list of available color names
Font menu (one-of-many) controlled by Text Style toggle on style menu
current font name
Anchoring menu (one-of-many) controlled by Text Style toggle on style menu
Left: Anchor caption at left
Centered: Anchor caption at center
Right: Anchor caption at right
String rotation menu (one-of-many) controlled by Text Style toggle on style menu
0 d: Caption reads from left to right
90 d: Caption reads from bottom to top
180 d: Caption reads from right to left
270 d: Caption reads from top to bottom
Character rotation menu (one-of-many) controlled by Text Style toggle on style menu
normal:
stack: not implemented, not displayed