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)
%.redacted.neato: %.redactgraph
./$< $(REDACT) consistency printforneato $o
+%.summary.neato: %.redactgraph
+ ./$< $(REDACT) consistency printforneatosumm $o
+
%.redacted.forsafety: %.redactgraph
./$< $(REDACT) consistency printforforsafety $o
-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
.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)
/*---------- 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;
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");
static const OpInfo opinfos[]= {
#define OI(x) { #x, x },
OI(printforneato)
+ OI(printforneatosumm)
OI(printforforsafety)
OI(printforshellscript)
OI(printforlayoutsegjoins)