From 190f2a062f68af1505c6e83f289cc6676124bde1 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Mon, 16 Mar 2026 12:26:23 -0400 Subject: [PATCH] docs: add PlateView remnant visualization to remnant finder spec Active remnant shown as dashed orange rectangle on PlateView during iterative fill workflow. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/superpowers/specs/2026-03-16-remnant-finder-design.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/superpowers/specs/2026-03-16-remnant-finder-design.md b/docs/superpowers/specs/2026-03-16-remnant-finder-design.md index 23df6fd..22cc97b 100644 --- a/docs/superpowers/specs/2026-03-16-remnant-finder-design.md +++ b/docs/superpowers/specs/2026-03-16-remnant-finder-design.md @@ -132,6 +132,12 @@ var remnants = finder.FindRemnants(minDimension); Any caller that previously relied on `TryRemainderImprovement` getting called automatically inside `Fill()` will need to implement the iterative loop: fill -> find remnants -> fill remnant -> repeat. +## PlateView Remnant Visualization + +When a remnant is being filled (during the iterative workflow), the `PlateView` control should display the active remnant's outline as a dashed rectangle in a contrasting color (orange). The outline persists while that remnant is being filled and disappears when the next remnant starts or the fill completes. + +**Implementation:** Add a `Box? ActiveRemnant` property to `PlateView`. When set, the paint handler draws a dashed rectangle at that location. The caller sets it before filling a remnant and clears it (sets to `null`) when done or moving to the next remnant. The `NestProgress` class gets a new `Box? ActiveRemnant` property so the progress pipeline can carry the current remnant box from the engine caller to the UI. + ## Future The edge projection algorithm is embarrassingly parallel — each candidate rectangle's overlap check is independent. This makes it a natural fit for GPU acceleration via `OpenNest.Gpu` in the future.