Hi, we have some specific requirements to link routing.
One of those is “bundling” together individual segments of different links running close to each other in parallel; there are others.
Based on what I found on this forum, the solution is to write a few handlers for events which might impact link routing and execute my own algorithm(s) to re-calculate link’ points.
Is there a way to make extensions to GoJS own routing logic to keep custom code in one spot and avoid spaghetti?
First, the general answer to your question: yes, you can customize link routing to do whatever you want. There are several examples of this in the samples – just look for classes that inherit from go.Link.
This includes samples such as:
Unfortunately we have not yet documented all of the methods that can be overridden on the Link class.
Somewhat more general examples override Link.computePoints or Link.makeGeometry, such as:
Regarding the “bundling” of links, if they connect the same pair of ports, you might consider another strategy that is implemented in this sample: Link Bundles