@@ -335,6 +335,8 @@ void OpenGLRendererWidget::paintGL()
335335 emit newSelection (selectionMode, selectionReplaces);
336336 }
337337
338+ QMatrix4x4 pose;
339+
338340#ifdef CONTROLS
339341 if (_controls->getCursorFrozen ()) {
340342 if (!_volumeRenderer.getCursorFrozen ()) {
@@ -347,35 +349,40 @@ void OpenGLRendererWidget::paintGL()
347349 _volumeRenderer.unFreezeCursor ();
348350 }
349351 }
350- _volumeRenderer.render (defaultFramebufferObject (), aspect, true , _controls->getControlMatrix ());
352+
353+ pose = _controls->getControlMatrix ();
354+
351355#else
352- QMatrix4x4 pose;
353- if (_tracker != nullptr && _tracker->getTrackerConnected () && pluginInstanceIndex > -1 && _tracker->GetTargetMatrix (pluginInstanceIndex, pose)) {
354-
355- std::unique_lock<std::mutex> lock (mtx);
356+ if (_tracker != nullptr && _tracker->getTrackerConnected () && pluginInstanceIndex > -1 ){
357+ _tracker->GetTargetMatrix (pluginInstanceIndex, pose);
356358
357- pose = offset * pose;
358- QMatrix4x4 invertedPose = pose.inverted ();
359- cameraInModelRef[0 ].setToIdentity ();
360- if (!_volumeRenderer.isStereo ()) {
361- cameraInModelRef[0 ].lookAt (_volumeRenderer.getHeadPosition (), QVector3D (0 ,0 ,0 ), QVector3D (0 , 1 , 0 ));
362- }
363- else {
364- cameraInModelRef[1 ].setToIdentity ();
359+ }
360+ #endif
365361
362+ std::unique_lock<std::mutex> lock (mtx);
363+ pose = offset * pose;
364+ QMatrix4x4 invertedPose = pose.inverted ();
365+ cameraInModelRef[0 ].setToIdentity ();
366+ if (!_volumeRenderer.isStereo ()) {
367+ cameraInModelRef[0 ].lookAt (_volumeRenderer.getHeadPosition (), QVector3D (0 , 0 , 0 ), QVector3D (0 , 1 , 0 ));
368+ }
369+ else {
370+ cameraInModelRef[1 ].setToIdentity ();
366371
367- cameraInModelRef[0 ].lookAt (_volumeRenderer.getStereoCamera (0 ), QVector3D (0 , 0 , 0 ), QVector3D (0 , 1 , 0 ));
368- cameraInModelRef[1 ].lookAt (_volumeRenderer.getStereoCamera (1 ), QVector3D (0 , 0 , 0 ), QVector3D (0 , 1 , 0 ));
369372
373+ cameraInModelRef[0 ].lookAt (_volumeRenderer.getStereoCamera (0 ), QVector3D (0 , 0 , 0 ), QVector3D (0 , 1 , 0 ));
374+ cameraInModelRef[1 ].lookAt (_volumeRenderer.getStereoCamera (1 ), QVector3D (0 , 0 , 0 ), QVector3D (0 , 1 , 0 ));
370375
371- cameraInModelRef[1 ] = invertedPose * cameraInModelRef[1 ];
372- }
373- cameraInModelRef[0 ] = invertedPose * cameraInModelRef[0 ];
374376
375- lock.unlock ();
376-
377- _volumeRenderer.render (defaultFramebufferObject (), aspect, _tracker->poseIsLive (pluginInstanceIndex), pose);
377+ cameraInModelRef[1 ] = invertedPose * cameraInModelRef[1 ];
378378 }
379+ cameraInModelRef[0 ] = invertedPose * cameraInModelRef[0 ];
380+
381+ lock.unlock ();
382+ #ifdef CONTROLS
383+ _volumeRenderer.render (defaultFramebufferObject (), aspect, true , pose);
384+ #else
385+ _volumeRenderer.render (defaultFramebufferObject (), aspect, _tracker->poseIsLive (pluginInstanceIndex), pose);
379386#endif
380387}
381388
0 commit comments