View Issue Details

IDProjectCategoryView StatusLast Update
0003139Slicer4Core: GUIpublic2017-06-13 00:29
Reporterungi Assigned Tolassoan  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionunable to reproduce 
Product Version 
Target VersionFixed in Version 
Summary0003139: 2nd camera goes crazy in dual 3D view under heavy OpenIGTLink traffic
Description

When Slicer receives lots of OpenIGTLink messages. E.g. there is an incoming tracker and an imager stream, the dual 3D view is not usable. Because the right side 3D viewer cannot be controlled, the objects cannot be kept in view.
To reproduce:

  • Download and build OpenIGTLink: https://github.com/openigtlink/OpenIGTLink
  • Run ImagerServer and TrackerServer examples from OpenIGTLink
  • Accept both connections in Slicer.
  • Visualize the transform (as the default stick) and the image in the 3D viewer.
  • Switch to dual 3D view and try to control the right side 3D viewer.
    Here is a video showing the situation: http://youtu.be/m-0omEvGPzI

I set severity to "major" because I use dual 3D view in several needle navigation applications.

Additional Information

I only tested on Windows 64-bit nightly.

TagsNo tags attached.

Activities

kikinis

kikinis

2013-06-09 00:45

developer   ~0008728

i just discovered this one.

lassoan

lassoan

2013-11-27 12:02

developer   ~0010392

This is not specific to OpenIGTLink. If transforms are changed while zooming in/out of a 3D view, the 3D view often gets corrupted (often the other view gets corrupted, too).

How to reproduce:

  • switch to dual 3D layout
  • load an STL model
  • reset 3d view (to focus the box to the loaded 3D view)
  • load mrhead sample
  • show axial slice
  • Run the following python script:

transform = slicer.vtkMRMLLinearTransformNode()
transform.SetName("Transform-moving")
slicer.mrmlScene.AddNode(transform)

transformYmin=-100
transformYmax=100
transformYinc=5

def pt():
global transformYinc
qt.QTimer.singleShot(100, pt)
oldElem=transform.GetMatrixTransformToParent().GetElement(0 ,3)
transform.GetMatrixTransformToParent().SetElement(0 ,3, -oldElem)
oldElem=transform.GetMatrixTransformToParent().GetElement(1 ,3)
oldElem=oldElem+transformYinc
transform.GetMatrixTransformToParent().SetElement(1 ,3, oldElem)
if oldElem > transformYmax or oldElem < transformYmin:
transformYinc=-transformYinc

pt()


  • Apply Transform-moving to both the model and the MRhead image
  • Zoom in/out the 3D view on the right side in quick succession, many times
lassoan

lassoan

2017-06-13 00:29

developer   ~0014797

This cannot be reproduced anymore with recent nightly builds.

Used modified script (updated according to Slicer core changes):

<pre>
transform = slicer.vtkMRMLLinearTransformNode()
transform.SetName("Transform-moving")
slicer.mrmlScene.AddNode(transform)
transformYmin=-100
transformYmax=100
transformYinc=5

def pt():
global transformYinc
qt.QTimer.singleShot(100, pt)
t = vtk.vtkMatrix4x4()
transform.GetMatrixTransformToParent(t)
t.SetElement(0 ,3, -t.GetElement(0 ,3))
t.SetElement(1 ,3, t.GetElement(1 ,3)+transformYinc)
if t.GetElement(1 ,3) > transformYmax or t.GetElement(1 ,3) < transformYmin:
transformYinc = -transformYinc
transform.SetMatrixTransformToParent(t)

pt()
</pre>

Issue History

Date Modified Username Field Change
2013-06-02 19:38 ungi New Issue
2013-06-02 19:38 ungi Status new => assigned
2013-06-02 19:38 ungi Assigned To => kikinis
2013-06-09 00:45 kikinis Assigned To kikinis => jcfr
2013-06-09 00:45 kikinis Note Added: 0008728
2013-06-10 07:11 jcfr Assigned To jcfr =>
2013-06-10 18:33 tokuda Assigned To => tokuda
2013-11-27 12:02 lassoan Note Added: 0010392
2017-06-13 00:29 lassoan Assigned To tokuda => lassoan
2017-06-13 00:29 lassoan Status assigned => resolved
2017-06-13 00:29 lassoan Resolution open => unable to reproduce
2017-06-13 00:29 lassoan Note Added: 0014797