Difference between revisions of "ITK/Doxygen Documentation"

From KitwarePublic
< ITK
Jump to navigationJump to search
Line 16: Line 16:
Doxygen will then generate the documentation for enabled modules. So if you want to generate the complete doxygen documentation you would need to turn ON ITK_BUILD_ALL_MODULES.
Doxygen will then generate the documentation for enabled modules. So if you want to generate the complete doxygen documentation you would need to turn ON ITK_BUILD_ALL_MODULES.


== Documenting classes ==
== Documenting ==
 
=== classes ===


Here is a simple and minimal example:
Here is a simple and minimal example:
Line 54: Line 56:
* '''\sa'''    see [http://www.stack.nl/~dimitri/doxygen/commands.html#cmdsa command documentation]
* '''\sa'''    see [http://www.stack.nl/~dimitri/doxygen/commands.html#cmdsa command documentation]


== Documenting Methods / Functions ==
=== Methods / Functions ===


<source lang="cpp">
<source lang="cpp">

Revision as of 16:33, 11 May 2011

Dependencies

Generating a complete doxygen documentation requires (apart from cmake and ITK source code)

Preferable:

Generating the Doxygen documentation

  • In CMake BUILD_DOCUMENTATION must be turned ON !!
  • Build the project as you would normally do, it will build both the ITK libraries/binaries and the doxygen documentation

Doxygen will then generate the documentation for enabled modules. So if you want to generate the complete doxygen documentation you would need to turn ON ITK_BUILD_ALL_MODULES.

Documenting

classes

Here is a simple and minimal example:

/**
\class MyAwesomeClass
\brief Short Description of MyAwesomeClass

Here you can start writing a more detailed documentation for MyAwesomeClass.

To document each template parameters:
\tparam T1 documentation for the first type
\tparam T2 documentation for the second type
\tparam VDimension documentation about the third template parameter which seems to be related to the Dimension

You can make implicit references to any other ITK class, by just writing their names, e.g. Image, ImageRegion...

Or you can create make a dedicated section "see also":
\sa Image
\sa ImageRegion
*/
template< class T1, typename T2, unsigned int VDimension >
class MyAwesomeClass
{
public:
  /** you can directly write the documentation for PixelType */
  typedef PixelType T1;
};


List of most common doxygen commands:

Methods / Functions

/** \brief You can write here a short description of Method1

You can there write a more detailed documentation for Method1.
\param[in] iP1 you can write documentation for the first parameter which is an input parameter
\param[in] iValue you can write documentation for the second parameter which is an input parameter
\param[out] oValue you can write documentation for the third parameter which is an output parameter
\param[in,out] ioP2 you can write documentation for the fourth parameter which is an input/output parameter
\return description here about the return value
*/
int Method1( PixelType iP1, unsigned int iValue, unsigned int& oValue, PixelType& ioP2 ) const

List of most common doxygen commands:

Creating links to wiki examples

Documenting modules

Is there a way to create a dependency graph of the modules?

That would be great!! Right now, what's being done is that at cmake time, a doxygen page is generated and at the end of the page you have a "Dependencies" section with the list of dependent modules, and links to corresponding pages.

Maintaining the documentation

Suppressing and preventing Doxygen warnings