Gargoyle Design
July 1, 1985
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
· 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 Sections

�����Ê>��–"slides" style˜�Iunleaded•MarkinsideFooteršÑdis˜K–
outsideFooterš˜titlešÏb"˜"raggedšž˜šœ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˜SM˜MšœžœŸœÏz
œžœŸœ
˜K—šž˜Mšœ˜M˜M˜#—Mšž˜—šž˜šž"˜"M˜5M˜&—Mšž&˜&šž˜M˜�———�…—����r��¶��