110 likes | 218 Views
The CTK Layer Structure – a Proposal for Discussion. Ivo Wolf. Goals of CTK. Some of the Goals of CTK (taken from the website): provide a unified set of basic features for use in medical imaging
E N D
The CTK Layer Structure – a Proposal for Discussion Ivo Wolf
Goals of CTK Some of the Goals of CTK (taken from the website): • provide a unified set of basic features for use in medical imaging • continuously extend to new tasks within the scope of the toolkit (medical imaging) without burdening existing tasks modular design with loose coupling: • Small core • Collected from existing toolkits • Extended with new features • Optional modules around the core • Available separately (like in a package system of a linux distribution)
The CTK Layer Structure • Common core • Optional modules • When a layer is on top of another, this is meant as “is using” (NOT necessarily “is inheriting”) Optional CTK Module using Module I+II (+core) Optional CTK Module I Optional CTK Module II … CTK core
The CTK Layer Structure • More concretely:(but just as an example!) qDICOM Module qCTKWidgets Module CTK-DICOM Module CTK-XDOM Module CTK core
The CTK Layer Structure • What is part of the core? • Is it Qt-dependent? qDICOM Module qCTKWidgets Module CTK-DICOM Module CTK-XDOM Module Again another TK Yet another TK qCTK core Some TK Some other TK CTK core
The CTK Layer Structure Another example: • Do we want to have a separate, common data / processing layer? • And if so, where? CTK Data/Processing qCTK core qCTK core CTK Data/Processing qCTK core CTK Data/Processing CTK core CTK core CTK core
The CTK Layer Structure Suggestion: • When we discuss a specific idea for CTK, we should note, where we would prefer to put it: • into the core • into some other basic layer • into an optional module
My Dream: A Package System • Dreaming … a package system • … from which you can take what you need (and ignore, what you do not want) qDICOM Module qCTKWidgets Module CTK-DICOM Module CTK-XDOM Module Again another TK qCTK core Some TK Some other TK Some TK CTK core CTK core
My Dream: A Package System • Dreaming … a package system • … from which you can take what you need (and ignore, what you do not want) qDICOM Module qCTKWidgets Module CTK-DICOM Module CTK-XDOM Module Again another TK qCTKWidgets Module CTK-XDOM Module qCTK core Some TK Some other TK qCTK core CTK core CTK core
Questions • Do we agree on a layer structure for CTK? • Yes. • Do we agree that CTK can grow over time by adding additional, optional layers? • Yes, but there should be only a few of them. • Do we agree already • whether we want to have the core: • Qt-GUI-free (I guess, we do agree …) • or completely Qt-free (and a qCTK layer on top of it) • or a Qt-dependent core with (or w/o) inheritance from QObject (and w/o otherwise exposing the dependency of Qt)? • Advantages: signal/slots, QtScripting, QThreads, reflections, … • LGPL license issues will have to be addressed properly (e.g.: for building Qt the Qt build system will be used)
CTK – getting started with coding … Suggestion: Hacker Meeting (~ 1 week, Feb 22nd or Mar 1st, 1-2 per group) • … hacking a small, initial prototype of a core • assemble a proposal for a list of features of the core • collect pros and cons regarding Qt as base of CTK • in advance: prepare some classes as basis for discussion • (try to use it as base for ITK and VTK) • … and at least one optional module • … preferably doing it this way: