Doxygen
Loading...
Searching...
No Matches
DotClassGraph Class Referencefinal

Representation of a class inheritance or dependency graph. More...

#include <src/dotclassgraph.h>

Inheritance diagram for DotClassGraph:
Collaboration diagram for DotClassGraph:

Public Member Functions

 DotClassGraph (const ClassDef *cd, GraphType t)
 ~DotClassGraph () override
bool isTrivial () const
bool isTooBig () const
int numNodes () const
DString writeGraph (TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool TBRank=true, bool imageMap=true, int graphId=-1)
void writeXML (TextStream &t)
void writeDocbook (TextStream &t)
void writeDEF (TextStream &t)
Public Member Functions inherited from DotGraph
 DotGraph ()
virtual ~DotGraph ()=default

Protected Member Functions

DString getBaseName () const override
DString getMapLabel () const override
void computeTheGraph () override
DString getImgAltText () const override
Protected Member Functions inherited from DotGraph
int getNextNodeNumber ()
 returns the node number.
int getNextEdgeNumber ()
 returns the edge number.
DString writeGraph (TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
virtual DString absMapName () const
DString absBaseName () const
DString absDotName () const
DString imgName () const
DString absImgName () const
DString relImgName () const

Private Member Functions

void buildGraph (const ClassDef *cd, DotNode *n, bool base, int distance)
bool determineVisibleNodes (DotNode *rootNode, int maxNodes, bool includeParents)
void determineTruncatedNodes (DotNodeDeque &queue, bool includeParents)
void addClass (const ClassDef *cd, DotNode *n, EdgeInfo::Colors color, const DString &label, const DString &usedName, const DString &templSpec, bool base, int distance)

Private Attributes

DotNodem_startNode
DotNodeMap m_usedNodes
GraphType m_graphType
DString m_collabFileName
DString m_inheritFileName
bool m_lrRank

Additional Inherited Members

Static Protected Member Functions inherited from DotGraph
static void writeGraphHeader (TextStream &t, const DString &title=DString())
static void writeGraphFooter (TextStream &t)
static void computeGraph (DotNode *root, GraphType gt, GraphOutputFormat format, const DString &rank, bool renderParents, bool backArrows, const DString &title, DString &graphStr)
Protected Attributes inherited from DotGraph
GraphOutputFormat m_graphFormat = GraphOutputFormat::BITMAP
EmbeddedOutputFormat m_textFormat = EmbeddedOutputFormat::Html
Dir m_dir
DString m_fileName
DString m_relPath
bool m_generateImageMap = false
int m_graphId = 0
DString m_absPath
DString m_baseName
DString m_theGraph
bool m_regenerate = false
bool m_doNotAddImageToIndex = false
bool m_noDivTag = false
bool m_zoomable = true
bool m_urlOnly = false

Detailed Description

Representation of a class inheritance or dependency graph.

Definition at line 29 of file dotclassgraph.h.

Constructor & Destructor Documentation

◆ DotClassGraph()

DotClassGraph::DotClassGraph ( const ClassDef * cd,
GraphType t )

Definition at line 321 of file dotclassgraph.cpp.

322{
323 //printf("--------------- DotClassGraph::DotClassGraph '%s'\n",qPrint(cd->displayName()));
324 m_graphType = t;
325 DString tmp_url="";
326 if (cd->isLinkable() && !cd->isHidden())
327 {
328 tmp_url=cd->getReference()+"$"+cd->getOutputFileBase();
329 if (!cd->anchor().empty())
330 {
331 tmp_url+="#"+cd->anchor();
332 }
333 }
334 DString className = cd->displayName();
335 DString tooltip = cd->briefDescriptionAsTooltip();
336 m_startNode = new DotNode(this,
337 className,
338 tooltip,
339 tmp_url,
340 true, // is a root node
341 cd
342 );
344 m_usedNodes.emplace(className.str(),m_startNode);
345
346 buildGraph(cd,m_startNode,true,1);
348
350 DotNodeDeque openNodeQueue;
351 openNodeQueue.push_back(m_startNode);
353
356}
virtual DString inheritanceGraphFileName() const =0
returns the file name to use for the inheritance graph
virtual DString collaborationGraphFileName() const =0
returns the file name to use for the collaboration graph
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
const std::string & str() const
Definition dstring.h:645
virtual bool isLinkable() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual DString displayName(bool includeScope=true) const =0
virtual bool isHidden() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual DString getOutputFileBase() const =0
DotNodeMap m_usedNodes
DotNode * m_startNode
GraphType m_graphType
bool determineVisibleNodes(DotNode *rootNode, int maxNodes, bool includeParents)
void determineTruncatedNodes(DotNodeDeque &queue, bool includeParents)
DString m_inheritFileName
void buildGraph(const ClassDef *cd, DotNode *n, bool base, int distance)
DString m_collabFileName
friend class DotNode
Definition dotgraph.h:36
void setDistance(int distance)
Definition dotnode.cpp:392
#define Config_getInt(name)
Definition config.h:34
@ Inheritance
Definition dotgraph.h:31

References Definition::anchor(), Definition::briefDescriptionAsTooltip(), buildGraph(), ClassDef::collaborationGraphFileName(), Config_getInt, determineTruncatedNodes(), determineVisibleNodes(), Definition::displayName(), DotGraph::DotNode, DString::empty(), Definition::getOutputFileBase(), Definition::getReference(), Inheritance, ClassDef::inheritanceGraphFileName(), Definition::isHidden(), Definition::isLinkable(), m_collabFileName, m_graphType, m_inheritFileName, m_lrRank, m_startNode, m_usedNodes, DotNode::setDistance(), and DString::str().

◆ ~DotClassGraph()

DotClassGraph::~DotClassGraph ( )
override

Definition at line 382 of file dotclassgraph.cpp.

383{
385}
static void deleteNodes(DotNode *node)
Definition dotnode.cpp:406

References DotNode::deleteNodes(), and m_startNode.

Member Function Documentation

◆ addClass()

void DotClassGraph::addClass ( const ClassDef * cd,
DotNode * n,
EdgeInfo::Colors color,
const DString & label,
const DString & usedName,
const DString & templSpec,
bool base,
int distance )
private

Definition at line 31 of file dotclassgraph.cpp.

33{
34 if (Config_getBool(HIDE_UNDOC_CLASSES) && !cd->isLinkable()) return;
35
36 EdgeInfo::Styles edgeStyle = (!label.empty() || color==EdgeInfo::Orange || color==EdgeInfo::Orange2) ? EdgeInfo::Dashed : EdgeInfo::Solid;
37 DString className;
38 DString fullName;
39 if (cd->isAnonymous())
40 {
41 className="anonymous:";
42 className+=label;
43 fullName = className;
44 }
45 else if (!usedName.empty()) // name is a typedef
46 {
47 className=usedName;
48 fullName = className;
49 }
50 else if (!templSpec.empty()) // name has a template part
51 {
52 className=insertTemplateSpecifierInScope(cd->displayName(),templSpec);
53 fullName =insertTemplateSpecifierInScope(cd->name(),templSpec);
54 }
55 else // just a normal name
56 {
57 className=cd->displayName();
58 fullName = cd->name();
59 }
60 //printf("DotClassGraph::addClass(class='%s',parent=%s,prot=%d,label=%s,dist=%d,usedName=%s,templSpec=%s,base=%d)\n",
61 // qPrint(className),qPrint(n->label()),prot,label,distance,usedName,templSpec,base);
62 auto it = m_usedNodes.find(fullName.str());
63 if (it!=m_usedNodes.end()) // class already inserted
64 {
65 DotNode *bn = it->second;
66 if (base)
67 {
68 n->addChild(bn,color,edgeStyle,label);
69 bn->addParent(n);
70 }
71 else
72 {
73 bn->addChild(n,color,edgeStyle,label);
74 n->addParent(bn);
75 }
76 bn->setDistance(distance);
77 //printf(" add exiting node %s of %s\n",qPrint(bn->label()),qPrint(n->label()));
78 }
79 else // new class
80 {
81 DString displayName=className;
82 if (Config_getBool(HIDE_SCOPE_NAMES)) displayName=stripScope(displayName);
83 DString tmp_url;
84 if (cd->isLinkable() && !cd->isHidden())
85 {
86 tmp_url=cd->getReference()+"$"+cd->getOutputFileBase();
87 if (!cd->anchor().empty())
88 {
89 tmp_url+="#"+cd->anchor();
90 }
91 }
92 DString tooltip = cd->briefDescriptionAsTooltip();
93 DotNode *bn = new DotNode(this,
94 displayName,
95 tooltip,
96 tmp_url,
97 false, // rootNode
98 cd
99 );
100 if (base)
101 {
102 n->addChild(bn,color,edgeStyle,label);
103 bn->addParent(n);
104 }
105 else
106 {
107 bn->addChild(n,color,edgeStyle,label);
108 n->addParent(bn);
109 }
110 bn->setDistance(distance);
111 m_usedNodes.emplace(fullName.str(),bn);
112 //printf(" add new child node '%s' to %s hidden=%d url=%s\n",
113 // qPrint(className),qPrint(n->label()),cd->isHidden(),qPrint(tmp_url));
114
115 buildGraph(cd,bn,base,distance+1);
116 }
117}
virtual const DString & name() const =0
virtual bool isAnonymous() const =0
void addParent(DotNode *n)
Definition dotnode.cpp:357
void addChild(DotNode *n, EdgeInfo::Colors edgeColor=EdgeInfo::Purple, EdgeInfo::Styles edgeStyle=EdgeInfo::Solid, const DString &edgeLab=DString(), const DString &edgeURL=DString(), int edgeLabColor=-1)
Definition dotnode.cpp:340
@ Solid
Definition dotnode.h:35
@ Dashed
Definition dotnode.h:35
@ Orange2
Definition dotnode.h:34
@ Orange
Definition dotnode.h:34
#define Config_getBool(name)
Definition config.h:33
DString insertTemplateSpecifierInScope(const DString &scope, const DString &templ)
Definition util.cpp:3076
DString stripScope(const DString &name)
Definition util.cpp:3109

References DotNode::addChild(), DotNode::addParent(), Definition::anchor(), Definition::briefDescriptionAsTooltip(), buildGraph(), Config_getBool, EdgeInfo::Dashed, Definition::displayName(), DotGraph::DotNode, DString::empty(), Definition::getOutputFileBase(), Definition::getReference(), insertTemplateSpecifierInScope(), Definition::isAnonymous(), Definition::isHidden(), Definition::isLinkable(), m_usedNodes, Definition::name(), EdgeInfo::Orange, EdgeInfo::Orange2, DotNode::setDistance(), EdgeInfo::Solid, DString::str(), and stripScope().

Referenced by buildGraph().

◆ buildGraph()

void DotClassGraph::buildGraph ( const ClassDef * cd,
DotNode * n,
bool base,
int distance )
private

Definition at line 257 of file dotclassgraph.cpp.

258{
259 //printf("DocClassGraph::buildGraph(%s,distance=%d,base=%d)\n",
260 // qPrint(cd->name()),distance,base);
261 // ---- Add inheritance relations
262
264 {
265 for (const auto &bcd : base ? cd->baseClasses() : cd->subClasses())
266 {
267 //printf("-------- inheritance relation %s->%s templ='%s'\n",
268 // qPrint(cd->name()),qPrint(bcd->classDef->name()),qPrint(bcd->templSpecifiers));
269 addClass(bcd.classDef,n,EdgeInfo::protectionToColor(bcd.prot),DString(),bcd.usedName,bcd.templSpecifiers,base,distance);
270 }
271 }
273 {
274 // ---- Add usage relations
275
276 const UsesClassList &list = base ? cd->usedImplementationClasses() :
278 for (const auto &ucd : list)
279 {
280 //printf("addClass: %s templSpec=%s\n",qPrint(ucd.classDef->name()),qPrint(ucd.templSpecifiers));
281 addClass(ucd.classDef,n,EdgeInfo::Purple,joinLabels(ucd.accessors),DString(),
282 ucd.templSpecifiers,base,distance);
283 }
284 }
285 if (Config_getBool(TEMPLATE_RELATIONS) && base)
286 {
287 for (const auto &ccd : cd->templateTypeConstraints())
288 {
289 //printf("addClass: %s\n",qPrint(ccd.classDef->name()));
290 addClass(ccd.classDef,n,EdgeInfo::Orange2,joinLabels(ccd.accessors),DString(),
291 DString(),true,distance);
292 }
293 }
294
295 // ---- Add template instantiation relations
296
297 if (Config_getBool(TEMPLATE_RELATIONS))
298 {
299 if (base) // template relations for base classes
300 {
301 const ClassDef *templMaster=cd->templateMaster();
302 if (templMaster)
303 {
304 for (const auto &ti : templMaster->getTemplateInstances())
305 if (ti.classDef==cd)
306 {
307 addClass(templMaster,n,EdgeInfo::Orange,ti.templSpec,DString(),DString(),true,distance);
308 }
309 }
310 }
311 else // template relations for super classes
312 {
313 for (const auto &ti : cd->getTemplateInstances())
314 {
315 addClass(ti.classDef,n,EdgeInfo::Orange,ti.templSpec,DString(),DString(),false,distance);
316 }
317 }
318 }
319}
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
virtual const TemplateInstanceList & getTemplateInstances() const =0
Returns a sorted dictionary with all template instances found for this template class.
virtual const UsesClassList & usedImplementationClasses() const =0
virtual const ConstraintClassList & templateTypeConstraints() const =0
virtual const UsesClassList & usedByImplementationClasses() const =0
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class.
void addClass(const ClassDef *cd, DotNode *n, EdgeInfo::Colors color, const DString &label, const DString &usedName, const DString &templSpec, bool base, int distance)
static constexpr Colors protectionToColor(Protection prot)
Definition dotnode.h:43
@ Purple
Definition dotnode.h:34
static DString joinLabels(const StringSet &ss)
@ Collaboration
Definition dotgraph.h:31

References addClass(), ClassDef::baseClasses(), Collaboration, Config_getBool, DotGraph::DotNode, ClassDef::getTemplateInstances(), Inheritance, joinLabels(), m_graphType, EdgeInfo::Orange, EdgeInfo::Orange2, EdgeInfo::protectionToColor(), EdgeInfo::Purple, ClassDef::subClasses(), ClassDef::templateMaster(), ClassDef::templateTypeConstraints(), ClassDef::usedByImplementationClasses(), and ClassDef::usedImplementationClasses().

Referenced by addClass(), and DotClassGraph().

◆ computeTheGraph()

void DotClassGraph::computeTheGraph ( )
overrideprotectedvirtual

Implements DotGraph.

Definition at line 404 of file dotclassgraph.cpp.

405{
410 m_lrRank ? "LR" : "",
412 true,
415 );
416}
static void computeGraph(DotNode *root, GraphType gt, GraphOutputFormat format, const DString &rank, bool renderParents, bool backArrows, const DString &title, DString &graphStr)
Definition dotgraph.cpp:300
DString m_theGraph
Definition dotgraph.h:95
GraphOutputFormat m_graphFormat
Definition dotgraph.h:85
DString label() const
Definition dotnode.h:102

References DotGraph::computeGraph(), Inheritance, DotNode::label(), DotGraph::m_graphFormat, m_graphType, m_lrRank, m_startNode, and DotGraph::m_theGraph.

◆ determineTruncatedNodes()

void DotClassGraph::determineTruncatedNodes ( DotNodeDeque & queue,
bool includeParents )
private

Definition at line 119 of file dotclassgraph.cpp.

120{
121 while (!queue.empty())
122 {
123 DotNode *n = queue.front();
124 queue.pop_front();
125 if (n->isVisible() && n->isTruncated()==DotNode::Unknown)
126 {
127 bool truncated = false;
128 for (const auto &dn : n->children())
129 {
130 if (!dn->isVisible())
131 truncated = true;
132 else
133 queue.push_back(dn);
134 }
135 if (includeParents)
136 {
137 for (const auto &dn : n->parents())
138 {
139 if (!dn->isVisible())
140 truncated = true;
141 else
142 queue.push_back(dn);
143 }
144 }
145 n->markAsTruncated(truncated);
146 }
147 }
148}
bool isVisible() const
Definition dotnode.h:104
@ Unknown
Definition dotnode.h:76
DotNode & markAsTruncated(bool b=true)
Definition dotnode.h:121
const DotNodeRefVector & parents() const
Definition dotnode.h:123
const DotNodeRefVector & children() const
Definition dotnode.h:122
TruncState isTruncated() const
Definition dotnode.h:105

References DotNode::children(), DotGraph::DotNode, DotNode::isTruncated(), DotNode::isVisible(), DotNode::markAsTruncated(), DotNode::parents(), and DotNode::Unknown.

Referenced by DotClassGraph().

◆ determineVisibleNodes()

bool DotClassGraph::determineVisibleNodes ( DotNode * rootNode,
int maxNodes,
bool includeParents )
private

Definition at line 150 of file dotclassgraph.cpp.

152{
153 DotNodeDeque childQueue;
154 DotNodeDeque parentQueue;
155 std::vector<size_t> childTreeWidth;
156 std::vector<size_t> parentTreeWidth;
157 childQueue.push_back(rootNode);
158 if (includeParents) parentQueue.push_back(rootNode);
159 bool firstNode=true; // flag to force reprocessing rootNode in the parent loop
160 // despite being marked visible in the child loop
161 while ((!childQueue.empty() || !parentQueue.empty()) && maxNodes>0)
162 {
163 if (!childQueue.empty())
164 {
165 DotNode *n = childQueue.front();
166 childQueue.pop_front();
167 size_t distance = n->distance();
168 if (!n->isVisible() && distance<=static_cast<size_t>(Config_getInt(MAX_DOT_GRAPH_DEPTH))) // not yet processed
169 {
170 if (distance>0)
171 {
172 size_t oldSize=childTreeWidth.size();
173 if (distance>oldSize)
174 {
175 childTreeWidth.resize(std::max(childTreeWidth.size(),distance));
176 for (size_t i=oldSize;i<distance;i++) childTreeWidth[i]=0;
177 }
178 childTreeWidth[distance-1]+=n->label().length();
179 }
180 n->markAsVisible();
181 maxNodes--;
182 // add direct children
183 for (const auto &dn : n->children())
184 {
185 childQueue.push_back(dn);
186 }
187 }
188 }
189 if (includeParents && !parentQueue.empty())
190 {
191 DotNode *n = parentQueue.front();
192 parentQueue.pop_front();
193 if ((!n->isVisible() || firstNode) && n->distance()<=Config_getInt(MAX_DOT_GRAPH_DEPTH)) // not yet processed
194 {
195 firstNode=false;
196 size_t distance = n->distance();
197 if (distance>0)
198 {
199 size_t oldSize = parentTreeWidth.size();
200 if (distance>oldSize)
201 {
202 parentTreeWidth.resize(std::max(parentTreeWidth.size(),distance));
203 for (size_t i=oldSize;i<distance;i++) parentTreeWidth[i]=0;
204 }
205 parentTreeWidth[distance-1]+=n->label().length();
206 }
207 n->markAsVisible();
208 maxNodes--;
209 // add direct parents
210 for (const auto &dn : n->parents())
211 {
212 parentQueue.push_back(dn);
213 }
214 }
215 }
216 }
217 if (Config_getBool(UML_LOOK)) return false; // UML graph are always top to bottom
218 size_t maxWidth=0;
219 size_t maxHeight=std::max(childTreeWidth.size(),parentTreeWidth.size());
220 for (size_t i=0;i<childTreeWidth.size();i++)
221 {
222 if (childTreeWidth.at(i)>maxWidth) maxWidth=childTreeWidth.at(i);
223 }
224 for (size_t i=0;i<parentTreeWidth.size();i++)
225 {
226 if (parentTreeWidth.at(i)>maxWidth) maxWidth=parentTreeWidth.at(i);
227 }
228 //printf("max tree width=%d, max tree height=%d\n",maxWidth,maxHeight);
229 return maxWidth>80 && maxHeight<12; // used metric to decide to render the tree
230 // from left to right instead of top to bottom,
231 // with the idea to render very wide trees in
232 // left to right order.
233}
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:151
int distance() const
Definition dotnode.h:106
void markAsVisible(bool b=true)
Definition dotnode.h:120

References DotNode::children(), Config_getBool, Config_getInt, DotNode::distance(), DotGraph::DotNode, DotNode::isVisible(), DotNode::label(), DString::length(), DotNode::markAsVisible(), and DotNode::parents().

Referenced by DotClassGraph().

◆ getBaseName()

DString DotClassGraph::getBaseName ( ) const
overrideprotectedvirtual

Implements DotGraph.

Definition at line 387 of file dotclassgraph.cpp.

388{
389 switch (m_graphType)
390 {
392 return m_collabFileName;
393 break;
395 return m_inheritFileName;
396 break;
397 default:
398 ASSERT(0);
399 break;
400 }
401 return "";
402}
#define ASSERT(x)
Definition message.h:142

References ASSERT, Collaboration, Inheritance, m_collabFileName, m_graphType, and m_inheritFileName.

◆ getImgAltText()

DString DotClassGraph::getImgAltText ( ) const
overrideprotectedvirtual

Reimplemented from DotGraph.

Definition at line 437 of file dotclassgraph.cpp.

438{
439 switch (m_graphType)
440 {
442 return "Collaboration graph";
443 break;
445 return "Inheritance graph";
446 break;
447 default:
448 ASSERT(0);
449 break;
450 }
451 return "";
452}

References ASSERT, Collaboration, Inheritance, and m_graphType.

◆ getMapLabel()

DString DotClassGraph::getMapLabel ( ) const
overrideprotectedvirtual

Implements DotGraph.

Definition at line 418 of file dotclassgraph.cpp.

419{
420 DString mapName;
421 switch (m_graphType)
422 {
424 mapName="coll_map";
425 break;
427 mapName="inherit_map";
428 break;
429 default:
430 ASSERT(0);
431 break;
432 }
433
434 return escapeCharsInString(m_startNode->label(),false)+"_"+escapeCharsInString(mapName,false);
435}
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:2688

References ASSERT, Collaboration, escapeCharsInString(), Inheritance, DotNode::label(), m_graphType, and m_startNode.

◆ isTooBig()

bool DotClassGraph::isTooBig ( ) const

Definition at line 366 of file dotclassgraph.cpp.

367{
368 return numNodes()>=Config_getInt(DOT_GRAPH_MAX_NODES);
369}
int numNodes() const

References Config_getInt, and numNodes().

Referenced by ClassDefImpl::writeCollaborationGraph(), and ClassDefImpl::writeInheritanceGraph().

◆ isTrivial()

◆ numNodes()

int DotClassGraph::numNodes ( ) const

Definition at line 371 of file dotclassgraph.cpp.

372{
373 size_t numNodes = 0;
374 numNodes+= m_startNode->children().size();
376 {
377 numNodes+= m_startNode->parents().size();
378 }
379 return static_cast<int>(numNodes);
380}

References DotNode::children(), Inheritance, m_graphType, m_startNode, numNodes(), and DotNode::parents().

Referenced by isTooBig(), numNodes(), ClassDefImpl::writeCollaborationGraph(), and ClassDefImpl::writeInheritanceGraph().

◆ writeDEF()

void DotClassGraph::writeDEF ( TextStream & t)

Definition at line 487 of file dotclassgraph.cpp.

488{
489 for (const auto &[name,node] : m_usedNodes)
490 {
491 node->writeDEF(t);
492 }
493}

References m_usedNodes.

Referenced by generateDEFForClass().

◆ writeDocbook()

void DotClassGraph::writeDocbook ( TextStream & t)

Definition at line 479 of file dotclassgraph.cpp.

480{
481 for (const auto &[name,node] : m_usedNodes)
482 {
483 node->writeDocbook(t,true);
484 }
485}

References m_usedNodes.

◆ writeGraph()

DString DotClassGraph::writeGraph ( TextStream & t,
GraphOutputFormat gf,
EmbeddedOutputFormat ef,
const DString & path,
const DString & fileName,
const DString & relPath,
bool TBRank = true,
bool imageMap = true,
int graphId = -1 )

Definition at line 454 of file dotclassgraph.cpp.

463{
465
466 return DotGraph::writeGraph(out, graphFormat, textFormat, path, fileName, relPath, generateImageMap, graphId);
467}
bool m_doNotAddImageToIndex
Definition dotgraph.h:97
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
Definition dotgraph.cpp:115

References Html, DotGraph::m_doNotAddImageToIndex, and DotGraph::writeGraph().

Referenced by DocbookGenerator::endDotGraph(), HtmlGenerator::endDotGraph(), LatexGenerator::endDotGraph(), and RTFGenerator::endDotGraph().

◆ writeXML()

void DotClassGraph::writeXML ( TextStream & t)

Definition at line 471 of file dotclassgraph.cpp.

472{
473 for (const auto &[name,node] : m_usedNodes)
474 {
475 node->writeXML(t,true);
476 }
477}

References m_usedNodes.

Referenced by generateXMLForClass().

Member Data Documentation

◆ m_collabFileName

DString DotClassGraph::m_collabFileName
private

Definition at line 64 of file dotclassgraph.h.

Referenced by DotClassGraph(), and getBaseName().

◆ m_graphType

GraphType DotClassGraph::m_graphType
private

◆ m_inheritFileName

DString DotClassGraph::m_inheritFileName
private

Definition at line 65 of file dotclassgraph.h.

Referenced by DotClassGraph(), and getBaseName().

◆ m_lrRank

bool DotClassGraph::m_lrRank
private

Definition at line 66 of file dotclassgraph.h.

Referenced by computeTheGraph(), and DotClassGraph().

◆ m_startNode

DotNode* DotClassGraph::m_startNode
private

◆ m_usedNodes

DotNodeMap DotClassGraph::m_usedNodes
private

Definition at line 62 of file dotclassgraph.h.

Referenced by addClass(), DotClassGraph(), writeDEF(), writeDocbook(), and writeXML().


The documentation for this class was generated from the following files: