[Insight-developers] Examples directory: strawman organization proposal

Will Schroeder will.schroeder@kitware.com
Tue, 17 Sep 2002 14:31:31 -0400


Hi Folks-

Luis and I have worked out a strawman proposal for the Examples directory. 
While we as a consortium have not worked out all the details on how to test 
the code in this directory, we do have a general idea of what it is 
supposed to do:

+ Provide simple, minimalist examples of important features of ITK and how 
to use them. The examples should have minimal dependencies on outside 
packages; and if they do, there should be CMake flags to turn them off.
+ Provide a consistent set of examples that will work in conjunctions with 
the ITK User's Guide
+ Provide a consistent set of examples that will work with ITK tutorials 
and courses
+ Make sure that the code is well documented, of consistent style, and 
always up-to-date with the current ITK code

(Please recall that we decided to make the Applications (the current 
examples) a separate checkout. They are too big and complex for teaching 
examples.)

Okay, with that behind us, here is what we are thinking:

Examples/ - is it Insight/Code/Examples or Insight/Examples (which is 
currently in place) ?
Examples/Installation - a very simple example to test compiling against the 
ITK libraries; configuring CMake
Examples/DataRepresentation - creating images and meshes;  basics of 
creating and executing the pipeline
Examples/Iterators - iterating over images and meshes
Examples/Infrastructure - events, observers, factories, smart pointers, 
namespaces, transforms, etc.
Examples/Numerics - working with VNL; a focus on interface with ITK classes
Examples/IO - the basics of reading/writing data
Examples/Filtering - examples of image processing and mesh filters
Examples/Segmentation - a suite of basic segmentation examples
Examples/Registration - a suite of basic registration methods
Examples/GUI - some outside package interface: wxWindows, Qt, FLTK, Tk, 
VTK. The absolute minimal interface.

Note: these subdirectories may have additional subdirectories according to 
language: Examples/IO/Cxx, Examples/IO/Tcl, Examples/IO/Python, etc.

Okay, what do you think? I'd like to finalize this at October's meeting.

Will