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