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).