290 likes | 540 Views
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. VTK. VNL. GDCM.
E N D
IGSTKArchitecture 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 VTK VNL GDCM Threads, XML,… OpenGL
Main Categories of Components Infrastructure Geometry & Representation Trackers Images & Readers Viewers
Infrastructure • State Machine • Time Stamp • Pulse Generator • Events • Transforms • Logger
Trackers • Tracker (base class) • PolarisTracker • AuroraTracker • Support • SerialCommunication • SerialCommunicationForWindows • SerialCommunicationForPosix • NDICommandInterpreter
Object Representation • SpatialObject • Ellipsoid • Cylinder • Images • Mesh • Tube • TubeGroup • Group • Box ? • Cone ? • SpatialObjectRepresentation • Ellipsoid • Cylinder • Images • Mesh • Tube • Box ? • Cone ? • VascularNetwork SO ?? • AirwaysNetwork SO ?? • Surgical Tools ??
Viewers • View • View2D • View3D • VTK Based • GUI / VTK hybrid class
Images and Readers • Image • CTImage • MRImage • FluoroscopicImage • Readers (DICOM) • CTImageReader • MRImageReader • Fluoroscopy (video input)
General Interactions Tracker GUI TrackerTool 1 View1 TrackerTool 2 Object Representation TrackerTool 3 View2 Object Representation View3 Spatial Object View4 Object Representation
Tracking Interactions T Tracker Tick T TrackerTool 3 Object Representation T Spatial Object Object Representation T Transform Event T =
Event Class ITK Event IGSTK Event TransformEvent TimeStampEvent StringEvent
Transform Class Transform Vector Versor TimeStamp Error
Pulse Generator Action Action How not to miss pulses ?
Timing Control Tick Tick Tracker GUI TrackerTool 1 View1 TrackerTool 2 Object Representation TrackerTool 3 View2 Object Representation View3 Spatial Object View4 Object Representation
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 % ( untested 321 / 4714 lines ) • Sandbox 92.4 % ( untested 4 / 49 lines )
Dynamic Testing Platforms • Valgrind on Linux • gcc 3.3 • gcc 3.4 • Valgrind on Cygwin ( setup pending ) • Purify (too expensive)