Implement Phase 4: pinch-to-zoom and finger pan

- ScaleGestureDetector for pinch zoom (0.5x-4x) with focal-point anchoring
- Finger drag for pan with multi-pointer tracking
- Zoom/pan state managed locally in PadCanvasView for responsiveness,
  synced to EditorViewModel on gesture end

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 14:34:42 -07:00
parent a31e7e64d0
commit 3fc9751fc4
5 changed files with 109 additions and 9 deletions

View File

@@ -64,10 +64,10 @@ completed and log them in PROGRESS.md.
## Phase 4: Zoom and Pan
- [ ] 4.1: `ScaleGestureDetector` for pinch-to-zoom (0.5×4×)
- [ ] 4.2: Finger drag for pan with bounds clamping
- [ ] 4.3: Input routing — stylus → draw, finger → zoom/pan
- **Verify:** manual on-device test
- [x] 4.1: `ScaleGestureDetector` for pinch-to-zoom (0.5×4×) with focal-point zoom
- [x] 4.2: Finger drag for pan with pointer tracking
- [x] 4.3: Input routing — `TOOL_TYPE_STYLUS` → draw, `TOOL_TYPE_FINGER` → zoom/pan
- **Verify:** `./gradlew build` — PASSED. Manual on-device test pending.
## Phase 5: Eraser