Gargoyle Presentation
Maureen Stone and Eric Bier, July 2, 1985
What is Gargoyle?
· Single Page Illustrator
Draw, Griffin, Gargoyle
Graphic arts quality output
· Full Imager Semantics
Lines, conics, cubics
Objects with holes
Constant and sampled colors
Interpress output
· Research Goals
Test Ideas about Interactive Geometric Design
Test Ideas about Graphical Style
Handle Interesting Object Hierarchies
· System Goals
Support In-house Illustration
Handle Complex Scenes
Exercise the Imager and Interpress
Exercise the Cedar Environment
Research Goals
· Test Ideas about Interactive Geometric Design
Contours with holes
Designing with splines
Intelligent dragging
Extended symmetry operations
· Graphical Style
Full indirection in styles
Do the "right thing" with color
Do the "right thing" with fonts
· Handle Interesting Object Hierarchies
Multi-level clustering
Selection can be independent of hierarchy
Explicit inter-object relationships
System Goals
· Support In-house Illustration
Replace Griffin and JaMImager
CSL technical illustration
PARC publicity
· Handle Very Complex Scenes
Output of Fit
Output of arbitrary programs
· Exercise the Imager and Interpress
Device Independent Graphics
Performance
· Exercise the Cedar Environment
User Interfaces
Influence new Viewers design
What is Gargoyle Not?
· Document Framework
No editors inside of editors
Arm's length relationship with Tioga
· Simplest Interpress Illustrator
Too many research goals
Incomplete user-interface design
· Not ChipN*
Graphical Style
· Separate Illustration into Geometry and Style
Geometry is shape
Style contains rendering information
Different style for different layouts
Different style for different devices
· How do we implement style?
Different levels of indirection
Tioga Looks vs. Formats
Hard problem
· References
Beach and Stone, "Graphical Style—Towards High Quality Illustrations"
Beach, "Setting Tables and Illustrations with Style"
Properties in Gargoyle
· Line Style
Width, Junctions, Ends
Arrowheads, dashed lines
Associated with an (arbitrary) piece of trajectory
· Color
User defined color palette
Color wedges
Arbitrary sampled color
· Text
Strips and stacks at arbitrary rotations
Fonts
Integrate with Tioga mechanism
Objects and Hierarchies (Modeling)
· Segments and Trajectories
Segment (for now): A line segment, Bezier piece, or conic piece.
Spline types may be altered as easily as Tioga looks.
Object-oriented editing style: Public endpoints, Private internals.
Trajectory: An ordered sequence (possibly closed) of segments.
Trajectories may be split and concatenated.
· Outlines
A single open trajectory, or
A single closed trajectory (called a fence), or
A bounding fence with internal holes.
Every trajectory is part of exactly one outline.
· Clusters
Only clusters are rigid (unlike Griffin).
Holes are at the same priority and subtract.
User Interface Decisions
· Prefix, Infix, Postfix
Prefix (Burton's Sketch): Modal. No illegal selections.
Infix (Star). Worst of both worlds?
Postfix (Griffin, Tioga): No modes. Illegal selections possible, but not likely.
· Pop-up menus (with Viewers top-level menu)
Don't use screen space (like Tioga menus).
Aren't in the way (like Griffin menus).
Don't take up TIP-table space.
· Multi-mouse buttons
Array of functions using mouse buttons and control keys
Analogy to Tioga
· Real-time dragging
Intelligent Dragging
· Beyond Grids and Constraints
Precise Operations:
Parallel, Congruent, Horizontal, Vertical
Point on Curve, Point on Point, Curve Tangent to Curve
Precise Scaling, Translation, and Rotation
Symmetry
Instancing
Grid Problems:
Realignment, Counting Grid Points, Limited to Grid Points
Constraint Problems:
Contraining Time, Whim of the Solver
· Intelligent Dragging
Real-time Dragging, Rotation, and Both.
Angles, Lengths, Lines, and Curves of Interest --
Don't tell us, we'll tell you.
Parallel, Horizontal, and Vertical = Angles of interest.
Point on Curve, Point on Point, Curve tangent to Curve = Lines, and Curves of Interest.
Symmetry
· Symmetry Tools
Temporary Correspondences.
Propagation of Changes (almost Instancing).
Precise Translation and Rotation.
Automatically generates lines and curves of interest.
Selection
· Use Tioga reflexes to select objects in hierarchies
Point, segment, trajectory, outline, cluster
Implement shift-select for copy
· Objects must be selected for all operations
All operations apply to all objects
Different from Griffin Move/Copy
Move rigidly=all joints selected
OR object in a cluster
· Feedback: Use the joints?
Separate concepts of visible and selected joints
Why: alignment, style, shift-select
Cluster select?
Control points vs Joints?
· Accelerators where appropriate
Tioga Analogy
· Tioga Document <=> Gargoyle Scene
Character <=> Segment
Word <=> Trajectory
Node <=> Outline
Intercharacter Space <=> Joint
Caret between characters <=> caret at a joint
Primary selection (underlined) <=> multiple primary selections (highlighted joints)
Caret looks <=> caret looks.
Plain, Bold, Italic, Underlined <=> Polygonal, Bezier, Natural, Thick Lines
· Incomplete analogy
multiple primary selections
control points
splice a control point in a segment
· Extend selection ~ Box select
Freedom from Joints
· The Combiner Problem for Splines
Letting The User Play With Curve Intersection Points.
New Area-Filling Shapes From Old Ones.
· Specifying Arbitrary Touching Points
· Painting Curve Chunks