2010 Summer Project Week Breakout Session:VTK Widget
From NAMIC Wiki
Home < 2010 Summer Project Week Breakout Session:VTK Widget
Back 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