[Insight-developers] Developer's Guide - Write A Filter

Luis Ibanez ibanez@choroid.cs.unc.edu
Sat, 29 Sep 2001 07:43:34 -0400 (EDT)


Will,

Here are some comments/questions about the Write A Filter document.

Content:

0) It is really nice to see all these concept together !!,
   The initial section on "terminology" helps a lot.

1) In "overview of filter creation" it says that GenerateData()
   has to allocate memory for the output, while ThreadedGenerateData()
   should not. Is that right ?
   I thought that the streaming mechanism was doing the allocations
   before calling GenerateData()... (I'm not allocating memory in
   most of the filters...maybe we just found a bug  :-) )

2) I added some figures from a tutorial we have here, they illustrate
   the pipeline connections (ProcesObject/DataObject), and a UML
   sequence diagram of the updating mechanism. The original figures
   were done with xfig, and exported as eps.

   Probably we will have to modify these figures to better fit the
   text.

3) I would like to add some UML class diagrams to make clearer what
   the options are when selecting the base class for a filter. This
   is discussed in "Overview of Filter creation". In particular
   showing the method that the developer will have to override.

4) A UML sequence diagram could also be helpful for describing the
   update negotiation at the DataObject level.

5) It could probably be good to add a table (or some kind of symbol
   in the text) to indicate what methods are expected to be overrided
   by the user and what methods are  provided by the system.
   The discussion on the updating mechanism is nicely detailed, but
   I guess that the developer reading it will have in mind the
   question: "what do I have to rewrite ?"

6) It was great to add the description of the relation between
   Multithreading and the Events. I finally understood why the
   multithreaded filters are keeping track of the thread id
   before invoking events.

7) A description of the Command/Observers/Event mechanism seem
   to be necesary. Would you prefer to make of this a separte
   chapter ?
   We have a couple of diagrams on this too.


Document style:

1) The formating is now using the InsightDocument style, and we have
   the decoration lines from fancyhdr.sty   :)

2) fancyhdr.sty and floatflt.sty were checked in under
   InsightDocumens/Latex

3) would you like to use a different font (maybe courier) for class
   names and method names cited in the text ?
   we have some macros that can facilitate that.

4) we are including the itk logo in each documen, so the itkLogo.jpg
   file is repeated in different directories. Should we arrange a
   central directory for graphic files ? like is done in
   Insight/Documentation/Art ?



Thanks


Luis



----------------------


On Thu, 27 Sep 2001, Will Schroeder wrote:

> Hi Folks-
>
> As promised, I've added a chapter to the Developer's Guide (in InsightDocuments/User/DeveloperGuide) explaining how to write a filter (with an emphasis on data streaming). For those confused about streaming, please read this. It's rough, I plan on adding some more examples, reorganizing, etc. but for now I think it will help.
>
> There is both the original LaTeX and a pdf file. I used vanilla LaTeX, I couldn't get the InsightDocuments/Latex style files going because there are some missing files...I'm tracking them down.
>
> Will
>
> _______________________________________________
> Insight-developers mailing list
> Insight-developers@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-developers
>

-- 
Luis Ibanez                                      CB#:   7060
Research Assistan Professor                      phone: (919) 843 5436
Division of Neurosurgery                         fax:   (919) 966 6627
University of North Carolina at Chapel Hill      email: ibanez@cs.unc.edu
Chapel Hill, NC 27599-7060                       http://www.cs.unc.edu/~ibanez