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 3d741868c3
commit 6b9c243431
9 changed files with 239 additions and 29 deletions
+7
View File
@@ -918,6 +918,13 @@ export const de = {
"cmd.measure.label": "Messen",
"cmd.measure.start": "Messen von:",
"cmd.measure.to": "bis (Distanz · Winkel):",
"cmd.measure.next": "nächster Punkt (Rechtsklick = neuer Pfad):",
"objinfo.measure.title": "Messung",
"objinfo.measure.segment": "Segment",
"objinfo.measure.total": "Länge gesamt",
"objinfo.measure.area": "Fläche",
"objinfo.measure.angle": "Winkel",
"objinfo.measure.hint": "Klick = Punkt · Rechtsklick = neuer Pfad · Esc = Ende",
"transform.needSelection": "Erst Objekte wählen, dann drehen.",
"cmd.mirror.label": "Spiegeln",
"cmd.mirror.first": "Erster Punkt der Spiegelachse:",
+7
View File
@@ -907,6 +907,13 @@ export const en: Record<TranslationKey, string> = {
"cmd.measure.label": "Measure",
"cmd.measure.start": "Measure from:",
"cmd.measure.to": "to (distance · angle):",
"cmd.measure.next": "next point (right-click = new path):",
"objinfo.measure.title": "Measurement",
"objinfo.measure.segment": "Segment",
"objinfo.measure.total": "Total length",
"objinfo.measure.area": "Area",
"objinfo.measure.angle": "Angle",
"objinfo.measure.hint": "Click = point · right-click = new path · Esc = end",
"transform.needSelection": "Select objects first, then rotate.",
"cmd.mirror.label": "Mirror",
"cmd.mirror.first": "First point of mirror axis:",