Skip to content

refactor: render Q10 overlays with V1#903

Draft
tubededentifrice wants to merge 2 commits into
Python-roborock:mainfrom
tubededentifrice:vc/q10-v1-overlays
Draft

refactor: render Q10 overlays with V1#903
tubededentifrice wants to merge 2 commits into
Python-roborock:mainfrom
tubededentifrice:vc/q10-v1-overlays

Conversation

@tubededentifrice

@tubededentifrice tubededentifrice commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Second rendering slice extracted from #900, stacked on #902. Q10 overlays now reuse the V1 image generator for paths, robot/dock markers, zones, and virtual walls while Q10 parsing remains responsible for converting protocol coordinates into MapData.

Changes

  • keep the 2.5 mm trace grid separate from the 5 mm vector calibration
  • derive idle erase/restriction state from the map header
  • use the saved dock position and heading from absolute header coordinates
  • draw paths, robot/dock markers, no-go/mop zones, and virtual walls through the shared V1 renderer
  • keep renderer construction private and keep this slice free of trait, transport, and CLI changes

Before / after

The same isolated MapData fixture is rendered before and after this slice.

Before After
Before: Q10-specific overlay glyphs and path rendering After: shared V1 overlay glyphs and path rendering

Validation

  • pytest -q — 885 passed, 86 snapshots passed
  • pre-commit run --files ... — all hooks passed

Stack / review order

  1. feat: align Q10 map colors with V1 #902 — base raster and room palette
  2. This PR: V1 overlay renderer
  3. fix: show docked Q10 robot on map #904 — docked-state composition

GitHub cannot target an upstream PR at a branch that exists only in a fork, so this PR temporarily targets main and includes #902 in Files changed. The independent incremental diff is:

tubededentifrice/python-roborock@vc/q10-v1-palette...vc/q10-v1-overlays

After #902 merges, this PR can be rebased onto main without changing its review boundary. The transport correction is independent in #901; #900 remains the aggregate real-device/Home Assistant reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant