NA-MIC National Alliance for Medical Image Computing VTK Widgets William J. Schroeder Kitware, Inc. June 2006
National Alliance for Medical Image Computing 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 Overview Goals Architecture Widgets Implementation
National Alliance for Medical Image Computing 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 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 Architecture Decoupling representation from event processing RenderWindow vtkAbstractWidgetvtkWidgetRepresentation (type of vtkProp) Events Renderer Render()
National Alliance for Medical Image Computing Event Translation
National Alliance for Medical Image Computing 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 HandleWidget
National Alliance for Medical Image Computing Handle Framework Types of handles –2D (display space) –3D (world space) –Constrained To plane To surface Etc?
National Alliance for Medical Image Computing Widgets Handles
National Alliance for Medical Image Computing Widgets (cont.) vtkSliderWidget –2D –3D vtkBorderWidget –Widgets with rectangular borders vtkTextWidget –Position & size text
National Alliance for Medical Image Computing Widgets (cont.) BalloonWidget –Text and/or image in rectangular popup
National Alliance for Medical Image Computing Widgets (cont.) vtkCameraWidget –Keyframe & playback camera vtkCaptionWidget –Text with leader
National Alliance for Medical Image Computing Widgets (cont.) vtkCheckerboardWidget –Interleave two images vtkRectilinearWipeWidget –Window pane (2x2 checkerboard) with movable focus
National Alliance for Medical Image Computing Widgets (cont.) vtkContourWidget –2D (on plane) –3D (move contours through slices in a volume)
National Alliance for Medical Image Computing Widgets (cont.) vtkDistanceWidget –Measure distance between points vtkAngleWidget –Measure angles
National Alliance for Medical Image Computing Widgets (cont.) vtkSeedWidget –Add one or more seeds / markers vtkAffineWidget –Translate –Scale –Rotate –Shear images
National Alliance for Medical Image Computing Widgets (cont.) vtkBiDimensionalWidget –Tumor response (RECIST vs WHO)
National Alliance for Medical Image Computing Widgets (cont.) BoxImplicit Plane
National Alliance for Medical Image Computing Widgets (cont.) Finite PlaneLine
National Alliance for Medical Image Computing Widgets (cont.) vtkScalarBarWidgetvtkSphereWidget
National Alliance for Medical Image Computing Widgets (cont.) vtkImagePlaneWidget
National Alliance for Medical Image Computing Widgets (cont.) vtkSplineWidget
National Alliance for Medical Image Computing 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