Developer Meetings/20120508

From Slicer Wiki
Revision as of 17:58, 8 May 2012 by Finetjul (talk | contribs)
Jump to: navigation, search
Home < Developer Meetings < 20120508

Attendees:

Problem with the SceneView nodes

Hi Alex,

I've been working on the issue, and I'll commit a fix soon.
While investigating what was going wrong, I ended up doing some interesting discoveries:
 - vtkMRMLDisplayableNode behavior was inconsistent. I fixed it in a series of commits this past week.
 - vtkMRMLSceneViewNode::RestoreScene() is doing something dangerous. 
I added a unit test to reveal the problem:http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=20030.
This mostly results in "random" crashes when restoring multiple scenes. I created a Mantis issue: http://www.na-mic.org/Bug/view.php?id=1993.

To summarize, the problem is that RestoreScene (https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Core/vtkMRMLSceneViewNode.cxx#L472), is adding its internal nodes into the scene, if the node is modified, then restoring the scene again will restore the modified version instead of the original version. 

I believe a fix would be to create a copy of the node and add the copy into the scene instead of the node itself. As it is a sensitive change, lots of tests must be done. 

Alex: do you have time to look at it ? 

All: I added a test into slicer that will be failing until the issue is fixed. I wonder if it's the correct process we want to follow.

Thanks,
Julien.
Hi Ron & Alex, 

r20033 fixes the original issue: restoring the sceneview CST-R from  2012-04-27-aDemo-PeritumoralTractParcellation  doesn't crash anymore.

However, r20034 identifies more issues with the scene views. I created a Mantis issue: http://www.na-mic.org/Bug/view.php?id=1995 in addition to the one I created earlier http://www.na-mic.org/Bug/view.php?id=1993.

All:
As a personal side note, the current Node/NodeID/ReferenceID/UpdateScene/... MRML mechanism is extremely complex.
It is humanly very challenging to have a clear understanding of the whole system (this explains the unlimited source of bugs in MRML :-) ). 
We should seriously rethink the MRML scenes and observations to have a unique way to "link" nodes together. 
I guess it's another topic for the summer project week :-)