Page MenuHomePhabricator

Crosshair disappears if the anatomical planes in a render window are changed
Closed, ResolvedPublic

Description

Using the Render Window Manager to manipulate the render windows, so that for example the first and the second render window both show their loaded image in the same anatomical plane, the crosshair disappears and only one line is visible.
If all 2D-render windows show their loaded image in the same anatomical plane, the crosshair and the helper planes are not visible anymore.
This is due to the fact that the crosshair is just the point of intersection of the helper planes. Since these helper planes are now parallel instead of orthogonal, they don't have a point of intersection anymore.

I would like to discuss different approaches to solve this problem, like introducing a real crosshair or adding more fixed helper planes.

Event Timeline

kislinsk triaged this task as Wishlist priority.May 30 2017, 8:19 AM
kalali raised the priority of this task from Wishlist to Normal.
kalali removed a project: Request for Discussion.

We discussed some approaches and the result was to use the 'QmitkSliceNavigationListener', its 'SliceChanged' signal and the currently selected position to set a point in the style of the point set tool.
This is currently only needed for the render window manager so this task will be linked to T22223.

kalali renamed this task from Crosshair disappears if the anatomical planes in a render window are changed to Render window manager: Crosshair disappears if the anatomical planes in a render window are changed.Jun 12 2017, 5:40 PM
kalali moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

The 'QmitkSliceNavigationListener' and its 'SliceChanged' signal work, but the currently selected position does not return the correct position. This is due to the fact, that the 'QmitkStdMultiWidgetEditor' returns the cross-position of the StdMultiWidget when calling 'GetSelectedPosition(nullptr)'. The cross-position itself is in turn computed by the intersection of the different plane geometries. Since the planes do not have a point of intersection anymore, this approach does not work either.

The current way to go is now to catch the mouse click event of a render window and process it to return the correct position. This works but navigating using the ImageNavigatorPlugin does not show the crosshair correctly.

There seems to be a problem with this approach, too: When setting all three 2D render windows to the same plane, the mouse click event is still caught and the position changes according to the click-position. But the point from the point set does not change its position accordingly. The approach works if one of the 2D render windows is set to a different view plane.

EDIT: There was a render window update call missing. The update call needs to be done explicitly in this case. If all render windows show an image from the same view direction (same anatomical plane) and the position of the crosshair is changed via mouse click, the image itself is not redrawn, since the crosshair is only moved along the plane (mouse click in 2D). No slice is changed. Therefore no render window update was performed in this case.

kalali added a parent task: Restricted Maniphest Task.Jun 21 2017, 1:06 PM
kalali moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.Aug 10 2017, 3:48 PM

An update is needed, since an already existing crosshair from a previously opened render window manager won't be overwritten / reused. This leads to multiple Render Window Manager Crosshairs in the DataManager if the plugin is closed and reopened several times.

kalali renamed this task from Render window manager: Crosshair disappears if the anatomical planes in a render window are changed to Crosshair disappears if the anatomical planes in a render window are changed.Oct 31 2018, 1:37 PM
kalali removed kalali as the assignee of this task.
kalali edited parent tasks, added: T25601: Modernize render window manager; removed: Restricted Maniphest Task.
kalali edited projects, added Restricted Project; removed Restricted Project.
kalali removed subscribers: floca, goch, kislinsk.
kalali closed this task as Resolved.EditedDec 5 2018, 5:38 PM
kalali claimed this task.
kalali moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

This branch has not been merged. Some parts of the code has been taken and used in T23764 to create a new crosshair for the custom multi widget editor.
This task will be closed as resolved, since T23764 will be merged into master.