Hello everybody.
I’m using graphviz-3.0.0 64 bit for Windows to generate one graph starting from the attached file “Test.dot”.
My command line is: dot -Tsvg -o Test.svg test.dot
The graph is generated (see the Test.svg attachment) but there is one error:
Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
Edge ImageProcessingState → ScanningState
Error: lost ScanningState ImageProcessingState edge
In the .dot file exists a connection between ScanningState → ImageProcessingState (row #37) but in the SVG is missing.
#37: “ScanningState” → “ImageProcessingState” [style=“solid”, label=“ScanCompleted”];
Why?
Where I wrong?
Thanks in advance.
Diego.
Test.dot (3.1 KB)
Emden mentioned this week, flat edges just have a lot more case analysis than inter-rank edges, so things can go wrong. (Off the top of my head, multiple parallel edges, two-cycles, self-edges, ports and routing to interior ports, labels, interference with other nodes, edges and labels on the same level.) He thinks in the long run it could be an advantage to compile the “record” shapes into HTML nodes internally, and then we only need to maintain one implementation of structured nodes.
The only workaround I know is to use HTML nodes.
Thank you scnorth for your fast reply.
Unfortunately the DOT source is generated from the stateless library and there aren’t others availables format.
Of course, is it possible to implement one custom HTML formatter but, in my case, the effort is out of budget.
Best regards.
I wondered about converting records → html recently (Is there a "record label" to "html-like label" converter?).
Naively, I don’t think it would be that big a deal - at least for most common cases. Maybe I’ll revisit.