I don’t understand what it is you want. Are you saying that you have a large rectangle that is “avoidable” for Orthogonal AvoidsNodes link routing, but that you want to specify “channels” inside that rectangle where you permit avoidable links to be routed?
Yes, if you could please elaborate if possible on finding the inverses of the channels within. Arbitrary number of channels, with intersections and without, the result is a set of avoidable rectangles. I understand this is outside GO, but I’d love find out your opinion on how involved this taks is before giving up,
Imagine that your large rectangle was represented by an array of cells, where each cell covers an area perhaps 10x10 document units. Each cell value could be a boolean, initially false. For each small “channel” rectangle, set to true the corresponding cell’s value in the array. (I’m assuming you don’t care about channel rectangles that are outside or extend beyond the bounds of the large rectangle.) Afterwards, the array cells whose values are still false represent avoidable rectangles.
Thanks for the method, I kept on thinking about crazy geometry, very inflexible…
Yes, if a path exists that permits the link to avoid all avoidable areas, GoLink.CalculateStroke will find it.
Thanks, Walter. I will play with this on modified demos, or maybe go for the alternative way by forcing a given path of ports… Will report results here.