NA-MIC National Alliance for Medical Image Computing VTK Widgets William J. Schroeder Kitware, Inc....

24
NA-MIC National Alliance for Medical Image Computing http://na-mic.org VTK Widgets William J. Schroeder William J. Schroeder Kitware, Inc. Kitware, Inc. June 2006 June 2006

Transcript of NA-MIC National Alliance for Medical Image Computing VTK Widgets William J. Schroeder Kitware, Inc....

Page 1: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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

Page 2: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 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

Page 3: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Overview

• Goals

• Architecture

• Widgets

• Implementation

Page 4: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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

Page 5: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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

Page 6: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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()

Page 7: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Event Translation

Page 8: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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

Page 9: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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?

Page 10: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets

• Handles

Page 11: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkSliderWidget– 2D– 3D

• vtkBorderWidget– Widgets with

rectangular borders

• vtkTextWidget– Position & size text

Page 12: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• BalloonWidget– Text and/or image in rectangular popup

Page 13: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkCameraWidget– Keyframe &

playback camera

• vtkCaptionWidget– Text with leader

Page 14: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkCheckerboardWidget– Interleave two images

• vtkRectilinearWipeWidget– Window pane

(2x2 checkerboard)with movable focus

Page 15: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkContourWidget– 2D (on plane)– 3D (move contours through slices in a volume)

Page 16: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkDistanceWidget– Measure distance

between points

• vtkAngleWidget– Measure angles

Page 17: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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

Page 18: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkBiDimensionalWidget– Tumor response (RECIST vs WHO)

Page 19: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• Box • Implicit Plane

Page 20: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• Finite Plane • Line

Page 21: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkScalarBarWidget • vtkSphereWidget

Page 22: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkImagePlaneWidget

Page 23: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

National Alliance for Medical Image Computing http://na-mic.org

Widgets (cont.)

• vtkSplineWidget

Page 24: NA-MIC National Alliance for Medical Image Computing  VTK Widgets William J. Schroeder Kitware, Inc. June 2006.

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