All interaction with SKETCH is via a three-button mouse(2) with occasional use of one modifier key on the keyboard, and a single orthographic window onto the 3D scene. The mouse is used to generate gestures rather than to select operations from menus. Choosing an operation like object creation, transformation or grouping is seamlessly integrated with the natural expression of intent. SKETCH infers intended tools by recognizing gestures -- sequences of two types of gestural elements -- in its input stream.
Strokes, the first type of gestural element, are pixel-tracks on the film plane(3), made with the first mouse button. There are five classes of strokes shown in Table 1.
Each axis-aligned stroke is aligned with the projection of one the three principal axes of the world. We have also tried aligning strokes with the three principal axes of the surface over which the gesture is drawn. In general, this latter approach seems more effective, although it also presents some difficulties, especially for curved surfaces and for gestures which span over different surfaces. Since we have not yet adequately handled these concerns in our implementation, we will assume for the rest of the paper that all lines are aligned with the world's principal axes except those that are drawn with the ``tearing'' or freehand strokes.
|click and release||dot|
|click and drag without delaying||axis-aligned line: line follows axis whose screen projection is most nearly parallel to dragged-out segment|
|click and drag, then ``tearing'' motion to ``rip'' line from axis||non-axis-aligned line|
|click, pause, draw||freehand curve|
|click with Shift key pressed, draw||freehand curve drawn on surface of objects in scene|
Interactors, the second type of gestural element, are made with the second mouse button. The two classes of interactors, a ``click and drag'' and a ``click,'' have no visual representation.
In addition to gestural elements, SKETCH supports direct-manipulation of camera parameters with the third mouse button, as outlined in Table 2. Third-button manipulations are not discussed further in this paper.
|mouse action||camera manipulation|
|click and drag||pan: point on film plane beneath mouse remains beneath mouse|
|click, pause, drag||zoom/vertical pan: dragging horizontally zoom in/out towards clicked-on point, dragging vertically pan up/down|
|click near window boundary, drag||rotate: performs continuous XY controller rotation about center of screen |
|click on object||``focus'': camera moves so that object is in center of view |
|shift-click||change rendering: cycles through available rendering styles (see Section 5)|
Next: The implementation Up: Abstract Previous: Related work