Difference between revisions of "2010 Summer Project Week Breakout Session:VTK Widget"

From NAMIC Wiki
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 11: 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 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