IGSTK Architecture Overview Luis Ibez Kitware Inc The
IGSTK Architecture Overview Luis Ibáñez Kitware, Inc
The Toolkit in a Nutshell Open Source Toolkit BSD-like License Written in C++ Based on ITK and VTK Designed for a Critical Application
Layer Architecture IGS - APPLICATION GUI: FLTK / Qt / MFC IGSTK ITK VNL GDCM VTK Threads, XML, … Open. GL
Main Categories of Components Geometry & Representation Infrastructure Trackers Images & Readers Viewers
Infrastructure State Machine Time Stamp Pulse Generator Events Transforms Logger
Trackers Tracker (base class) – Polaris. Tracker – Aurora. Tracker Support – Serial. Communication. For. Windows Serial. Communication. For. Posix – NDICommand. Interpreter
Object Representation Spatial. Object – – – – – Ellipsoid Cylinder Images Mesh Tube. Group Box ? Cone ? Spatial. Object. Representation – Ellipsoid – Cylinder – Images – Mesh – Tube – Box ? – Cone ? – Vascular. Network SO ? ? – Airways. Network SO ? ? – Surgical Tools ? ?
Viewers View – View 2 D – View 3 D VTK Based GUI / VTK hybrid class
Images and Readers Image – CTImage – MRImage – Fluoroscopic. Image Readers (DICOM) – CTImage. Reader – MRImage. Reader – Fluoroscopy (video input)
Dynamics Architecture
General Interactions Tracker GUI View 1 View 2 Object Representation View 3 Object Representation View 4 Object Representation Tracker. Tool 1 Tracker. Tool 2 Tracker. Tool 3 Spatial Object
Tracking Interactions T T Object Representation T Tracker. Tool 3 Tick Spatial Object T = Transform Event
Event Class ITK Event IGSTK Event Transform. Event Time. Stamp. Event String. Event
Event Class
Transform Class Transform Vector Versor Time. Stamp Error
Transform Class
Transform Event Class
Pulse Generator Action How not to miss pulses ?
Tick Timing Control Tick Tracker GUI View 1 View 2 View 3 View 4 Object Representation Tracker. Tool 1 Tracker. Tool 2 Tracker. Tool 3 Spatial Object
Quality Control
Testing Platforms Windows – Visual Studio 6. 0 – Visual Studio 7. 1 Linux – gcc 3. 2 – gcc 3. 3 – gcc 3. 4 Cygwin – Windows – gcc 3. 4 – gcc 3. 3
Testing Goal – 100 % Code Coverage – 100 % State Machine Transitions Testing Current Code Coverage – IGSTK 93. 6 % – Sandbox 92. 4 % ( untested 321 / 4714 lines ) ( untested 4 / 49 lines )
Dynamic Testing Platforms Valgrind on Linux – gcc 3. 3 – gcc 3. 4 Valgrind on Cygwin ( setup pending ) Purify (too expensive)
End
- Slides: 24