Gauss has two primary tool modes:
Draw Mode (Pen Tool)
In draw mode, new shapes are created by clicking to place anchor points:
- Click to place the first anchor
- Continue clicking to add more anchors
- Press Tab to toggle between Line and Bezier edge modes
- Click near the first anchor to close the path (after at least three anchors have been placed)
- Press Escape to finish an open path and switch to Manipulate mode
Manipulate Mode (Select Tool)
In manipulate mode, existing shapes can be selected and edited:
- Click on a shape to select it
- Shift+click to add or remove from selection
- Drag a selected shape (or selected shapes) to move them
- Click on anchors or handles to select them for editing
- Press Delete or Backspace to delete selected anchors
- Press Escape to switch to Draw mode
Tool transitions (toolbar clicks, P, V, and Escape) are routed through
one deterministic mode-state machine. This keeps mode switching behaviour
consistent across keyboard and UI controls.
Manipulate pointer interactions are also routed through the SelectTool state machine. In this phase, marquee and transform gestures are reserved and behave as no-op placeholders until later roadmap milestones activate them.
Pointer target resolution in Manipulate mode is deterministic. When multiple targets overlap within hit tolerance, Gauss resolves in this order: handle, anchor, segment, then shape body (bounding-box fallback). The same ordering is used for click-selection hit resolution and internal hover-target resolution.
Tab routing is context-dependent: in Draw mode it toggles edge mode through the tool state machine, while in Manipulate mode it routes to segment-kind toggling for the current selection.