Before I ask you my questions, I would like to describe my project requirements briefly.
Our view can have several types of objects on it.
Those objects can be connected with each other with their conectors.
The connectors implemented as GoLink descendants (It is MyLink class in the attached example).
Every object must be aligned by a view grid with its center.
Every connector must be orthogonal, its every point must be aligned by a view grid.
I’ve prepared a simple example to illustrate my questions. To simplify the example I didn’t include objects that must be connected with connectors, there are only links (connectors) which can be connected with each other by relinking.
To be connected, the links have ports at the ends. You can drag one of a connector end to
another connector end to connect them. (To show ports, define conditional compilation symbol SHOW_PORTS for the whole project or only just for MyLink.cs).
Example link: https://yadi.sk/d/1VYC1jk4rJsW7
Why do the ends of MyLink have offsets? Look at the pic1.png. I expect the first and last
connector point coords are aligned by grid, but they are not. There is offset of 0.5. Ports have no size. Because of the offset I have a bit curved lines that connect objects and it looks not very good.
How can I achieve every connector (not only its ends) point to be aligned by grid? I need it when a connector is moving or relinking.
This issue illustrated by pic2.png
When I move any intermediate connector point, sometimes I have situation when a link segments are not orthogonal to each other (pic3.png). How can I retain orthogonality moving intermediate connector points?
P.S. I use GoDiagram 220.127.116.11. My company has OEM License. I can send you the license information if needed.