chiark / gitweb /
segment labelling work-in-progress - yet to do are labels and graph colouring
[trains.git] / layout / extractgraph
index dd047cce1cb426ddbfcaf4e241a93d1fcc6e22c2..5c71d597929dcca66fb15165cd75ff8bf53187af 100755 (executable)
@@ -248,13 +248,20 @@ sub writeout () {
        }
        o("\n};\n");
     }
-    o("\n");
+    o("Segment *all_segments[]= {\n");
+    for $segname (keys %segments) {
+       o("  &segment_$segname,\n");
+    }
+    o("  0\n".
+      "};\n".
+      "\n");
     for ($i=0; $i<@nodes; $i++) {
        $node= $nodes[$i];
-       o("static Node ",pr(Node,$node),"= { $i,\n");
+       o("static Node ",pr(Node,$node),"= { \"$i\",\n");
        o("  ".($i>0 ? '&'.pr(Node,$nodes[$i-1]) : '0').
          ", ".($i<$#nodes ? '&'.pr(Node,$nodes[$i+1]) : '0'));
-       o(", {");
+       o(",\n  $node->{X}, $node->{Y}, $node->{A},".
+         "  $node->{LayerMin}, $node->{LayerMax}, {");
        $delim= '';
        for ($side=0; $side<2; $side++) {
            o("$delim\n    { &".pr(Node,$node).", $side,");
@@ -276,7 +283,7 @@ sub writeout () {
     $maxedgenum=-1;
     for ($i=0; $i<@edges; $i++) {
        $edge= $edges[$i];
-       o("static Edge ",pr(Edge,$edge),"= { $edge->{EdgeNum},\n");
+       o("static Edge ",pr(Edge,$edge),"= { \"$edge->{EdgeNum}\",\n");
        if ($edge->{EdgeNum} > $maxedgenum) {
            $maxedgenum= $edge->{EdgeNum};
        }