[Insight-developers] Doxygen grouping

Luis Ibanez ibanez@choroid.cs.unc.edu
Fri, 11 May 2001 17:17:11 -0400 (EDT)


Hi,

Here is the way that grouping can be done in Doxygen.

Doxygen allows to create categories for grouping things
together. These groupes are called "Modules".

Some modules are defined by default, among them:

- namespaces
- classes
- functions
- variables


In addition to them, we can create a hierarchy of modules.

Let's say:

1. Algorithms
1.1 Segmentation Algorithms
1.1.1 pixel based
1.1.2 shape based
1.2 Registration Algorithms
1.2.1 ImageToImage
1.2.2 PointSetToImage

and any other hierarchy.

Then, each class can be tagged to indicate its belonging
to a particular group (module).

This is how it can be done:

1) first create the groups:
   command to use:  \defgroup <name> (description)
   the name has to be a single word.

example:

  \defgroup   Algorithms  "Magnificent and Well debugged Algorithms"


2) the group command has a coupling terminator: \endgroup

3) to create hierarchies, \defgroup command should be nested

   like:

 \defgroup  Algorithms    "The Best Algorithms you'll ever see"
   \defgroup  Segmentation  "Segmentation Algorithms"
      \defgroup  PixelBased  "Pixel Based Segmentation Algorithms"
      \endgroup
      \defgroup  ShapeBased  "Shape Based Segmentation Algorithms"
      \endgroup
   \endgroup
   \defgroup Registration  "Registration Algorithms that almost converge"
      \defgroup ImageToImage "Algorithms for registering images"
      \endgroup
      \defgroup PointSetToImage "Algorith for registering PointSets"
      \endgroup
   \endgroup
 \endgroup

  The indentation is done only to improve readability...


4) in  particular classes (or any documented object, eg. a function)
   the command \ingroup indicates to which groups this class belongs
   the format is :

     \ingroup ( <groupname> [ <groupname>  <groupname> ] )

example:

    \ingroup    Algorithms   RunningCode    PleaseDebuggMe



That will associate both, in particular pages.



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



here are some other doxygen command that could be helpful :

\addtoindex (text)    add "text" to the latex index

\anchor (label)
\ref (label)          anchor sets a label on the text
                      that can be referenced from other
                      place using \ref.

\deprecated          We should enforce this one....
                     I guess that a particular page with
                     deprecated methods is generated



-- 
Luis Ibanez                                      CB#:   7060
Research Assistan Professor                      phone: (919) 843 6941
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