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