Difference between revisions of "AHM 2007:Slicer3 Developer Feedback"

From NAMIC Wiki
Jump to: navigation, search
Line 23: Line 23:
 
* It is also difficult to understand how the MRML callback happens, and how to set a new one up.  It would be great to have a simple overview on the observers somewhere (or even the SVN web for easier code navigation).
 
* It is also difficult to understand how the MRML callback happens, and how to set a new one up.  It would be great to have a simple overview on the observers somewhere (or even the SVN web for easier code navigation).
 
* If a vtkMRMLNode inherits from another one used in slicer (for example mine inherits from the modelNode currently) then the subclass will show up on all of the superclass menus. This is because the vtk "IsA" function is used rather than a direct match.  I believe this is feature that is not desired.
 
* If a vtkMRMLNode inherits from another one used in slicer (for example mine inherits from the modelNode currently) then the subclass will show up on all of the superclass menus. This is because the vtk "IsA" function is used rather than a direct match.  I believe this is feature that is not desired.
 +
 +
===What I would like in Slicer3 base...===
 +
* More documentation, comments, etc.
  
 
=EM=
 
=EM=
  
 
=IGT=
 
=IGT=

Revision as of 20:05, 4 January 2007

Home < AHM 2007:Slicer3 Developer Feedback

Back to AHM_2007#Wednesday.2C_Jan_10_2007:Project_Activities

Topics for this session:

  • Information to the developer community about how these projects have approached developing their code for slicer3 (what's the architecture of their modules)
  • Feedback to the base developers about what was easy or hard in the code writing
  • What would they like to see in the slicer3 base and/or in VTK, ITK, KKWidgets, etc to make the module development more effective


DTI

DTI Module: Raul San Jose

Tractography Module: Lauren O'Donnell

Module Architecture

  • Tractography is represented as a vtkMRMLFiberBundleNode. Display parameters are stored in a vtkMRMLFiberBundleDisplayNode, and storage (load/save) handled by vtkMRMLFiberBundleStorageNode. Basic operations of adding new fiber bundles, etc. are in vtkMRMLFiberBundleLogic.
  • vtkMRMLFiberBundleDisplayLogic is needed to create "hidden" slicer models that will be rendered in the MRML scene. Otherwise base classes would have to be heavily edited to handle tractography display using the display node.
  • There will be several slicer module units to handle tractography. The division will be by Load/Save/Display, Editing (to manually add, select, delete, or to use ROI selection), Seeding, etc.
  • Initial work is on the Load/Save/Display and the entire MRML infrastructure.

Feedback on Slicer3

  • When adding a new module and a new datatype, it is difficult to find the places in Base code that must be edited.
  • It is also difficult to understand how the MRML callback happens, and how to set a new one up. It would be great to have a simple overview on the observers somewhere (or even the SVN web for easier code navigation).
  • If a vtkMRMLNode inherits from another one used in slicer (for example mine inherits from the modelNode currently) then the subclass will show up on all of the superclass menus. This is because the vtk "IsA" function is used rather than a direct match. I believe this is feature that is not desired.

What I would like in Slicer3 base...

  • More documentation, comments, etc.

EM

IGT