Difference between revisions of "2010 Summer Project Week Breakout Session:VTK Widget"
From NAMIC Wiki
(→Agenda) |
(→Agenda) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
==Agenda== | ==Agenda== | ||
+ | * Fiducials - integration into miAnnotation | ||
* Mouse modes | * Mouse modes | ||
** hover zone size versus pick zone size | ** hover zone size versus pick zone size | ||
Line 10: | Line 11: | ||
* Currently used VTK Widgets | * Currently used VTK Widgets | ||
** Debugging | ** Debugging | ||
+ | * miAnnotation status report | ||
* VTK Widgets being incorporated soon | * VTK Widgets being incorporated soon | ||
** surface model vertex inspector (contrained to surface, updating text box) | ** surface model vertex inspector (contrained to surface, updating text box) | ||
** Use cases | ** Use cases | ||
+ | * miAnnotation status report | ||
* Wish list items | * Wish list items | ||
+ | |||
+ | ===Notes=== | ||
+ | |||
+ | Notes taken by Nicole, to be cleaned up: | ||
+ | <pre> | ||
+ | |||
+ | - kitware general questions to the vtk list, special features to JC | ||
+ | - make sure that have a test, baseline etc. | ||
+ | - slicer vtk git copy | ||
+ | - two branches of vtk git, one tracking / cherry picking branches from vtk, one patches that we want to do | ||
+ | - git client for svn only works on master, not branch | ||
+ | - branches for each patch that want to apply | ||
+ | - vtk to git way of thinking: master branch, next branch, maint branch | ||
+ | - changes to widget to support the annotaion project (rubber band lines, click to place, etc), annot project has to drive the changes | ||
+ | - if some missing methods or things not exposed, both namic funded widget development and fixes to current widgets in same repository | ||
+ | - vtk data is in a git repository, need to fork vtkdata | ||
+ | - making basic widgets work versus new widgets wishlist | ||
+ | - fixes can be at vtk level or slicer application | ||
+ | - create pure vtk tests to show issues | ||
+ | - getting widgets to work in 2d and 3d (some only have reps in one of the two) | ||
+ | - 2d handles versus 3d handles (2d are fixed to a plane) | ||
+ | - like to do at vtk level: | ||
+ | - depth sorting of widgets (can't pick the "top" one, picks the first added to the renderer) | ||
+ | - vtk performance esp the vtkseedwidget when have lots of actors | ||
+ | - very specific ways to interact with widgets that are opaque to users | ||
+ | - getting stuck in reformat widget trnaslate | ||
+ | - moving fids: have to be in plane perpendictular to view ray (show an axis?) | ||
+ | - rotate the view to constrain to surface | ||
+ | - widgets calling render directly too often | ||
+ | - vtk widget designer | ||
+ | - want to see a consistent way to tell if something can be selectged, is selected, what it's manipulating | ||
+ | - wendy do a spec for kitware | ||
+ | - how to tell something is selected | ||
+ | - wiki page | ||
+ | - slicer 3.6 fine tuning + miAnnotation larger scope | ||
+ | - new widgets | ||
+ | - Sudhir from Univ of Pittsburgh, endocopy apps for neurosurgeons, widget can control a cylinder width and length to quantify how much damage done to fibres | ||
+ | - needs the graphics, and the interaction | ||
+ | - use for clipping/volume rendering visib inside/out? | ||
+ | - field of view/cone | ||
+ | - cylinder widget, as it moves, it updates fibre tracking | ||
+ | - see transform widget in Maya | ||
+ | - move along a curve to snap to surface/transition animation | ||
+ | |||
+ | - can put a ruler widget three ways | ||
+ | - create anode and put the ruler in the scene | ||
+ | - two fids and get a ruler | ||
+ | - click, get rubber bandk, click | ||
+ | - if when make the first click, get an overlay to show which click you're on | ||
+ | - can we get a Qt programmable 3d cursor? yes | ||
+ | - need to get at hover? state? application from widget | ||
+ | |||
+ | - miAnnotaion | ||
+ | - overlay annotation like siemens workstation, ie to pick a vtk widget (can do some of it in Qt) | ||
+ | - transition between 2d and 3d | ||
+ | - can do a lot of the 2d stuff in Qt | ||
+ | - what do you want to drive the 3d renderer? | ||
+ | - right click on a widget to get a menu to configure | ||
+ | - decision tree: waht do we want to do? which widget should we use? debug the widget to get it working like we wish | ||
+ | |||
+ | - check that | ||
+ | |||
+ | - vtk widget and qt level mrml nodes that are of annotation types | ||
+ | - architecture evolved | ||
+ | - synch between mrml nodes and manifestations in qt or vtk | ||
+ | - create a Libs/ library that is LibsMRMLRenderManager | ||
+ | - when you have a scene, new nodes are added, of type you're interested in, cases where there's a bulk change to the scene, app level know it's a bulk change (ie new scene), manager will be told that the mrml scene is now null, remove stuff, then given a new scene | ||
+ | - testing need to test on scene close, load | ||
+ | - on scene close, all managers told null scene | ||
+ | - as move to slicer4 arch, how divy up work | ||
+ | - jc doing prototype arch - superclass and slice node | ||
+ | - for 3d box, lettes, there's a node (view node now), have a manager to deal with it | ||
+ | - daniel working with kilian in Penn in July working up then in aug workingin bosotn, daneil and I work on how to do the translation | ||
+ | - alex working with jc on superclass and then on the model | ||
+ | - daniel and I will split up miAnnot and fids and rulers etc. | ||
+ | - libs/mrmllogic, libs/vtkmrml, Libs/DisplayableManager/vtkMRMLAbstractDisplayableManager.h vtkmrmlmodeldisplayablemanager.h | ||
+ | - vtk mrml displayable manager in the lib | ||
+ | - vtk mrml annotations displaybale manager | ||
+ | - renaming, ie vtkslicerslicelogic to vtkmrmlslicelogic? at the slicer4 migration step | ||
+ | - in transition, what ot do with miAnnotation | ||
+ | - steve proposes that htey work on the vtk level, quantify examples, look and feel debugging | ||
+ | - when daniel and I sit down, we work on the port | ||
+ | - reuse the measurements and fids modules or do the annotation rewrite? | ||
+ | - alex can do the ROI manager, but with the annotation roi node | ||
+ | - need mrml backward compatibility | ||
+ | - freeze the fids and measurements and get the miannotation fully functionally | ||
+ | - steve proposes that we change UI to Annotation, agreed | ||
+ | - ifdef on Slicer3_use_qt, try to transfrer to the superclass of the manager | ||
+ | |||
+ | </pre> | ||
+ | ===Attendees=== | ||
+ | |||
+ | * Kilian Pohl | ||
+ | * Nicole Aucoin | ||
+ | * Daniel H | ||
+ | * Wendy Plesniak | ||
+ | * JC | ||
+ | * Steve Pieper | ||
+ | * Sudhir Pathak |
Latest revision as of 22:43, 24 June 2010
Home < 2010 Summer Project Week Breakout Session:VTK WidgetBack to Project Week Agenda
Session Leaders: Kilian Pohl, Nicole Aucoin
Agenda
- Fiducials - integration into miAnnotation
- Mouse modes
- hover zone size versus pick zone size
- click to place on rulers and angles as well as being able to turn that off
- Currently used VTK Widgets
- Debugging
- miAnnotation status report
- VTK Widgets being incorporated soon
- surface model vertex inspector (contrained to surface, updating text box)
- Use cases
- miAnnotation status report
- Wish list items
Notes
Notes taken by Nicole, to be cleaned up:
- kitware general questions to the vtk list, special features to JC - make sure that have a test, baseline etc. - slicer vtk git copy - two branches of vtk git, one tracking / cherry picking branches from vtk, one patches that we want to do - git client for svn only works on master, not branch - branches for each patch that want to apply - vtk to git way of thinking: master branch, next branch, maint branch - changes to widget to support the annotaion project (rubber band lines, click to place, etc), annot project has to drive the changes - if some missing methods or things not exposed, both namic funded widget development and fixes to current widgets in same repository - vtk data is in a git repository, need to fork vtkdata - making basic widgets work versus new widgets wishlist - fixes can be at vtk level or slicer application - create pure vtk tests to show issues - getting widgets to work in 2d and 3d (some only have reps in one of the two) - 2d handles versus 3d handles (2d are fixed to a plane) - like to do at vtk level: - depth sorting of widgets (can't pick the "top" one, picks the first added to the renderer) - vtk performance esp the vtkseedwidget when have lots of actors - very specific ways to interact with widgets that are opaque to users - getting stuck in reformat widget trnaslate - moving fids: have to be in plane perpendictular to view ray (show an axis?) - rotate the view to constrain to surface - widgets calling render directly too often - vtk widget designer - want to see a consistent way to tell if something can be selectged, is selected, what it's manipulating - wendy do a spec for kitware - how to tell something is selected - wiki page - slicer 3.6 fine tuning + miAnnotation larger scope - new widgets - Sudhir from Univ of Pittsburgh, endocopy apps for neurosurgeons, widget can control a cylinder width and length to quantify how much damage done to fibres - needs the graphics, and the interaction - use for clipping/volume rendering visib inside/out? - field of view/cone - cylinder widget, as it moves, it updates fibre tracking - see transform widget in Maya - move along a curve to snap to surface/transition animation - can put a ruler widget three ways - create anode and put the ruler in the scene - two fids and get a ruler - click, get rubber bandk, click - if when make the first click, get an overlay to show which click you're on - can we get a Qt programmable 3d cursor? yes - need to get at hover? state? application from widget - miAnnotaion - overlay annotation like siemens workstation, ie to pick a vtk widget (can do some of it in Qt) - transition between 2d and 3d - can do a lot of the 2d stuff in Qt - what do you want to drive the 3d renderer? - right click on a widget to get a menu to configure - decision tree: waht do we want to do? which widget should we use? debug the widget to get it working like we wish - check that - vtk widget and qt level mrml nodes that are of annotation types - architecture evolved - synch between mrml nodes and manifestations in qt or vtk - create a Libs/ library that is LibsMRMLRenderManager - when you have a scene, new nodes are added, of type you're interested in, cases where there's a bulk change to the scene, app level know it's a bulk change (ie new scene), manager will be told that the mrml scene is now null, remove stuff, then given a new scene - testing need to test on scene close, load - on scene close, all managers told null scene - as move to slicer4 arch, how divy up work - jc doing prototype arch - superclass and slice node - for 3d box, lettes, there's a node (view node now), have a manager to deal with it - daniel working with kilian in Penn in July working up then in aug workingin bosotn, daneil and I work on how to do the translation - alex working with jc on superclass and then on the model - daniel and I will split up miAnnot and fids and rulers etc. - libs/mrmllogic, libs/vtkmrml, Libs/DisplayableManager/vtkMRMLAbstractDisplayableManager.h vtkmrmlmodeldisplayablemanager.h - vtk mrml displayable manager in the lib - vtk mrml annotations displaybale manager - renaming, ie vtkslicerslicelogic to vtkmrmlslicelogic? at the slicer4 migration step - in transition, what ot do with miAnnotation - steve proposes that htey work on the vtk level, quantify examples, look and feel debugging - when daniel and I sit down, we work on the port - reuse the measurements and fids modules or do the annotation rewrite? - alex can do the ROI manager, but with the annotation roi node - need mrml backward compatibility - freeze the fids and measurements and get the miannotation fully functionally - steve proposes that we change UI to Annotation, agreed - ifdef on Slicer3_use_qt, try to transfrer to the superclass of the manager
Attendees
- Kilian Pohl
- Nicole Aucoin
- Daniel H
- Wendy Plesniak
- JC
- Steve Pieper
- Sudhir Pathak