[vtkusers] QVTKWidget Camera vs vtkOrientationMarkerWidget

Sankhesh Jhaveri sankhesh.jhaveri at kitware.com
Wed Dec 28 10:57:50 EST 2016


Luis,

It seems like you were able to get past the error about interactor not
being able to control the event loop using Dean’s suggestion.

I am not sure why you’re getting OpenGL errors but one thing I noticed is
that you are using the OpenGL backend. Would you be able to try the OpenGL2
backend?

Moreover, which version of Qt are you testing against?
​

On Wed, Dec 28, 2016 at 10:35 AM Luis Vieira <luis.vieira at vektore.com>
wrote:

> Tks Dean,
>
>
>
> But still same, didn’t work: Following Exceptions and snapshot
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLRenderer.cxx, line 126
>
> vtkOpenGLRenderer (0000004A68B268A0): failed ater ClearLights 16 OpenGL
> errors detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLRenderer.cxx, line
> 1202
>
> vtkOpenGLRenderer (0000004A68B268A0): failed after Clear 16 OpenGL errors
> detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLCamera.cxx, line 176
>
> vtkOpenGLCamera (0000004A67EA1870): failed after Render 16 OpenGL errors
> detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLLight.cxx, line 118
>
> vtkOpenGLLight (0000004A68A31190): failed after Render 16 OpenGL errors
> detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLRenderer.cxx, line 192
>
> vtkOpenGLRenderer (0000004A68B268A0): failed after UpdateLights 16 OpenGL
> errors detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\Rendering\OpenGL\vtkOpenGLRenderer.cxx, line 282
>
> vtkOpenGLRenderer (0000004A68B268A0): failed after DeviceRender 16 OpenGL
> errors detected
>
>   0 : (1282) Invalid operation
>
>   1 : (1282) Invalid operation
>
>   2 : (1282) Invalid operation
>
>   3 : (1282) Invalid operation
>
>   4 : (1282) Invalid operation
>
>   5 : (1282) Invalid operation
>
>   6 : (1282) Invalid operation
>
>   7 : (1282) Invalid operation
>
>   8 : (1282) Invalid operation
>
>   9 : (1282) Invalid operation
>
>   10 : (1282) Invalid operation
>
>   11 : (1282) Invalid operation
>
>   12 : (1282) Invalid operation
>
>   13 : (1282) Invalid operation
>
>   14 : (1282) Invalid operation
>
>   15 : (1282) Invalid operation
>
>
>
>
>
> // create a window to make it stereo capable and give it to QVTKWidget
>
>               // create a window to make it stereo capable and give it to
> QVTKWidget
>
>               vtkRenderWindow* renwin = vtkRenderWindow::New();
>
>               renwin->StereoCapableWindowOn();
>
>
>
>               // Activate 3DConnexion device only on the left render
> window.
>
>
>
>               mainViewPort->SetUseTDx(true);
>
>
>
>               mainViewPort->SetRenderWindow(renwin);
>
>               //renwin->Delete();
>
>
>
>               const double angleSensitivity = 0.02;
>
>               const double translationSensitivity = 0.001;
>
>
>
>               QVTKInteractor *iren = mainViewPort->GetInteractor();
>
>               vtkInteractorStyle *s =
>
>                       static_cast<vtkInteractorStyle *>(iren->
> GetInteractorStyle());
>
>               vtkTDxInteractorStyleCamera *t =
>
>                       static_cast<vtkTDxInteractorStyleCamera *>(s->
> GetTDxStyle());
>
>
>
>               t->GetSettings()->SetAngleSensitivity(angleSensitivity);
>
>               t->GetSettings()->SetTranslationXSensitivity(
> translationSensitivity);
>
>               t->GetSettings()->SetTranslationYSensitivity(
> translationSensitivity);
>
>               t->GetSettings()->SetTranslationZSensitivity(
> translationSensitivity);
>
>
>
>               // add a renderer
>
>               Ren1 = vtkRenderer::New();
>
>               mainViewPort->GetRenderWindow()->AddRenderer(Ren1);
>
>
>
>
>
>
>
>               vtkAxesActor* viewPortAxActor = vtkAxesActor::New();
>
>               // The axes are positioned with a user transform
>
>               //viewPortAxActor->SetUserTransform(transform);
>
>
>
>               viewPortAxActor->GetXAxisCaptionActor2D()->
> GetCaptionTextProperty()->SetColor(1, 1, 1);
>
>               viewPortAxActor->SetXAxisLabelText("E");
>
>               viewPortAxActor->GetXAxisCaptionActor2D()->SetWidth(0.05);
>
>               viewPortAxActor->GetXAxisCaptionActor2D()->SetHeight(0.05);
>
>               viewPortAxActor->GetYAxisCaptionActor2D()->
> GetCaptionTextProperty()->SetColor(1, 1, 1);
>
>               viewPortAxActor->SetYAxisLabelText("N");
>
>               viewPortAxActor->GetYAxisCaptionActor2D()->SetWidth(0.05);
>
>               viewPortAxActor->GetYAxisCaptionActor2D()->SetHeight(0.05);
>
>               viewPortAxActor->GetZAxisCaptionActor2D()->
> GetCaptionTextProperty()->SetColor(1, 1, 1);
>
>               viewPortAxActor->SetZAxisLabelText("Up");
>
>               viewPortAxActor->GetZAxisCaptionActor2D()->SetWidth(0.05);
>
>               viewPortAxActor->GetZAxisCaptionActor2D()->SetHeight(0.05);
>
>
>
>               vtkSmartPointer<vtkOrientationMarkerWidget> viewPortOMWidget
> = vtkSmartPointer<vtkOrientationMarkerWidget>::New();
>
>               viewPortOMWidget->SetOrientationMarker(viewPortAxActor);
>
>               viewPortOMWidget->SetInteractor(mainViewPort->GetInteractor
> ());
>
>               viewPortOMWidget->SetViewport(0.7, 0.0, 1.00, 0.3);
>
>               viewPortOMWidget->SetEnabled(1);
>
>               viewPortOMWidget->InteractiveOn();
>
>
>
>               Ren1->ResetCamera();
>
>               Ren1->Render();
>
>
>
>               //mainViewPort->GetRenderWindow()->GetInteractor()->Start();
>
>
>
>
>
> *Luis Vieira*,
>
> Consultant, Software Engineer
>
> Vektore Exploration Consulting Corporation
>
> ca.linkedin.com/in/joaoluisvieira
>
> luis.vieira at vektore.com
>
> www.vektore.com
>
>
>
> *From:* Dean Inglis [mailto:inglis.dl at gmail.com]
> *Sent:* December 28, 2016 8:35 AM
> *To:* Luis Vieira <luis.vieira at vektore.com>
> *Cc:* VTK Users <vtkusers at vtk.org>
>
>
> *Subject:* Re: [vtkusers] QVTKWidget Camera vs vtkOrientationMarkerWidget
>
>
>
> Hi Luis,
>
>
>
> do not call Start() on the interactor within your Qt programs as Qt
>
> manages its own event loop.
>
> Dean
>
>
>
> On Tue, Dec 27, 2016 at 5:48 PM, Luis Vieira <luis.vieira at vektore.com>
> wrote:
>
> Hello vtkusers,
>
>
>
> Anybody knows how to use vtkOrientationMarkerWidget with QVTKWidget
> interactor? I have been trying to implement the VTK example (
> http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/DisplayCoordinateAxes)
> and it worked smoothly. However, within  my QVTKWidget Camera, and I caught
>  the following exception:
>
>
>
> ERROR: In C:\VTK\VTK-7.0.0\GUISupport\Qt\QVTKInteractor.cxx, line 147
>
> QVTKInteractor (000000F46583D670): QVTKInteractor cannot control the event
> loop.
>
>
>
> Following my vtkOrientationMarkerWidget snapshot:
>
> vtkRenderWindow* renwin = vtkRenderWindow::New();
>
> myQVTKWidgetCAmera->SetRenderWindow(renwin);
>
> Ren1 = vtkRenderer::New();
>
> myQVTKWidgetCAmera->GetRenderWindow()->AddRenderer(Ren1);
>
>
>
> vtkAxesActor* myAxActor = vtkAxesActor::New();
>
> vtkSmartPointer<vtkOrientationMarkerWidget> myWidget = vtkSmartPointer<
> vtkOrientationMarkerWidget>::New();
>
>               myWidget ->SetOrientationMarker(myAxActor);
>
>               myWidget ->SetInteractor(myQVTKWidgetCAmera->GetRenderWindow
> ()->GetInteractor());
>
>               myWidget ->SetViewport(0.7, 0.0, 1.00, 0.3);
>
>               myWidget ->SetEnabled(1);
>
>               myWidget ->InteractiveOn();
>
>
>
> Ren1->ResetCamera();
>
> Ren1->Render();
>
>
>
> myQVTKWidgetCAmera->GetRenderWindow()->GetInteractor()->Start();
>
>
>
> Thank you very much for any help,
>
>
>
>
>
> *Luis Vieira*,
>
> Consultant, Software Engineer
>
> Vektore Exploration Consulting Corporation
>
> ca.linkedin.com/in/joaoluisvieira
>
> luis.vieira at vektore.com
>
> www.vektore.com
>
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
-- 
Sankhesh Jhaveri *Sr. Research & Development Engineer* | Kitware
<http://www.kitware.com/> | (518) 881-4417
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20161228/089905ec/attachment-0001.html>


More information about the vtkusers mailing list