I want to prepare a documentation for a collection of projects, modules and libraries in the field of computer vision (mostly written in c++). To this end I had a look on OpenCV documentation and as you may know OpenCV 2.4.x documentation is based on Sphinx and It was the exact solution that I was seeking for. the nice features of Sphinx are:
- Hierarchical structure of modules in semantic point of view. For example Kalman Filter is a child of Motion Analysis and Object Tracking module
- You can add images and also mathematics formulas
- Pretty good embedded search engine
But I realized that the c++ version of OpenCV3.0 is documented based on Doxygen and I don't know why! because it is not as interesting as Sphinx. I know that Doxygen can compile your code and extract your comments which is an useful feature. I also know that there are libraries (like breathe) which could act as a bridge between Doxygen and Sphinx.
Now my questions are:
- Are Sphinx and Doxygen alternatives of each other or they could be used alongside?
- Does Doxygen have the mentioned features of Sphinx?
- Which documentation engine (Sphinx, Doxygen or other engines) do you prefer for my problem?