Create crosshair for single render windows
Open, NormalPublic


Currently the crosshair is realized by the intersection of the three view planes. This only works in the StdMultiWidget, where all three 2D-views always show the three anatomical (orthogonal) planes.
Using the custom multi widget, it may happen that the three view planes are parallel and therefore no intersection is visible.
The problem is already mentioned in T22876.

Furthermore, the crosshair is based on the GeometryPlanes computed by the different views. If we want to have individual render windows, we might not provide all three views of a loaded image and therefore cannot retrieve the geometry plane of three different views.

The questions remains: What is the purpose of a crosshair / position pointer for a single render window?

kalali created this task.Nov 17 2017, 1:01 PM
kalali raised the priority of this task from Wishlist to Needs Triage.Dec 6 2017, 1:24 PM
kalali updated the task description. (Show Details)Feb 7 2018, 10:42 AM
kislinsk triaged this task as Wishlist priority.Feb 8 2018, 9:24 PM

Using the new synchronization and display action event broadcast class, the SetCrosshair-function (invoking a DisplaySetCrosshairEvent) could be used to set a render specific crosshair.
In the render window manager a point set was used for creating a crosshair (see T22876). We will stick to the point set approach.

kalali claimed this task.May 8 2018, 10:33 AM
kalali raised the priority of this task from Wishlist to Normal.
kalali added a comment.May 8 2018, 5:44 PM

Each QmitkRenderWindowWidget now comes with its own crosshair (as a pointset) that can be moved via the mouse interactions (either synchronized or non synchronized).

kalali added a comment.May 9 2018, 4:47 PM

The crosshair currently does not update the status bar text (to show the pixel value and selected position).
Since the helper plane widgets were removed, the image slice navigator is currently disabled. However, is the 'GetSelectedPosition' of the multi widget editor usable?

kalali added a comment.May 9 2018, 6:00 PM

Updating the status bar was a task of the DisplayActionEventBroadcast-class ('DisplayInteractor' for the StdMultiWidget). The UpdateStatusbar-function is now implemented. However, we should think about moving this implementation to another place. It is not really the job of any interaction class.