From: ian Date: Sat, 23 Aug 2008 11:02:55 +0000 (+0000) Subject: summary graph diagram X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=510305643452a1e64a7f92f60ca5863cd52112d5;p=trains.git summary graph diagram --- diff --git a/layout/.cvsignore b/layout/.cvsignore index 46c4941..b8f50b7 100644 --- a/layout/.cvsignore +++ b/layout/.cvsignore @@ -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 diff --git a/layout/Makefile b/layout/Makefile index a215b45..65de5ae 100644 --- a/layout/Makefile +++ b/layout/Makefile @@ -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) diff --git a/layout/redactgraph.c b/layout/redactgraph.c index 2f38ebc..297b058 100644 --- a/layout/redactgraph.c +++ b/layout/redactgraph.c @@ -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)