[vtkusers] How to restrict vtkGenericOpenGLRenderWindow area to vtkResliceImageViewer render window

ran kor1581 at gmail.com
Wed Dec 12 00:55:05 EST 2018


As part of an application for displaying DICOM images in Qt widget 
in windows 10, I'm using vtkResliceImageViewer, custom 
vtkInteractorStyleImage, vtkGenericOpenGLRenderWindow, QVTKOpenGLWidget for 
displaying and fitting the images in Qt window. 
I also use vtkPlaneWidget, mriVtkLineWidget2 widgets inside the DICOM
viewer. 
It is working properly, but the problem iswWhile Initially set the
coordinates for mriVtkLineWidget2 and vtkPlaneWidget objects it's correctly
displaying inside the DICOM image displayed area. But when moving the
widgets with mouse interactions, its rendering outside the 
DICOM image rendered area. 
But I need to restrict the widgets movement within the DICOM image displayed
area, ie within vtkResliceImageViewer render window. 

I expect the problem is the DICOM image displaying inside the 
vtkResliceImageViewer render window and the 
vtkGenericOpenGLRenderWindow render window extends beyond
vtkResliceImageViewer render window, that's because the widgets can move
beyond the DICOM displayed region.
 How can I restrict widgets inside DICOM displaying area? 

My rendering code is something like this,

    vtkNew <vtkGenericOpenGLRenderWindow> m_openGlRenWin; 
    vtkNew <MyVtkInteractionStyleImage> m_InteractorStyleWin; 
    vtkNew <vtkResliceImageViewer> m_vtkImViewerWin; 
    QScopedPointer <QVTKOpenGLWidget> m_vtkWgtWin; 
    vtkNew<vtkPlaneWidget> m_vtkPlaneWid; 
    vtkNew <mriVtkLineWidget2> m_Line; 

   m_vtkWgtWin->SetRenderWindow(m_openGlRenWin); 
   m_vtkImViewerWin->SetRenderWindow(m_openGlRenWin); 
   m_vtkImViewerWin->SetupInteractor(m_openGlRenWin->GetInteractor()); 
    
m_openGlRenWin->GetInteractor()->SetInteractorStyle(m_InteractorStyleWin); 
   m_vtkPlaneWid->SetInteractor(m_vtkImViewerWin->GetInteractor()); 
  m_Line->SetInteractor(m_vtkImViewerWin->GetInteractor()); 

The code is not full, the only relevant part is included.
Before I have implemented the same application with QVTKWidget instead of
vtkGenericOpenGLRenderWindow & QVTKOpenGLWidget at that time by default the
widget movement was restricted within vtkInteractorStyleImage.
By latest VTK release I can't use QVTKWidget so changed to
vtkGenericOpenGLRenderWindow & QVTKOpenGLWidget, then the problem occurred.
Please help to restrict the widget movement.
Is it possible to set vtkGenericOpenGLRenderWindow render area to
vtkResliceImageViewer render area?



--
Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html


More information about the vtkusers mailing list