28 if (def==
nullptr) def = md;
38 for (
const auto &rmd : refs)
40 if (rmd->isCallable())
56 name = rmd->getOuterScope()==
m_scope ?
57 rmd->
name() : rmd->qualifiedName();
61 name = rmd->qualifiedName();
63 DString tooltip = rmd->briefDescriptionAsTooltip();
84 while (!queue.empty() && maxNodes>0)
103 while (!queue.empty())
109 bool truncated =
false;
110 for (
const auto &dn : n->
children())
112 if (!dn->isVisible())
152 openNodeQueue.clear();
191 const DString &relPath,
bool generateImageMap,
196 return DotGraph::writeGraph(out, graphFormat, textFormat, path, fileName, relPath, generateImageMap, graphId);
217 for (
const auto &rmd : refs)
219 if (rmd->isCallable())
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
const std::string & str() const
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual const DString & name() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual DString qualifiedName() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual Definition * getOuterScope() const =0
virtual const MemberVector & getReferencedByMembers() const =0
virtual const MemberVector & getReferencesMembers() const =0
virtual DString getOutputFileBase() const =0
DotCallGraph(const MemberDef *md, bool inverse)
void computeTheGraph() override
void buildGraph(DotNode *n, const MemberDef *md, int distance)
const Definition * m_scope
DString getMapLabel() const override
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
DString getBaseName() const override
void determineTruncatedNodes(DotNodeDeque &queue)
void determineVisibleNodes(DotNodeDeque &queue, int &maxNodes)
static void computeGraph(DotNode *root, GraphType gt, GraphOutputFormat format, const DString &rank, bool renderParents, bool backArrows, const DString &title, DString &graphStr)
GraphOutputFormat m_graphFormat
bool m_doNotAddImageToIndex
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
void setDistance(int distance)
void markAsVisible(bool b=true)
static void deleteNodes(DotNode *node)
void addParent(DotNode *n)
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)
DotNode & markAsTruncated(bool b=true)
const DotNodeRefVector & children() const
TruncState isTruncated() const
A model of a class/file/namespace member symbol.
virtual MemberDef * memberDefinition() const =0
Text streaming class that buffers data.
#define Config_getInt(name)
#define Config_getBool(name)
static DString getUniqueId(const MemberDef *md)
DString linkToText(SrcLangExt lang, const DString &link, bool ignoreDots)
A bunch of utility functions.