chiark / gitweb /
summary graph diagram
authorian <ian>
Sat, 23 Aug 2008 11:02:55 +0000 (11:02 +0000)
committerian <ian>
Sat, 23 Aug 2008 11:02:55 +0000 (11:02 +0000)
layout/.cvsignore
layout/Makefile
layout/redactgraph.c

index 46c49413fadf2c0f40bdbae88d15a5a84ff8c7b9..b8f50b7bd3047aa52d967e4e29575a0c3600a724 100644 (file)
@@ -29,6 +29,8 @@ ours.redacted.neato
 ours.redacted.forsafety
 ours.redacted.for-ui
 ours.redacted.shellvars
+ours.summary.neato.ps
+ours.summary.neato
 ours.layout-data.c
 detectors.pin-info
 reversers.pin-info
index a215b451137c43f0232b0a5d3c595bd783a7d46c..65de5ae610963227343ee09796fa38761e0df063 100644 (file)
@@ -41,7 +41,8 @@ client:               ours.layout-data.o ours.dgram-bot.overlay-info          \
                ours.dgram-bot.segcmap
 for-test-ui:   client                                                  \
                ours.graph.c ours.redactgraph ours.raw.neato.ps         \
-               ours.redacted.neato.ps ours.redacted.shellvars
+               ours.redacted.neato.ps ours.redacted.shellvars          \
+               ours.summary.neato.ps
 
 layers:                $(LAYERS)
 lpages:                $(LPAGES)
@@ -80,6 +81,9 @@ compose-segenco: compose-segenco.o
 %.redacted.neato: %.redactgraph
                ./$< $(REDACT) consistency printforneato $o
 
+%.summary.neato: %.redactgraph
+               ./$< $(REDACT) consistency printforneatosumm $o
+
 %.redacted.forsafety: %.redactgraph
                ./$< $(REDACT) consistency printforforsafety $o
 
@@ -184,6 +188,7 @@ clean:              tidy
                -rm -f *.pin-info *+pindata.asm
                -rm -f *.redacted.forsafety *.redacted.forneato
                -rm -f *.redacted.shellvars *.redacted.segjoins
+               -rm -f *.summary.forneato
                -rm -f *.oprint-*.ps *.run-layout
                -rm -f *.segcmap *.segcmapreq
                -rm -f *.dgram-*.p*.segenco.ps *.dgram-*.p*.segenco.ppm
@@ -194,6 +199,7 @@ clean:              tidy
 .PRECIOUS:     $(OPRINTS)
 .PRECIOUS:     %.segcmap %.segcmapreq %.segenco.ppm %.d4 %.neato %.raw.neato
 .PRECIOUS:     %.redactgraph %.redacted.forsafety %.redacted.neato
+.PRECIOUS:     %.summary.neato
 .PRECIOUS:     %.layout-data.c %.pin-info %.redacted.segjoins
 
 include $(wildcard *.d)
index 2f38ebc94d2bc91f32634b063dd816ce0fe576f3..297b058c3fa61270a5ccb65dfbcc0a9cfd56fb3f 100644 (file)
@@ -651,6 +651,20 @@ static void consistency(void) {
 
 /*---------- operations - output ----------*/
 
+static void printforneato_edgelabel(Edge *edge, const char *pname) {
+  const char *segname= edge->subseg->segment->segname;
+  output(" [label=\"");
+  if (pname) output("%s:", pname);
+  if (!segname) {
+    output("?");
+  } else {
+    output(segname);
+    if (edge->subseg->movfeat)
+      output("/%s%d",edge->subseg->movfeat,edge->movpos);
+  }
+  output(":%.2f\"",edge->distance);
+}
+
 static void printforneato(void) {
   Node *node;
   EdgeEnd *edgeend;
@@ -666,21 +680,37 @@ static void printforneato(void) {
     output("  n%sO -> n%sI [len=0.25 arrowsize=0];\n",
           node->pname, node->pname);
     FOR_EDGES(edge, node,side,edgeend) {
-      output("  n%s%c -> n%s%c [label=\"%s:",
+      output("  n%s%c -> n%s%c",
             edge->ends[0].node->node->pname,
             "OI"[edge->ends[0].node->side],
             edge->ends[1].node->node->pname,
-            "OI"[edge->ends[1].node->side],
-            edge->pname);
-      if (!edge->subseg->segment->segname) {
-       output("?");
-      } else {
-       output(edge->subseg->segment->segname);
-       if (edge->subseg->movfeat) {
-         output("/%s%d",edge->subseg->movfeat,edge->movpos);
-       }
-      }
-      output(":%.2f\"];\n",edge->distance);
+            "OI"[edge->ends[1].node->side]);
+      printforneato_edgelabel(edge, edge->pname);
+      output("];\n");
+    }
+  }
+  output("}\n");
+}
+
+static void printforneatosumm(void) {
+  Node *node;
+  EdgeEnd *edgeend;
+  Edge *edge;
+  int side;
+  
+  output("digraph L {\n");
+
+  FOR_ALL_NODES(node) {
+    output("  n%s [shape=circle, style=filled, color=grey,"
+          " label=\"\", height=0.2];\n",
+          node->pname);
+    FOR_EDGES(edge, node,side,edgeend) {
+      output("  n%s -> n%s",
+            edge->ends[0].node->node->pname,
+            edge->ends[1].node->node->pname);
+      printforneato_edgelabel(edge, 0);
+      output(", color=\"#999999\","
+            " labeldistance=0, port_label_distance=0];\n");
     }
   }
   output("}\n");
@@ -890,6 +920,7 @@ typedef struct {
 static const OpInfo opinfos[]= {
 #define OI(x) { #x, x },
   OI(printforneato)
+  OI(printforneatosumm)
   OI(printforforsafety)
   OI(printforshellscript)
   OI(printforlayoutsegjoins)