f248e2ae80
toSection behandelte Dächer bislang gar nicht (der Rust-Extraktor kennt nur Wände + Decken). appendRoofSections schneidet die Schnittebene jetzt TS-seitig mit den Dachflächen: Grundriss-Spur der Ebene per Cyrus–Beck gegen jedes konvexe Aufsichts-Polygon der Dachflächen geclippt → u-Intervall; Oberkante v(u) linear aus der Ebenengleichung (Newell), Unterkante um lotrechte Dicke / cos(Neigung) tiefer. Mehrschichtige Dächer (roofLayers) werden wie beim Decken-Schnitt in Bänder aussen→innen zerlegt, jedes mit Bauteil-Schraffur (Papier-Neutralisierung wie resolveCeilingSectionStyle). SectionComponentRef um 'roof' erweitert; attachCutStyles reicht Dach-Bänder unverändert durch (Stile vorab aufgelöst, keine Boolean-Dominanz). Bewusst nur SCHNITT-Polygone — Ansichts-/Silhouettenkanten des Dachs sind eine eigene Phase. +4 analytische Tests. 689/689 grün.