ITK/Release 4/Wrapping

From KitwarePublic
Jump to navigationJump to search


High-Level Goals

SIMPLIFY ITK by allowing easy access of the toolkit from other languages, especially scripting languages, hiding some difficulties (templates, compilation ...) along the way.

Metrics and goals

  • Avoid unnecessary dependencies (see Modular ITK)
    • faster compilation
    • limited compilation ( see modular itk v4 )
    • faster re-compile (touching a given .h should not trigger a full re-compilation)
  • Wrap 80%+ of the toolkit
  • Have ITK behaves in the different languages as close to the native code as possible
    • ITK Image to/from target language array conversion
    • Target language inheritance (SWIG directors)
    • Automatic type selection in Python
  • Binary distribution
  • Automatic Inline documentation


  • Java
  • Python
  • Lua ?
  • Tcl ?
  • see simpleITK

Comparative Examples

Required Tools and Technology

Installation is detailled here


  • WrapITK.
  • Swig
  • GccXML

WrapITK Configuration and Build Process Internals

Parallel Build Status

Discussions and TConfs

Tcon 808310

Minutes 081310


  • Luis Ibañez
  • Gabe Hart
  • Gaëtan Lehmann
  • Brad King


  • gccxml maintenance

Brad working on it. Getting harder with newer compiler. Will probably possible for the next couple of years.

CLang must be explored as a replacement.

  • migrating to WrapITK 0.3
  • recode in C++

reuse cable code. already read gccxml output.

  • languages support
    • keep python 2
    • keep java
    • add C#
    • add Python 3? maybe
    • remove Tcl? sure
  • redefine the WrapITK libraries (grouping of classes)

use the same module organization than in ITK

  • Default wrapped types and abbreviated naming scheme
  • Wrapping coverage
  • Binary distribution

distribute binary for now next move to ryppl

  • ITK Image to/from target language array conversion
  • Automatic Inline documentation
  • Target language inheritance (SWIG directors)
  • Automatic type selection in Python
  • Improve 64bits support in ITK — surely done elsewhere already

remove 64 bit pixel type

rework filter using unsigned long type

  • GDCM wrapping integration?

add interfaces in ITK classes and wrap those classes

Pending Tasks