title: What are the main differences of Sphinx and Doxygen?
body: <p>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 <em>OpenCV</em> documentation and as you may know <em>OpenCV</em> 2.4.x documentation is based on <a href="https://sphinx-doc.org/" rel="noreferrer"><em>Sphinx</em></a> and It was the exact solution that I was seeking for. the nice features of Sphinx are:</p>
  
  <ol>
  <li><strong>Hierarchical structure</strong> of modules in semantic point of view. For example <em>Kalman Filter</em> is a child of <em>Motion Analysis and Object Tracking</em> module</li>
  <li>You can add <strong>images</strong> and also mathematics <strong>formulas</strong> </li>
  <li>Pretty good embedded <strong>search engine</strong></li>
  </ol>
  
  <p>But I realized that the c++ version of OpenCV3.0 is documented based on <a href="https://www.doxygen.nl/" rel="noreferrer"><em>Doxygen</em></a> and I don't know why! because it is not as interesting as <em>Sphinx</em>.
  I know that <em>Doxygen</em> can compile your code and extract your comments which is an useful feature. I also know that there are libraries (like <em>breathe</em>) which could act as a bridge between <em>Doxygen</em> and <em>Sphinx</em>.</p>
  
  <p><strong>Now my questions are:</strong> </p>
  
  <ol>
  <li>Are <em>Sphinx</em> and <em>Doxygen</em> alternatives of each other or they could be used alongside? </li>
  <li>Does <em>Doxygen</em> have the mentioned features of <em>Sphinx</em>? </li>
  <li>Which documentation engine (<em>Sphinx</em>, <em>Doxygen</em> or other engines) do you prefer for my problem?</li>
  </ol>