summaryrefslogtreecommitdiffstats
path: root/src/dot.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2016-01-23 22:29:47 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2016-02-02 20:13:44 (GMT)
commitfb66cae35cd59d1026fe3c6de46ae3a2ed6f9f91 (patch)
treec69a90068c188c7e45d162723c8d3a1640852a46 /src/dot.h
parent5475bf2e9a0f1517567186b47595b8dad2b6b3a3 (diff)
downloadDoxygen-fb66cae35cd59d1026fe3c6de46ae3a2ed6f9f91.zip
Doxygen-fb66cae35cd59d1026fe3c6de46ae3a2ed6f9f91.tar.gz
Doxygen-fb66cae35cd59d1026fe3c6de46ae3a2ed6f9f91.tar.bz2
Reimplemented node renumbering for dot graph to improve performance
Diffstat (limited to 'src/dot.h')
-rw-r--r--src/dot.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/dot.h b/src/dot.h
index e12d547..cb2e83c 100644
--- a/src/dot.h
+++ b/src/dot.h
@@ -78,7 +78,7 @@ class DotNode
void removeParent(DotNode *n);
int findParent( DotNode *n );
void write(FTextStream &t,GraphType gt,GraphOutputFormat f,
- bool topDown,bool toChildren,bool backArrows,bool reNumber);
+ bool topDown,bool toChildren,bool backArrows);
int m_subgraphId;
void clearWriteFlag();
void writeXML(FTextStream &t,bool isClassGraph);
@@ -89,13 +89,14 @@ class DotNode
bool isVisible() const { return m_visible; }
TruncState isTruncated() const { return m_truncated; }
int distance() const { return m_distance; }
+ void renumberNodes(int &number);
private:
void colorConnectedNodes(int curColor);
void writeBox(FTextStream &t,GraphType gt,GraphOutputFormat f,
- bool hasNonReachableChildren, bool reNumber=FALSE);
+ bool hasNonReachableChildren);
void writeArrow(FTextStream &t,GraphType gt,GraphOutputFormat f,DotNode *cn,
- EdgeInfo *ei,bool topDown, bool pointBack=TRUE, bool reNumber=FALSE);
+ EdgeInfo *ei,bool topDown, bool pointBack=TRUE);
void setDistance(int distance);
const DotNode *findDocNode() const; // only works for acyclic graphs!
void markAsVisible(bool b=TRUE) { m_visible=b; }
@@ -160,7 +161,7 @@ class DotGfxHierarchyTable
QList<DotNode> *m_rootNodes;
QDict<DotNode> *m_usedNodes;
- static int m_curNodeNumber;
+ int m_curNodeNumber;
DotNodeList *m_rootSubgraphs;
};
@@ -180,6 +181,7 @@ class DotClassGraph
void writeDocbook(FTextStream &t);
void writeDEF(FTextStream &t);
QCString diskName() const;
+ static void resetNumbering();
private:
void buildGraph(ClassDef *cd,DotNode *n,bool base,int distance);
@@ -211,6 +213,8 @@ class DotInclDepGraph
QCString diskName() const;
void writeXML(FTextStream &t);
void writeDocbook(FTextStream &t);
+ static void resetNumbering();
+
private:
void buildGraph(DotNode *n,FileDef *fd,int distance);
void determineVisibleNodes(QList<DotNode> &queue,int &maxNodes);
@@ -238,10 +242,11 @@ class DotCallGraph
bool isTooBig() const;
void determineVisibleNodes(QList<DotNode> &queue, int &maxNodes);
void determineTruncatedNodes(QList<DotNode> &queue);
-
+ static void resetNumbering();
+
private:
DotNode *m_startNode;
- static int m_curNodeNumber;
+ static int m_curNodeNumber;
QDict<DotNode> *m_usedNodes;
bool m_inverse;
QCString m_diskName;
@@ -312,6 +317,8 @@ class DotGroupCollaboration
bool writeImageMap=TRUE,int graphId=-1) const;
void buildGraph(GroupDef* gd);
bool isTrivial() const;
+ static void resetNumbering();
+
private :
void addCollaborationMember( Definition* def, QCString& url, EdgeType eType );
void addMemberList( class MemberList* ml );
@@ -320,7 +327,7 @@ class DotGroupCollaboration
const QCString& _label, const QCString& _url );
DotNode *m_rootNode;
- int m_curNodeId;
+ static int m_curNodeNumber;
QDict<DotNode> *m_usedNodes;
QCString m_diskName;
QList<Edge> m_edges;
@@ -488,4 +495,6 @@ void writeDotImageMapFromFile(FTextStream &t,
const QCString& relPath,const QCString& baseName,
const QCString& context,int graphId=-1);
+void resetDotNodeNumbering();
+
#endif