Difference between revisions of "Projects:ARRA:SlicerAM:vtkWidgets"

From NAMIC Wiki
Jump to: navigation, search
Line 4: Line 4:
 
== Meeting at Summer Project Week 2010 ==
 
== Meeting at Summer Project Week 2010 ==
 
* Attendees: Kilian, Wendy, Nicole and Daniel
 
* Attendees: Kilian, Wendy, Nicole and Daniel
* every 3D widget also has to exist for 2D (and vice-versa)
+
=== VTK Related Issues ===
** same API for both modes in VTK
+
* General VTK Issues
** probably through the Slicer MRML tree, displayNodes should be the same (one manager handles 2D and 3D)
+
** Improve Consistency across Widgets:
* '''_tooltips_''' for every widget
+
*** every 3D widget also has to exist for 2D (and vice-versa)
* variable names '''_being consistent_''' through all widgets
+
**** same API for both modes in VTK
* Placement behavior:
+
*** same API/variables  across widgets
** placement modes: rubberband between clicks, click points and hotkey, parameterized place (f.e. from MRML or GUI panel) -> default setting is one case of parameters
+
*** default settings are the same across widgets
* Manipulation behavior:
+
** Create/improve Documentation for each widget
** highlighting when something is selectable
+
** '''_tooltips_''' for every widget
** user needs to know when something is selected and '''_which part_''' of the widget '''is selected'''
+
** Placement behavior:
*** there is a selected property for most of the widgets
+
*** rubberband between clicks
** left button would move the widget, right button opens context menu for additional configuration (color,...)
+
*** click points and hotkey, e.g. set to points in 2S viewer , press ctrl M (for measurement) , and then a ruler is placed between the points 
 +
*** parameterized place (f.e. from MRML or GUI panel) -> default setting is one case of parameters across
 +
** Manipulation behavior:
 +
*** highlighting when something is selectable
 +
*** user needs to know when something is selected and '''_which part_''' of the widget '''is selected'''
 +
**** there is a selected property for most of the widgets
 +
*** left button would move the widget, right button opens context menu for additional configuration (color,...)
 +
* Widget Specific Issues
 +
** Angle widget:
 +
*** has crosses instead of spheres, should be changed for consistency
 +
*** there are a lot of bugs in the widget
 +
** Ruler widget:
 +
*** when line is resized, text size does not change
 +
*** enable ticks
 +
** Textbox:
 +
*** change text by right click or double click
 +
* Missing Wigets: 
 +
** expand ROI widget (which is currently a cube) to include cone and cylinder
 +
** draw with autocomplete (maybe contour widget is the right one), spline open and close
 +
** hold down button and draw
 +
** cutting planes (any kind of cuts, maybe reformat widget is the right one, with clip outside option)
  
* ROI box:
+
=== Slicer Related Issues ===
* Angle widget:
+
*probably through the Slicer MRML tree, displayNodes should be the same (one manager handles 2D and 3D)
** has crosses instead of spheres, should be changed for consistency
+
** KP: I do not understand this - it was listed below "same API for both modes in VTK"
** there are a lot of bugs in the widget
 
* Ruler widget:
 
** when line is resized, text size does not change
 
** see the ticks
 
* Textbox:
 
** change text by right click or double click
 
  
 +
=== Follow Up ==-
 
* we need a review session in a smaller group (maybe Nicole, Daniel with JC or who is responsible)
 
* we need a review session in a smaller group (maybe Nicole, Daniel with JC or who is responsible)
** for Kitware: we need tests and examples
+
* we need to come up with specific tests and examples for Kitware
* we need '''_more documentation_'''
+
* Wendy will create a document specifying the general behavior of widgets (Deadline July 2)
 
+
* All participants of the meeting will work on this summary until July 2nd
* widgets which don't exist:
+
* We will send the list to Will on July 7th
** a cone and cylinder
 
** draw with autocomplete (maybe contour widget is the right one), spline open and close
 
** also: hold down button and draw
 
** cutting planes (any kind of cuts, maybe reformat widget is the right one, with clip outside option)
 
  
 
= VTK Widget related action items =
 
= VTK Widget related action items =

Revision as of 15:31, 26 June 2010

Home < Projects:ARRA:SlicerAM:vtkWidgets

Back to Slicer Report home page

Review Widgets

Meeting at Summer Project Week 2010

  • Attendees: Kilian, Wendy, Nicole and Daniel

VTK Related Issues

  • General VTK Issues
    • Improve Consistency across Widgets:
      • every 3D widget also has to exist for 2D (and vice-versa)
        • same API for both modes in VTK
      • same API/variables across widgets
      • default settings are the same across widgets
    • Create/improve Documentation for each widget
    • _tooltips_ for every widget
    • Placement behavior:
      • rubberband between clicks
      • click points and hotkey, e.g. set to points in 2S viewer , press ctrl M (for measurement) , and then a ruler is placed between the points
      • parameterized place (f.e. from MRML or GUI panel) -> default setting is one case of parameters across
    • Manipulation behavior:
      • highlighting when something is selectable
      • user needs to know when something is selected and _which part_ of the widget is selected
        • there is a selected property for most of the widgets
      • left button would move the widget, right button opens context menu for additional configuration (color,...)
  • Widget Specific Issues
    • Angle widget:
      • has crosses instead of spheres, should be changed for consistency
      • there are a lot of bugs in the widget
    • Ruler widget:
      • when line is resized, text size does not change
      • enable ticks
    • Textbox:
      • change text by right click or double click
  • Missing Wigets:
    • expand ROI widget (which is currently a cube) to include cone and cylinder
    • draw with autocomplete (maybe contour widget is the right one), spline open and close
    • hold down button and draw
    • cutting planes (any kind of cuts, maybe reformat widget is the right one, with clip outside option)

Slicer Related Issues

  • probably through the Slicer MRML tree, displayNodes should be the same (one manager handles 2D and 3D)
    • KP: I do not understand this - it was listed below "same API for both modes in VTK"

=== Follow Up ==-

  • we need a review session in a smaller group (maybe Nicole, Daniel with JC or who is responsible)
  • we need to come up with specific tests and examples for Kitware
  • Wendy will create a document specifying the general behavior of widgets (Deadline July 2)
  • All participants of the meeting will work on this summary until July 2nd
  • We will send the list to Will on July 7th

VTK Widget related action items

General

WS: revisit the picking behavior in VTK so that the default approach is to use an accelerated method. NA: is updating Slicer so that Slicer compiles with the newest VTK cvs head and can test new widgets

Annotations

  • vtkCaptionWidget (TestCaptionWidget) :
    • KP: The widget is buggy - the cursor icon seems to suggest a different functionality then what you can do to move the / modify the location of the text . I was only able to move the text by clicking on the lower bar of the text box. Furthermore in TestCaptionWidget.cxx I had to uncomment widget->On(); - so I believe by default it is never tested
    • KK: This has just been fixed. You should now be able to resize the caption etc. VTK/Widgets/vtkCaptionRepresentation.cxx new revision: 1.8
    • KP: Check out change
  • vtkTextWidget (TestTextWidget:):
    • KP: Font size customization ?
    • KK: Currently the font size scales to the entire text box size. Check with KP on what he needs

Measurements

  • vtkSeedWidget (TestSeedWidget):
    • KP: Custom measurement annotations needed, such as the intensity value
    • KK: I'll put in functionality for a callback mechanism that allows you to optionally update a label each time the seed is moved,so that a probe class can be attached to the seed widget.
  • TestPolygonalHandleRepresentations:
    • KP: I will have to update VTK and Test it again
  • vtkkPolygonalSurfacePointPlacer (TestPolygonalRepresentationHandleWidget):
    • KP: A little bit Slow
    • KK: the handle is constrained to the surface of the polygonal object. This involves a pick each time the handle is moved, and for a surface with tens of thousands of cells can get slow. An unconstrained handle should be fast.
  • vtkDistanceWidget (TestDistance Widget) (2D distance widget):
    • KP: Instead of displaying measurement along line display it outside with dotted line such as in caption widget
    • KP: Measurement should be moved anywhere in the image without obstructing important anatomy
    • KP: Distance text font customization (too small to read)
    • KK: working on it
  • vtkLineWidget2 (TestLineWidget2) (3D distance widget):
    • KP: Hard to initialize control points in 3D (difficult to judge behavior)
    • KK: working on it
  • vtkAngleWidget
    • vtkAngleRepresentation2D (TestAngleWidget2D)
      • KP: Instead of displaying measurement along line display it outside with dotted line such as in caption widget
      • KP: text font customization (too small to read)
      • KP: Half circle scale customization to create less image obstruction
      • KK: working on it
    • vtkAngleRepresentation3D (TestAngleWidget2D)
      • KP: Instead of displaying measurement along line display it outside with dotted line such as in caption widget
      • KP: Widget measurement disappeared as it was placed inside the sphere (Check with KP. This is indeed the intended behaviour)
      • KP: Half circle scale customization to create less image obstruction
      • KK: working on it
  • vtkBiDimensionalWidget (TestBiDimensionalWidget)
    • KP: Instead of displaying measurement along line display it outside with dotted line such as in caption widget
      • KK: working on it
    • KP: It is strange that the fourth point is set automatically but can be modified later. Once the second control point is set I would just draw a line orthogonal to the one already created . Once the third control point is set the line is fixed and only the length of the line can be changed.
      • KK: likes it that way
      • KP: Discuss with KK for possible solution

ROI

  • TestImageActorContourWidget
    • KP: the line is drawn once the control point is set. Instead, the line should always follow the cursor - once the MB is pressed the line is fixed up to this control point
    • KK: we should create another representation then. The issue with this is that it will become slow. The contour widget as you know works with several interpolators. Some interpolators are fast, some are slow (such as livewiring etc).. The interpolation is invoked only when a new control point is pressed. Having these be computed on the fly as you move the mouse around, will be slow, depending on the interpolator.
    • KP: missing measurement with length of line
      • KK: Will add option
    • KP: and region of interest (for closed lines)
      • KK: What do you mean by measurement of a "region of interest" ? Area ?
      • KP: a closed curve defines an area - this area I call region of interest
    • KP: do not know how to delete control points
      • KK: do not know how to delete control points
      • KP: Provide Balloon with help text or menu with delete option when one specific MB is pressed. We should try avoiding key combination as they need explanation
  • vtkContourWidget (TestContourWidget2):
    • KP: could not set control points as the control points are predefined. Can that be changed ?
  • TestDijkstraImageGeodesicPath :
    • KP: the line is drawn once the control point is set. Instead, the line should always follow the cursor - once the MB is pressed the line is fixed up to this control point
    • KP: missing measurement with length of line and region of interest (for closed lines)
    • KP: could not figure out how to modify location of control points
      • KK: You can simply mouse over the control point and move it around. Clicking anywhere on the line adds a new control point, which also can be moved around.
      • KP: Maybe it did not work for me bc it was too slow
  • TestDijkstraGraphGeodesicPath:
    • KP: same as TestDijkstraImageGeodesicPath
    • KP: seg faulted on me
      • KK: Really. It works on the dashboard ?
      • KP: Try playing around with it a little bit - it seg faulted after a while

Widgets Completed Reviewed

  • vtkBalloonWidget (TestBalloonWidget)  : ok
  • TestHandleWidget:
    • KP: did not understand test
    • KK: Added comment