2
私はノードにポートを追加しようとしていますが、明らかに何か不足しています。Agraph_tのノードにポートを追加する方法は?
aginit();
Agraph_t *g = agopen("g", AGFLAG_DIRECTED);
Agsym_t *symRankdir = agraphattr(g, "rankdir", "LR");
Agsym_t *symShape = agnodeattr(g, "shape", "Mrecord");
Agsym_t *symLabel = agnodeattr(g, "label", "");
Agnode_t *n1 = agnode(g, "n1");
n1->attr[1] = "n1|<p1>p1|<p2>p2";
Agnode_t *n2 = agnode(g, "n2");
n2->attr[1] = "n2|<p1>p1|<p2>p2";
Agedge_t *e = agedge(g, n1, n2);
e->u.tail_port.defined = true;
e->u.tail_port.name = "p1";
e->u.head_port.defined = true;
e->u.head_port.name = "p2";
FILE *fp = fopen(argv[1], "w");
agwrite(g, fp);
出力:
digraph g {
graph [rankdir=LR];
node [shape=Mrecord];
n1 [label="n1|<p1>p1|<p2>p2"];
n2 [label="n2|<p1>p1|<p2>p2"];
n1 -> n2;
}
出力のエッジがn1:p1 -> n2:p2
であるべきです。それを実現するためにコードに何を設定する必要がありますか?