Proposition to preserve Slice view aspect ratio when resizing the window


In SlicerCAT I add support to modify slice view’s aspect ratio, i.e. the horizontal scaling may not be equal to vertical scaling.

When slice window is resized it calls vtkMRMLSliceLogic::ResizeSliceNode that modify FOV while resetting the aspect ratio.

For example if I set aspect ratio for slice view 2:1 then after the slice window is resized I get the restored aspect ratio 1:1. If I manually changed the aspect ratio then most likely I don’t want that it was reset after resizing the window.
May we change that so that the aspect ratio stays untouched?
To do so it is enough to delete 5 lines of code of ResizeSliceNode function.

If the user wants to reset the aspect ratio (to 1:1) then there is a button that resets FOV and aspect ratio:

I’d be very wary of introducing the possibility of accidental distortions for our core medical imaging use cases. Instead of changing the view, why don’t you use a transformation to compress or expand the data along an axis. Or you could observe the slice node and set it to the desired aspect ratio any time it’s updated.

1 Like

Thank for response,

Applying transform to every node is much harder as I also use XYZ axes shown at all borders that are represented by axes actors. It is much easier to set FOV.

That is possible solution.

Just to clarify: it is completely fine if this proposition will be declined. I can patch this function during SlicerCAT build so it is not a problem for me. I just thought that it would be more intuitive for any Slicer user.