How to correctly rotate an IGroup in a zoomed/scrolled RadDiagram using the RotationService?

1 Answer 16 Views
Diagram, DiagramRibbonBar, DiagramToolBox
Top achievements
Rank 1
Yves asked on 19 Oct 2022, 06:40 AM | edited on 19 Oct 2022, 06:42 AM

I'm currently working on a project where we are using a RadDiagram to dynamically display and plan a distribution hall. Here we are using different elements/shapes in the diagram to represent storage shelves and spaces/spots in those shelves. We want to draw these shelves and their spots either horizontally from left to right or vertically from bottom to top. We want to do this by first drawing the shelve and its spots horizontally and then rotate the shelve using a custom RotationService, that rotates the shelve group programatically. This however has an unwanted side effect, which can be inspected in the provided demo app and below:

The rotation via the custom RotationService appears to move the shelve in the diagram to a "random" position depending on the RadDiagram zoom and scroll position. So a shelve can be drawn and rotated as expected in the first initialization of the diagram.

Initial Diagram creation:

If the diagrams zoom level and scroll position isn't changed a shelve can be selected and rotated using the switch button. This also works as expected.

Shelve rotation without zoom:

If however the zoom of the diagram is changed or the scroll position is changed, following a rotation of a shelve or the redraw of the whole diagram using the refresh button, the vertically rotated shape is moved to a differen position.
If the rotation of the shelve is repeated multiple times the postion of the rotated shape appears to migrate to a point in the diagram. If the shelve reaches this point it will start to rotate properly again, without further change in position.

Shelve rotation with zoom:

Refresh with zoom and different scroll positions: