I am using the rectilinear edge router of the Microsoft Automatic Graph Layout library to perform routing of edges between nodes.
One of the problems I am having with it is that it does not seem to try at all to avoid coincident edges. (See "Coincident Lines" at Wolfram)
In other words, it allows the following:
+--------+ +--------+
| Node A | | Node B |
+--------+ +--------+
| |
| |
+-------------+
| +----------------------------+
| | Obstacle Node |
| +----------------------------+
+-------------+
| |
| |
+--------+ +--------+
| Node X | | Node Y |
+--------+ +--------+
Whereas what I want is the following:
+--------+ +--------+
| Node A | | Node B |
+--------+ +--------+
| |
+-+ |
| +-------------+
| | +----------------------------+
| | | Obstacle Node |
| | +----------------------------+
| +-------------+
+-+ |
| |
+--------+ +--------+
| Node X | | Node Y |
+--------+ +--------+
I do not mind when edges cross in some places, because you can still tell which edge goes where, but I do mind when they coincide, because when this happens, it is impossible to tell which edge goes where.
Is there any way to tell the MSAGL rectilinear edge router to avoid coincident edges?