diff --git a/internal/viz/dot.go b/internal/viz/dot.go index 42e88da..b059589 100644 --- a/internal/viz/dot.go +++ b/internal/viz/dot.go @@ -7,13 +7,17 @@ import ( "os" ) +// EmitDOT serialisiert den BSP-Baum mit Wurzel root und schreibt ihn als DOT-Datei nach path. func EmitDOT(root *bsp.Node, path string) error { + // buf sammelt den DOT-Text, bevor wir ihn speichern. var buf bytes.Buffer buf.WriteString("digraph BSP {\n") buf.WriteString(" node [fontname=\"Helvetica\"];\n") + // id vergibt fortlaufende Nummern für alle ausgegebenen Knoten. id := 0 var walk func(*bsp.Node) int + // walk läuft den Baum in Tiefe-zuerst-Reihenfolge ab und liefert die DOT-Knoten-ID zurück. walk = func(n *bsp.Node) int { my := id id++