Как заставить Doxygen показывать графики наследования алмазов

Doxygen имеет очень удобную функцию, благодаря которой он генерирует графы наследования из кода. Однако при использовании множественного наследования от классов с общей базой на графике показаны два отдельных базовых класса (хотя я использую виртуальное наследование, обозначенное пунктирными линиями вокруг базового класса)

введите здесь описание изображения

Как я могу сделать график Doxygen более похожим на следующий. . .

     D
    / \
   B   C
    \ /
     A

А не: (как это бывает без виртуального наследования)

     D
   /   \
   B   C
   |   |
   A   A

person learnvst    schedule 22.05.2014    source источник
comment
Вы знаете, я проголосовал за это и добавил в избранное давным-давно, но чем больше я об этом думаю, тем больше я думаю, что doxygen на самом деле здесь прав, поскольку D будет иметь 2 экземпляра A.   -  person IdeaHat    schedule 15.09.2014
comment
Не будет 2 экземпляров A, если наследование виртуально через class B : public virtual A {}   -  person Cookie Butter    schedule 02.06.2015
comment
В Ubuntu 18.04.3, используя doxygen/doxywizard 1.8.13, у меня возникла та же проблема со встроенным генератором диаграмм классов. Если я использую dot (то есть graphviz (точка) версии 2.40.1) для создания диаграмм, то я получаю правильный ромб, но я теряю затенение/пунктирный контур, означающий, что самый верхний класс был фактически унаследован. Очень надоедливый.   -  person badfd    schedule 06.01.2020


Ответы (1)


Если вы установите для тега HAVE_DOT значение YES, doxygen будет считать, что инструмент точки доступен из пути. Этот инструмент является частью Graphviz (см.: http://www.graphviz.org/), средства визуализации графиков. инструментарий от AT&T и Lucent Bell Labs. Другие параметры в этом разделе не действуют, если для этого параметра установлено значение НЕТ. Значение по умолчанию: НЕТ.

Установлен в

HAVE_DOT = ДА

person oukore    schedule 07.07.2015
comment
Стоит добавить, что если у вас нет «точки», в Ubuntu это всего лишь sudo apt-get install graphviz. - person dwanderson; 10.03.2016