fix(gui): two-click ROI on Calibrazione Piano (was shift+drag)

User asked for "2 punti" — replace the drag-to-rectangle interaction with
two discrete clicks: first click places corner A (cross marker), second
click defines the rectangle, third click starts a new selection.
Rectangles smaller than 10×10 px are rejected. Status chip guides the
flow.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal PastroandClaude Opus 4.7 committed 2026-05-11 17:38:43 +02:00
1 parent b4db712cd0
commit 652fa4b912
2 files changed
+57 -24

No files matched your search

+6 -5
View File
@@ -187,7 +187,7 @@
<canvas id="wpOverlay" style="position:absolute;left:0;top:0;pointer-events:none"></canvas>
</div>
</div>
<div class="marker-info">RGB live · shift+drag = ROI</div>
<div class="marker-info">RGB live · 2 click = angoli del rettangolo ROI · 3° click ricomincia</div>
<h3 style="margin-top:14px">Vista 3D (frame camera)</h3>
<div class="canvas-wrap" style="width:min(100%,720px)">
<canvas id="wp3dCanvas" width="720" height="360" style="display:block;background:#0a0d11;border:1px solid var(--border);border-radius:4px"></canvas>
@@ -198,12 +198,13 @@
<h2>Calibrazione</h2>
<div class="ctrl-block">
<div class="info-box">
Disegna con shift+drag un rettangolo sul tavolo (senza oggetti), poi
clicca <strong>Calcola piano</strong>. Regola l'offset finché i punti
gialli rappresentano l'oggetto e i rossi spariscono. Poi <strong>Salva piano</strong>.
Clicca due angoli opposti sul tavolo (senza oggetti) per definire il
rettangolo ROI, poi clicca <strong>Calcola piano</strong>. Regola
l'offset finché i punti gialli rappresentano l'oggetto e i rossi
spariscono. Poi <strong>Salva piano</strong>.
</div>
<div class="kv compact">
<label>ROI <span id="wpRoiInfo" class="dim">— · disegna con shift+drag</span></label>
<label>ROI <span id="wpRoiInfo" class="dim">— · clicca 2 angoli sull'RGB</span></label>
<label>offset (mm) <input type="number" id="wpOffset" value="5.0" step="0.5" min="0" max="200" /></label>
</div>
<div class="actions">