Nodes are labeled with their to_s
so homonymous nodes may appear.
Edges are unlabeled.
# Write the POSet as a graphviz digraph.
#
# Nodes are labeled with their `to_s` so homonymous nodes may appear.
# Edges are unlabeled.
fun write_dot(f: Writer)
do
f.write "digraph \{\n"
var ids = new HashMap[E, Int]
for x in elements.keys do
ids[x] = ids.length
end
for x in elements.keys do
var xstr = (x or else "null").to_s.escape_to_dot
var nx = "n{ids[x]}"
f.write "{nx}[label=\"{xstr}\"];\n"
var xe = self.elements[x]
for y in xe.dtos do
var ny = "n{ids[y]}"
if self.has_edge(y,x) then
f.write "{nx} -> {ny}[dir=both];\n"
else
f.write "{nx} -> {ny};\n"
end
end
end
f.write "\}\n"
end
lib/poset/poset.nit:248,2--274,4