na-mic national alliance for medical image computing vtk widgets william j. schroeder kitware, inc....
TRANSCRIPT
NA-MICNational Alliance for Medical Image Computing http://na-mic.org
VTK Widgets
William J. SchroederWilliam J. Schroeder
Kitware, Inc.Kitware, Inc.
June 2006June 2006
National Alliance for Medical Image Computing http://na-mic.org
Thanks
• National Library of Medicine / NIH– Dr. Terry Yoo: A2D2 awards (Algorithms, Adaptors, and Data
Distribution)• National Science Foundation
– Visual Journal project• NIH National Center for Biomedical Computing
– NAMIC • Contributors
– Will Schroeder– Lisa Avila– Karthik Krishnan– Brad King– Sebastien Barre– Dave Cole
National Alliance for Medical Image Computing http://na-mic.org
Overview
• Goals
• Architecture
• Widgets
• Implementation
National Alliance for Medical Image Computing http://na-mic.org
Goals
• Improve human-data interaction • Provide palette of widgets supporting
– Segmentation – Registration– Data interaction– Text and annotation– Light, camera, etc. manipulation
• Support client-server (distributed) computing
• Rework initial design
National Alliance for Medical Image Computing http://na-mic.org
Design Goals
• Separate representation from event processing– Support distributed processing (client-server)
• Introduce translation mechanism between events and widget behavior
• Support hierarchical use of widgets
• Create general “handle” framework for positioning points
National Alliance for Medical Image Computing http://na-mic.org
Architecture
• Decoupling representation from event processing
RenderWindow
vtkAbstractWidget vtkWidgetRepresentation(type of vtkProp)
Events
Renderer
Render()
National Alliance for Medical Image Computing http://na-mic.org
Event Translation
National Alliance for Medical Image Computing http://na-mic.org
Widget Hierarchies
• Example: vtkDistanceWidget– Uses two instances of vtkHandleWidget– Responds to events from its handles– Notion of “parent”
• Reduce number of events• Reduce number of Render() invocations
– Can change behavior of widget by using different types of handles
HandleWidgetHandleWidget
National Alliance for Medical Image Computing http://na-mic.org
Handle Framework
• Types of handles– 2D (display space)– 3D (world space)– Constrained
• To plane• To surface• Etc?
National Alliance for Medical Image Computing http://na-mic.org
Widgets
• Handles
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkSliderWidget– 2D– 3D
• vtkBorderWidget– Widgets with
rectangular borders
• vtkTextWidget– Position & size text
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• BalloonWidget– Text and/or image in rectangular popup
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkCameraWidget– Keyframe &
playback camera
• vtkCaptionWidget– Text with leader
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkCheckerboardWidget– Interleave two images
• vtkRectilinearWipeWidget– Window pane
(2x2 checkerboard)with movable focus
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkContourWidget– 2D (on plane)– 3D (move contours through slices in a volume)
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkDistanceWidget– Measure distance
between points
• vtkAngleWidget– Measure angles
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkSeedWidget– Add one or more
seeds / markers
• vtkAffineWidget– Translate– Scale– Rotate– Shear images
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkBiDimensionalWidget– Tumor response (RECIST vs WHO)
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• Box • Implicit Plane
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• Finite Plane • Line
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkScalarBarWidget • vtkSphereWidget
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkImagePlaneWidget
National Alliance for Medical Image Computing http://na-mic.org
Widgets (cont.)
• vtkSplineWidget
National Alliance for Medical Image Computing http://na-mic.org
Status
• Currently available in VTK CVS – New subdirectory VTK/Widgets– Work in progress; lots of polishing required
• Tests in Widgets/Testing/Cxx– Uncomment in CMakeLists.txt– Valid images not yet created, nor event
playback scripts– Looking for feedback– Will add Tcl tests as well