Mess-Werkzeug: Polygonzug mit Fläche + Live-Werte im Objekt-Info-Panel

Das Mess-Werkzeug wird von der reinen Strecke zum Polygonzug:
- Jeder Klick setzt einen weiteren Stützpunkt; angezeigt werden letztes
  Segment (Länge · Winkel), aufsummierte Pfadlänge und — ab 3 Ecken —
  die umschlossene Fläche (Gauss).
- Die Messwerte erscheinen dauerhaft im Objekt-Info-Panel (neuer
  Abschnitt „Messung"), nicht nur flüchtig am Cursor-HUD. Kanal:
  ToolDraft.measure → PanelHost.measurement → ObjectInfoPanel.
- Rechtsklick/Enter beendet den aktuellen Pfad und armiert sofort einen
  neuen (mehrere Messungen nacheinander); Rechtsklick auf leerem Pfad
  bzw. Esc beendet das Werkzeug.

+4 Tests (Segment/Winkel, Summe/Fläche, Ketten-Verhalten). tsc sauber.
This commit is contained in:
2026-07-09 01:13:15 +02:00
parent dbe7d374cd
commit 492e1f811a
9 changed files with 239 additions and 29 deletions
+7 -1
View File
@@ -34,7 +34,7 @@ import type {
WallReferenceLine,
WallType,
} from "../model/types";
import type { SnapSettings, ToolId } from "../tools/types";
import type { MeasurementReadout, SnapSettings, ToolId } from "../tools/types";
import type { Selection } from "../state/selectionInfo";
import type { ScheduleKind } from "../export/exportSchedule";
@@ -143,6 +143,12 @@ export interface PanelHostValue {
* und grauen nicht-anwendbare Felder per `selection.kind` aus.
*/
selection: Selection | null;
/**
* Live-Messwerte des Mess-Werkzeugs (Länge/Fläche/Winkel), oder `null`, wenn
* gerade nicht gemessen wird. Das Objekt-Info-Panel zeigt sie dauerhaft an,
* damit der Messwert nicht nur flüchtig am Cursor (HUD) erscheint.
*/
measurement: MeasurementReadout | null;
/** Setzt die (Strich-)Farbe der aktuellen Selektion (Wand oder Drawing2D). */
onSetSelectionColor: (color: string) => void;
/**