Closed mararad closed 2 years ago
as always, thanks for drawio!
another alternative is elkjs, which, like viz.js, runs in a WebWorker. From a routing perspective, it's good enough to do circuit board planning, and its JSON format is at least partially documented... though there are many many more layout options, which can only really be fully understood through a thorough reading of the java source.
None of my business, as I haven't had time to explore anything in this regard, but is elk being considered?
@bollwyvl I'm not exactly sure what elk provides. The main layout seems to be a Sugiyama that supports groups, are there any others?
I am not a student off the field, but a quick scan reveals that yes, Sugiyama, is the base. We have gotten a lot of use out of how this plays with nesting and ports, and its support for handling very specific constraints/settings, down to the shape level.
http://rtsys.informatik.uni-kiel.de/elklive/examples.html?e=user-hints%2Flayered%2FhorizontalOrder
(unfortunately that doesn't show both)
It would seem that nodes and edges could have the Graphviz Auto Layout applied by using an extension. Iterate through and build up a compatible node connectivity structure then have vis.js output something that gave you the updated node locations. The edge routing probably gets weird rather quickly.