[vtkusers] interactor with one renwin and multiple renderers

Miroslav Drahos mdrahos at aurisrobotics.com
Fri Dec 9 16:27:03 EST 2016

Hi Robert,

thanks for the reply, it makes sense. From your experience, would you say it is worth the effort for ~6 views? Would you say the performance improvement is noticeable and worth the extra effort? I did some experiments, and I get a bit of a delay on interaction; between the mouse down and  the scene starting to rotate (using stock vtkInteractorStyleTrackballCamera for now). I am guessing it may be the FindPokedRenderer() taking time to figure out which renderer the interaction falls into... Some of my viewports also have a vtkOrientationMarkerWidget, which creates its own renderer, and a couple views have overlay (non-interactive) renderer as well, so the total number of renderers is even higher, maybe 12 altogether.

Thank you!


From: Róbert Špir <spir.robert at gmail.com>
Sent: Thursday, December 8, 2016 8:49:10 PM
To: Miroslav Drahos; vtkusers at vtk.org
Subject: RE: [vtkusers] interactor with one renwin and multiple renderers

Hi Miro,
I'm doing similar task. You can derive your own interactorstyle class from one of the vtkInteractorStyle classes. There you can override mouse and key event functions and using this->Interactor->FindPokedRenderer(mouseX, mouseY); you can detect to which of the multiple renderers the user clicked and handle the interaction according to your needs.

From: vtkusers [mailto:vtkusers-bounces at vtk.org] On Behalf Of Miroslav Drahos
Sent: Thursday, December 8, 2016 10:44 PM
To: vtkusers at vtk.org
Subject: [vtkusers] interactor with one renwin and multiple renderers

Hi VTK folks,

I am trying to optimize my application, and am thinking to replace multiple QVTKWidget2 instances with only one widget + multiple viewports/renderers. Then I could issue only one expensive call to vtkRenderWindow::Render() and re-draw everything.

I saw the example for multiple viewports (http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/MultipleViewports) and it all looks very straightforward, but...

How do I handle interaction? Let's say in a typical quad view setup of a medical application, with 3 orthogonal slices and one 3D view there are different interactor styles needed. But it is the renderwindow that provides interactor, so in the tiled version I would end up with only one common interactor/interactor style.

Any advice is greatly appreciated!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20161209/d365a086/attachment.html>

More information about the vtkusers mailing list