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 StyleTowards 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 ΚΟ–"slides" style˜Iunleaded•Mark insideFooteršΡdis˜K– outsideFooterš)˜)title˜raggedšΟb˜M˜M˜—šž˜M˜M˜M˜M˜—šž˜Mšœ-˜-Mšœ ˜ Mšœ%˜%—šž˜Mšœ˜Mšœ˜Mšœ"˜"Mšœ˜——˜šž/˜/Mšœ˜M˜M˜M˜—šž˜M˜M˜M˜—šž'˜'M˜M˜)M˜#—M˜—šž ˜ šž˜M˜M˜M˜—šž˜M˜ M˜—šž$˜$Mšœ˜M˜ —šž ˜ Mšœ˜M˜——˜šž˜M˜M˜$—šž!˜!M˜M˜ —Mšž ˜ —˜šž/˜/M˜M˜$M˜%M˜%—šž˜M˜M˜M˜ —šž ˜ M˜EM˜4M˜——˜šž ˜ M˜M˜M˜2—šž˜M˜M˜ M˜—šž˜M˜(M˜M˜——šž"˜"šž˜šœA˜AM˜5MšœE˜E—˜?M˜+——šž ˜ M˜Mšœ%Οiœ˜/MšœŸœ˜%M˜0—šž ˜ M˜+M˜,——˜šž˜M˜9M˜$M˜R—šž,˜,M˜*M˜'M˜—šž˜M˜7M˜—Mšž˜—šž˜šž˜˜M˜)M˜6M˜*M˜—M˜ ˜M˜9—˜M˜$——šž˜M˜'M˜RMšœ%žœ ˜8Mšœ9žœ ˜W——šž˜šž˜M˜M˜+M˜!M˜5——˜ šž5˜5M˜,M˜—šž-˜-M˜#M˜ M˜7—šž˜M˜0M˜#M˜M˜—Mšž ˜ —šœ ˜ šž#˜#Mšœ˜M˜M˜M˜M˜-M˜SM˜Mš œžœŸœΟz œžœŸœ ˜K—šž˜Mšœ˜M˜M˜#—Mšž˜—šž˜šž"˜"M˜5M˜&—Mšž&˜&šž˜M˜———…—0