We’re experimenting with setsPortSpots: false in LayeredDigraphLayout to make our diagram less “wavy.” The overall flow looks much cleaner, but the curved links still connect to the top and bottom of each node, even though I expected them to originate from the node centre once setsPortSpots was disabled.
It feels like I’m missing a setting that tells the layout (or router) to honour the centre-port geometry without introducing overlaps. Could you point me in the right direction?
The routing in your middle sample is pretty wild – we should address that. I guess we never handled the case where a fromSpot or toSpot was Center.
It seems to me that the routing is pretty much the same whether the port is is whole Node or just the TextBlock that is named “label”. But I’ll investigate to see what can be done.
Are you aware that if you have links coming out as if from the center of the node, or going into towards to the center of the node, that you will have more links crossing over other nodes?
That might not be a problem in this particular graph, but it will be when there are more nodes in a layer close to each other.
We originally used the standard layouting with top and bottom ports, and while it was working fine, it seemed that it could be improved. In our graph we have considerable number of bakward links, and it looked slightly confusing to users, not really eye-catching.
After setting setsPortSpots: false those backward links are more obviously placed and while links are not so neatly arranged after consulation with users we found out that this variant is preferred more. This layout allows to eye-catch ping-pong scenarious visually, like what happens around “New” node. And we still dont have that much overlaps with nodes and links.
And when we have even more nodes and edges in the graph in becomes a bit more messy, but at this point we recommend to use filters to reduce number of connections anyway because it is very hard to look at such complex diagrams.
So, to answer your question, yes we aware of some overlapping issues, but it seems it is negligible. We are trying different combinations and are open to any suggestion. So far only option I didn’t try is to use AvoidsLinksRouter but it seems that will completely replace routing provided by LayeredDigraphLayout, which will change graph considerably.
Maybe there is a way to still use standard routing from LayeredDigraphLayout for most of the curly links, but for short direct and reverse links to use just straight lines?