0a2049b2fc
Roof-Element (rechteckiger Grundriss + Form/Neigung/Überstand/Firstrichtung) und Roof/RoofShape im Modell (Project.roofs). Reine Geometrie geometry/roof.ts: roofGeometry(roof, eavesZ) liefert Grundriss-Linien (Traufe/First/Grat/Knick) UND die 3D-Dachflächen (+ Giebel) für alle sechs Formen — gerechnet auf der Bounding-Box (First entlang X/Y, „y" per Transponierung). roofBaseElevation löst die Traufhöhe auf (Geschoss-Oberkante als Default). +9 Tests (Firsthöhe/-lage, Flächen-/Grat-/Knick-Zahl je Form, Transponierung, Überstand). Reine Modell-/Datenschicht; 2D/3D/Werkzeug folgen. tsc + vitest grün.