Doxygen documentation

zhaozj2021-02-16  57

Chapter 6: Graphs & Diagrams Chart

Doxygen has built-in generation generation to generate a function of the C class level.

Doxygen uses the "DOT" tool in Graphviz 1.5 to generate more advanced maps. Graphviz is developed by AT & T's Bell Labs, the URL is http://www.research.att.com/sw/tools/graphviz/

If you already have a "DOT" tool, you can set a Have_dot to Yes.

Note: The DOT tool must be downloaded to use advanced features.

Doxygen uses "DOT" to generate the following graph

· If Graphical_Hierarchy is set to Yes, together with text, generate a class level map, which is currently only supported in HTML: In a big hierarchical diagram, when many classes are derived from a base class, it may be created Image exceeds browser restrictions

• If the class_graph is set to YES, you will create a picture to each DocuMENTED class to show the direct and indirect inheritance relationship. This is disabled.

• If the include_graph is set to YES, an Include-dependent map is generated for each of the DocuMENTED classes that at least include one other file. This feature is currently only supported in HTML and RTF

· If collaboration_graph is set to Yes, a picture will be generated for each DocuMENTED class and structure:

o Inheritance relationship from Base Class

O and other structs and classes of the use of the class (such as a member variable M_A, which is a class A is Class B type, then A has a pointing M_A above the arrow pointing B)

The elements of the graphs in HTML and RTF have the following meanings:

· A yellow box represents a class. A box can have a little marker in the lower right corner to indicate that the class contains base classes that are hidden. For the class diagrams the maximum tree width is currently 8 elements. If a tree is wider Some Nodes Will Be Hidden. If The Box is Filled with a dashed pattern the inheritance rate. is virtual.

· A White Box INDICATES That The Documentation of The Class Is Currently Shown.

· A Grey Box represents a undocumented class.

· A Solid Dark Blue Arrow Represents public inheritance.

· A Dashed Dark Green Arrow Represents protected inheritance.

· A dotted Dark Green Arrow Represents Private Inheritance.

The elements in the class diagram in

Have the folowing meaning:

A MARKER INDICATES A CLASS. A Marker in The Lower Right Corner of The BoX INDICES That The Class Has Bases That Are Hidden. If The Box Has A Dashed Border This INDICES VIRTUAL INHERITANCE.

· A solid arrow indeicates public inheritance.

· A dashed arrow indeicates protected inheritance. · A dotted arrow indeicates private inheritance.

The elements in the DOT tool generated have the following meaning:

· A White box represents a class / structure / file

· A Box with a red border represents a Node has more arrows, can't be fully displayed! In other words: For this Node, this figure is called (TRUNCATED). A picture is sometimes deleted, which is an excessive placement. The graph width generated by Doxygen is limited to 1024 PIXEL.

· A Black Box represents this Class's document is currently displayed

· A Dark Blue Arrow Represents an Include Relationship (for include Delays) or PUBLIC inheritance (other map)

· A Dark Green Arrow represents protected inheritance

· A DARK Red Arrow represents private inheritance

· A Purple Dashed Arrow represents a "usage" relationship. The edge of the arrow is tagged in the relevant Variable (s). Class A uses class B, if class A has a C type MEMBER VARIABLE M, and B is a subtype (for example, C may be B, B *, T *).

Here is a set. H file demonstrates the various pictures that doxygen can generate:

Diagrams_a.h

#ifndef _diagrams_a_h

#define _Diagrams_a_h

Class a {public: a * m_self;};

#ENDIF

Diagrams_b.h

#ifndef _diagrams_b_h

#define _diagrams_b_h

Class A;

Class B {public: a * m_a;};

#ENDIF

Diagrams_c.h

#ifndef _diagrams_c_h

#define _diagrams_c_h

#include "diagrams_c.h"

Class D;

Class C: public a {public: d * m_d;};

#ENDIF

Diagrams_d.h

#ifndef _diagram_d_h

#define _Diagram_d_h

#include "diagrams_a.h"

#include "diagrams_b.h"

Class C;

Class D: Virtual protected a, private b {public: c m_c;};

#ENDIF

Diagrams_e.h

#ifndef _diagram_e_h

#define _diagram_e_h

#include "diagrams_d.h"

Class E: PUBLIC D {};

#ENDIF

Click here for the corresponding html documentation That IS generated by doxygen (extract_all = yes is buy here).

转载请注明原文地址:https://www.9cbs.com/read-22134.html

New Post(0)