Page MenuHomePhabricator

QmitkRenderWindow does not support mouse interaction with multiple renderers.
Closed, InvalidPublic


I have multiple renderers each rendering in a different portion of the same QmitkRenderWindow. I would like to be able to use mouse interaction with all my renderers but the QmitkRenderWindow and mitkRenderWindowBase seems to be designed with a single renderer philosophy in mind.

For example, in mitkRenderWindowBase's wheelMitkevent, the SliceNavigationController to be updated is acquired using mitk::BaseRenderer::GetInstance which uses a 1:1 map between a vtkRenderWindow and a BaseRenderer.

Also, in mitkRenderWindowBase all events are passed down to a single renderer (m_Renderer) which shows that multiple renderers isnt considered an option in the actual design of QmitkRenderWindow.

My precise need was that I wanted a way to trigger mousewheel slice navigation for any of my renderers. I got around by using mitk::BaseRenderer::AddInstance(renderwin, renderer) to 'set focus' on this renderer's navigation controller by crushing the old renderer in the 1:1 map.

So is this a bug or is the QmitkRenderWindow designed to ever just handle 1 renderer? If that's the case, would it be interesting to prevent multiple renderer usage for QmitkRenderWindow?

Event Timeline

Hi Matthieu,

i'm not entirely sure if i understand what you are trying to do.
do i understand it correctly that you are trying to have some sort of a synchronized interaction, meaning that a interaction event such as a mouse click
in one render window is also send to the other render windows ?

kislinsk changed the task status from Invalid to Spite.Jun 27 2018, 1:33 PM
kislinsk added a project: Bulk Edit.
kislinsk changed the task status from Spite to Invalid.Jun 27 2018, 1:37 PM
kislinsk removed a project: Bulk Edit.