[Insight-developers] First crack at usage documentation

Will Schroeder will.schroeder@kitware.com
Thu, 21 Dec 2000 08:00:17 -0500


Hi Folks-

Several people have contacted me regarding documentation. Stephen Aylward 
sent me an outline describing a comprehensive documentation suite, and 
Sayan Pathak and I talked about more extensive "class/group of classes 
documentation" that he has just sent to the list. Bill Hoffman showed me 
the vxl documentation which is arranged in the form of a book 
(http://www.robots.ox.ac.uk/~vxl/book/) also see 
http://www.esat.kuleuven.ac.be/~targetjr/www.robots.ox.ac.uk/vxl/.

My take from these discussions is that it is time to create an outline for 
documentation, both in terms of the Insight/Documentation directory 
structure, as well for the arrangement of web pages and other material. I 
particularly like the idea of building a logical arrangement of material - 
consistent in style and layout - that we produce as a"book" or "books." 
With that in mind, I'd like to propose a strawman organization for the 
documentation. I expect that this will not be completed until the end of 
the third year, but if we can share the vision of the framework, it will 
expedite the creation of this invaluable resource. (Aside- Kitware has on 
its WA3 and in its proposal the task of organizing/helping create 
documentation and training materials)

What I have in mind currently is to build three "books" - User's Guide, 
Developer's Guide, and Algorithm Guide. I'd like to see
each less than 250  pages (although the algorithm guide may grow larger). 
Issues: I'd also like to settle on a implementation (e.g., Word, etc.) that 
can be used to create both a nice looking text as well as producing html. 
I'd also like to adopt some styles that are reasonable consistent. Suggestions?

Anyway, here's a rough outline. (Some of this material came from Stephen 
Aylward.) Sayan is going to lead the discussion on documentation of Friday, 
maybe we can talk about this then. I'd also like to hear suggestions, 
criticisms, etc.

Will
------------------------


Book 1- The Insight User's Guide (lots of examples - in C++)
Chapter 1 - Introduction
	- What is Insight?
	- Organization
	- Additional Resources
Chapter 2 - System Overview
	- Hybrid Compiled / Interpreted Architecture
	- Generic Programming
	- Data Processing Pipeline
Chapter 3 - Getting Started
	- Overview
	- Get The Software
	- Installation
		a. Windows
		b. Unix
	- Running (Insight HelloWorld)
		a. Windows
		b. Unix
	- Testing
		a. The Quality Dashboard
		b. Running a Test
Chapter 4 - The Basics (lots of examples)
	- Smart Pointers & Reference Counting
	- The Object Factory
	- The Image Class
	- The Mesh Class
	- Creating a Data Processing Pipeline
Chapter 5 - Segmentation
	- Pick several important algorithms and demonstrate them via example.
		a. Class hierarchy
		b. Landmark implementations
		c. FEM implementations
		d. Adding your own
		e. etc.
Chapter 6 - Registration
	- Pick several important algorithms and demonstrate them via example.
		a. Pixel Labeling Class hierarchy
		b. Adaptive Surfaces Class hierarchy
		c. Adding your own
		d. etc.
Chapter 7 - System Interface
	- Image Class
	- Mesh Class
	- Process (Data) Objects
Chapter 8 - Language Bindings
	- Typeless C++
	- Tcl (example)
	- Python (example)
	- Java (example)



Book 2 - The Insight Developer's Guide
Chapter 1 - Introduction
	- Purpose
	- Organization
	- Additional Resources
Chapter 2 - CMake
Chapter 3- Reference Counting and Smart Pointers
Chapter 4- The Object Factory
Chapter 5 - Managing Pipeline Execution
	- The Update Mechanism
	- Streaming Data
Chapter 7 - Wrapping C++
	- Overview
	- XML Notation
	- Typeless C++ Layer
	- Tcl
	- Python
	- Java
Chapter 8 - Extending the Image Class
Chapter 9 - Extending the Mesh Class
Chapter 10 - Writing a Process (Filter) Object
	- Overview
	- Input Image / Output Image
	- Input Mesh / Output Mesh
	- Other
Chapter 11 - Testing the Software
	- The Quality Dashboard
	- Submitting a Dashboard



Book 3 - The Insight Guide To Algorithms
Chapter 1 - Introduction
Chapter 2 - Segmentation
Chapter 3 - Registration
Chapter 4 - Supplemental
	- Transformation classes
	- etc.