Drawing Architectures
Functions
- objects with drawing order
- position
- selection
- operations (delete, resize, open)
- attributes (color, font, pen width, etc.)
- How do you apply to multiple selection?
- Do these attributes get stored in the base class, or in sub-classes?
- redraw
- pick
- group
Interaction
- click to select
- marquee for multiple selection
- shift/control-click for multiple selection
- click-and-drag to drag
- Some initial threshold movement is required before object starts
moving
- Cursor should stay on part of object that was clicked on
- double-click to open (activate) object if not moved
- manipulate control points
Data Structures
- abitrary (i.e., asteroids)
- list
- hierarchy
- table
- text
- rich text
Expense
- storage
- picking (hit detection)
- rendering
Sample code
This code implements a basic arbitrary object drawing architecture with
support for simple selection.
Glyph.java
RectGlyph.java
Scene.java
Application.java
How would we:
- Implement marquee selection?
- click-and-drag?
Toolkits
Jazz - A zoomable
structured object manager
Piccolo Jazz - A smaller and simpler version of Jazz (in the works) |