graphvertex.h
Go to the documentation of this file.
1 /***************************************************************************
2  SocNetV: Social Network Visualizer
3  version: 2.5
4  Written in Qt
5 
6  graphvertex.h - description
7  -------------------
8  copyright : (C) 2005-2019 by Dimitris B. Kalamaras
9  project site : https://socnetv.org
10 
11  ***************************************************************************/
12 
13 /*******************************************************************************
14 * This program is free software: you can redistribute it and/or modify *
15 * it under the terms of the GNU General Public License as published by *
16 * the Free Software Foundation, either version 3 of the License, or *
17 * (at your option) any later version. *
18 * *
19 * This program is distributed in the hope that it will be useful, *
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22 * GNU General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU General Public License *
25 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
26 ********************************************************************************/
27 
28 #ifndef GRAPHVERTEX_H
29 #define GRAPHVERTEX_H
30 
31 #include <QObject>
32 #include <QString>
33 #include <QStringList>
34 #include <QHash>
35 #include <QList>
36 #include <QPointF>
37 #include <map>
38 
39 using namespace std;
40 
41 class QPointF;
42 class Graph;
43 
44 
45 typedef QList<int> L_int;
46 
47 typedef QHash<int,QString> H_IntToStr;
48 typedef QHash <QString, int> H_StrToInt;
49 
50 
51 typedef QPair <qreal, bool> pair_f_b;
52 typedef QPair <int, pair_f_b > pair_i_fb;
53 typedef QHash < int, pair_i_fb > H_edges;
54 
55 typedef QPair <int, qreal > pair_i_f;
56 typedef QHash < int, pair_i_f > H_distance;
57 
58 typedef QPair <int, int> pair_i_i;
59 typedef QHash < int, pair_i_i > H_shortestPaths;
60 
61 
62 class GraphVertex : public QObject{
63  Q_OBJECT
64 
65 public:
66 
67  GraphVertex(Graph* parentGraph,
68  const int &name,
69  const int &val,
70  const int &relation,
71  const int &size,
72  const QString &color,
73  const QString &numColor,
74  const int &numSize,
75  const QString &label,
76  const QString &labelColor,
77  const int &labelSize,
78  const QPointF &p,
79  const QString &shape,
80  const QString &iconPath);
81 
82  GraphVertex(const int &name);
83 
84  ~GraphVertex();
85 
86  int name() const { return m_name; }
87 
88  void setName (const int &name) { m_name=name; }
89 
90  void setEnabled (const bool &flag ) { m_enabled=flag; }
91  bool isEnabled () const { return m_enabled; }
92 
93  void relationSet(int newRel) ;
94 
95  void edgeAddTo (const int &v2, const qreal &weight, const QString &color=QString(), const QString &label=QString());
96  void edgeAddFrom(const int &v1, const qreal &weight);
97 
98  void changeOutEdgeWeight (const int &target, const qreal &weight);
99 
100  void setOutEdgeEnabled (const int, bool);
101 
102  void edgeRemoveTo (const int target);
103  void edgeRemoveFrom(const int source);
104 
105  QHash<int, qreal> outEdgesEnabledHash(const bool &allRelations=false);
106  QHash<int,qreal>* outEdgesAllRelationsUniqueHash();
107  QHash<int,qreal>* inEdgesEnabledHash();
108  QHash<int,qreal> reciprocalEdgesHash();
109  QList<int> neighborhoodList();
110 
111  int outEdges();
112  int outEdgesConst() const ;
113 
114  int inEdges();
115  int inEdgesConst() const ;
116 
117  int degreeOut();
118  int outDegreeConst();
119  int degreeIn();
120  int inDegreeConst();
121  int localDegree();
122 
123  qreal distance(const int &v1) ;
124  void setDistance (const int &v1, const qreal &d) ;
125  void reserveDistance(const int &N);
126  void clearDistance();
127 
128  int shortestPaths(const int &v1) ;
129  void setShortestPaths(const int &v1, const int &sp) ;
130  void reserveShortestPaths(const int &N);
131  void clearShortestPaths();
132 
133 
134  /* sets eccentricity */
135  void setEccentricity (const qreal &c){ m_Eccentricity=c;}
136  qreal eccentricity() { return m_Eccentricity;}
137 
138  /* Returns true if there is an outLink from this vertex */
139  bool isOutLinked() { return (outEdges() > 0) ? true:false;}
140  qreal hasEdgeTo(const int &v, const bool &allRelations=false);
141 
142  /* Returns true if there is an outLink from this vertex */
143  bool isInLinked() { return (inEdges() > 0) ? true:false;}
144  qreal hasEdgeFrom (const int &v, const bool &allRelations=false);
145 
146  bool isIsolated() { return !(isOutLinked() | isInLinked()) ; }
147  void setIsolated(bool isolated) {m_isolated = isolated; }
148 
149  void edgeFilterByWeight(qreal m_threshold, bool overThreshold);
150  // void filterEdgesByColor(qreal m_threshold, bool overThreshold);
151  void edgeFilterByRelation(int relation, bool status);
152  void edgeFilterUnilateral(const bool &toggle=false);
153 
154  void setSize(const int &size ) { m_size=size; }
155  int size() const { return m_size; }
156 
157  void setShape(const QString &shape, const QString &iconPath = QString::null) { m_shape=shape; m_iconPath=iconPath;}
158  QString shape() const { return m_shape; }
159  QString shapeIconPath() {return m_iconPath; }
160 
161  void setColor(const QString &color) { m_color=color; }
162  QString color() const { return m_color; }
163  QString colorToPajek();
164 
165  void setNumberColor (const QString &color) { m_numberColor = color; }
166  QString numberColor() const { return m_numberColor; }
167 
168  void setNumberSize (const int &size) { m_numberSize=size; }
169  int numberSize() const { return m_numberSize; }
170 
171  void setNumberDistance (const int &distance) { m_numberDistance=distance; }
172  int numberDistance() const { return m_numberDistance; }
173 
174  void setLabel (const QString &label) { m_label=label; }
175  QString label() const { return m_label; }
176 
177  void setLabelColor (const QString &labelColor) { m_labelColor=labelColor; }
178  QString labelColor() const { return m_labelColor; }
179 
180  void setLabelSize(const int &size) { m_labelSize=size; }
181  int labelSize() const { return m_labelSize; }
182 
183  void setLabelDistance (const int &distance) { m_labelDistance=distance; }
184  int labelDistance() const { return m_labelDistance; }
185 
186  void setX(const qreal &x) { m_x=x; }
187  qreal x() const { return m_x; }
188 
189  void setY(const qreal &y) { m_y=y; }
190  qreal y() const { return m_y; }
191 
192  QPointF pos () const { return QPointF ( x(), y() ); }
193  void setPos (QPointF &p) { m_x=p.x(); m_y=p.y(); }
194 
195  //returns displacement vector
196  QPointF & disp() { return m_disp; }
197 
198  void set_dispX (qreal x) { m_disp.rx() = x ; }
199  void set_dispY (qreal y) { m_disp.ry() = y ; }
200 
201 
202  void setOutLinkColor(const int &v2,
203  const QString &color) { m_outLinkColors[v2]=color; }
204  QString outLinkColor(const int &v2) {
205  return ( m_outLinkColors.contains(v2) ) ? m_outLinkColors.value(v2) : "black";
206  }
207 
208 
209  void setOutEdgeLabel(const int &v2,
210  const QString &label) { m_outEdgeLabels[v2]=label; }
211  QString outEdgeLabel(const int &v2) const {
212  return ( m_outEdgeLabels.contains(v2) ) ? m_outEdgeLabels.value(v2) : QString::null;
213  }
214 
215 
216  void setDelta (const qreal &c){ m_delta=c;} /* Sets vertex pair dependancy */
217  qreal delta() { return m_delta;} /* Returns vertex pair dependancy */
218 
219  void clearPs() ;
220 
221  void appendToPs(const int &vertex ) ;
222  L_int Ps(void);
223 
224  //used in reciprocity report
225  void setOutEdgesReciprocated(int outEdgesSym=-1) { m_outEdgesSym = (outEdgesSym!=-1) ? outEdgesSym : m_outEdgesSym+1; }
226  int outEdgesReciprocated() { return m_outEdgesSym; }
227 
228  void setOutEdgesNonSym(int outEdgesNonSym=-1) { m_outEdgesNonSym = (outEdgesNonSym!=-1) ? outEdgesNonSym : m_outEdgesNonSym+1; }
229  int outEdgesNonSym() { return m_outEdgesNonSym; }
230 
231  void setInEdgesNonSym(int inEdgesNonSym=-1) { m_inEdgesNonSym = (inEdgesNonSym!=-1) ? inEdgesNonSym : m_inEdgesNonSym+1; }
232  int inEdgesNonSym() { return m_inEdgesNonSym; }
233 
234  void setDC (const qreal &c){ m_DC=c;} /* Sets vertex Degree Centrality*/
235  void setSDC (const qreal &c ) { m_SDC=c;} /* Sets standard vertex Degree Centrality*/
236  qreal DC() { return m_DC;} /* Returns vertex Degree Centrality*/
237  qreal SDC() { return m_SDC;} /* Returns standard vertex Degree Centrality*/
238 
239  void setDistanceSum (const qreal &c) { m_distanceSum = c; }
240  qreal distanceSum () { return m_distanceSum; }
241  void setCC (const qreal &c){ m_CC=c;} /* sets vertex Closeness Centrality*/
242  void setSCC (const qreal &c ) { m_SCC=c;} /* sets standard vertex Closeness Centrality*/
243  qreal CC() { return m_CC;} /* Returns vertex Closeness Centrality*/
244  qreal SCC() { return m_SCC; } /* Returns standard vertex Closeness Centrality*/
245 
246  void setIRCC (const qreal &c){ m_IRCC=c;} /* sets vertex IRCC */
247  void setSIRCC (const qreal &c ) { m_SIRCC=c;} /* sets standard vertex IRCC */
248  qreal IRCC() { return m_IRCC;} /* Returns vertex IRCC */
249  qreal SIRCC() { return m_SIRCC; } /* Returns standard vertex IRCC*/
250 
251  void setBC(const qreal &c){ m_BC=c;} /* sets s vertex Betweenness Centrality*/
252  void setSBC (const qreal &c ) { m_SBC=c;} /* sets standard vertex Betweenness Centrality*/
253  qreal BC() { return m_BC;} /* Returns vertex Betweenness Centrality*/
254  qreal SBC() { return m_SBC; } /* Returns standard vertex Betweenness Centrality*/
255 
256  void setSC (const qreal &c){ m_SC=c;} /* sets vertex Stress Centrality*/
257  void setSSC (const qreal &c ) { m_SSC=c;} /* sets standard vertex Stress Centrality*/
258  qreal SC() { return m_SC;} /* Returns vertex Stress Centrality*/
259  qreal SSC() { return m_SSC; } /* Returns standard vertex Stress Centrality*/
260 
261  void setEC(const qreal &dist) { m_EC=dist;} /* Sets max Geodesic Distance to all other vertices*/
262  void setSEC(const qreal &c) {m_SEC=c;}
263  qreal EC() { return m_EC;} /* Returns max Geodesic Distance to all other vertices*/
264  qreal SEC() { return m_SEC;}
265 
266  void setPC (const qreal &c){ m_PC=c;} /* sets vertex Power Centrality*/
267  void setSPC (const qreal &c ) { m_SPC=c;} /* sets standard vertex Power Centrality*/
268  qreal PC() { return m_PC;} /* Returns vertex Power Centrality*/
269  qreal SPC() { return m_SPC; } /* Returns standard vertex Power Centrality*/
270 
271  void setIC (const qreal &c){ m_IC=c;} /* sets vertex Information Centrality*/
272  void setSIC (const qreal &c ) { m_SIC=c;} /* sets standard vertex Information Centrality*/
273  qreal IC() { return m_IC;} /* Returns vertex Information Centrality*/
274  qreal SIC() { return m_SIC; } /* Returns standard vertex Information Centrality*/
275 
276  void setDP (const qreal &c){ m_DP=c;} /* Sets vertex Degree Prestige */
277  void setSDP (const qreal &c ) { m_SDP=c;} /* Sets standard vertex Degree Prestige */
278  qreal DP() { return m_DP;} /* Returns vertex Degree Prestige */
279  qreal SDP() { return m_SDP;} /* Returns standard vertex Degree Prestige */
280 
281  void setPRP (const qreal &c){ m_PRC=c;} /* sets vertex PageRank*/
282  void setSPRP (const qreal &c ) { m_SPRC=c;} /* sets standard vertex PageRank*/
283  qreal PRP() { return m_PRC;} /* Returns vertex PageRank */
284  qreal SPRP() { return m_SPRC; } /* Returns standard vertex PageRank*/
285 
286  void setPP (const qreal &c){ m_PP=c;} /* sets vertex Proximity Prestige */
287  void setSPP (const qreal &c ) { m_SPP=c;} /* sets standard vertex Proximity Prestige */
288  qreal PP() { return m_PP;} /* Returns vertex Proximity Prestige */
289  qreal SPP() { return m_SPP; } /* Returns standard vertex Proximity Prestige */
290 
291  qreal CLC() { return m_CLC; }
292  void setCLC(const qreal &clucof) { m_CLC=clucof; m_hasCLC=true; }
293  bool hasCLC() { return m_hasCLC; }
294 
295  void setEVC (const qreal &c){ m_EVC=c;} /* Sets vertex Degree Centrality*/
296  void setSEVC (const qreal &c ) { m_SEVC=c;} /* Sets standard vertex Degree Centrality*/
297  qreal EVC() { return m_EVC;} /* Returns vertex Degree Centrality*/
298  qreal SEVC() { return m_SEVC;} /* Returns standard vertex Degree Centrality*/
299 
300 
301  int cliques (const int &ofSize);
302 
303  void cliqueAdd (const QList<int> &clique);
304 
305  void clearCliques() { m_cliques.clear(); }
306 
307  //Hashes of all outbound and inbound edges of this vertex.
308  H_edges m_outEdges, m_inEdges;
309 
310  //Hash dictionary of this vertex pair-wise distances to all other vertices for each relationship
311  //The key is the relationship
312  //The value is a QPair < int target, qreal weight >
314 
316 
317 signals:
318  void setEdgeVisibility (int, int, int, bool);
319 
320 protected:
321 
322 private:
324  int m_name, m_outEdgesCounter, m_inEdgesCounter, m_outDegree, m_inDegree, m_localDegree;
325  int m_outEdgesNonSym, m_inEdgesNonSym, m_outEdgesSym;
326  int m_value, m_size, m_labelSize, m_numberSize, m_numberDistance, m_labelDistance;
328  bool m_reciprocalLinked, m_enabled, m_hasCLC, m_isolated;
329  double m_x, m_y;
330  qreal m_Eccentricity, m_CLC;
331  qreal m_delta, m_EC, m_SEC;
332  qreal m_DC, m_SDC, m_DP, m_SDP, m_CC, m_SCC, m_BC, m_SBC, m_IRCC, m_SIRCC, m_SC, m_SSC;
333  qreal m_PC, m_SPC, m_SIC, m_IC, m_SPRC, m_PRC;
334  qreal m_PP, m_SPP, m_EVC, m_SEVC;
336 
337  QString m_color, m_numberColor, m_label, m_labelColor, m_shape, m_iconPath;
338  QPointF m_disp;
339 
340  QHash<int,qreal> m_reciprocalEdges;
342  QHash <int, L_int> m_cliques;
344  H_IntToStr m_outLinkColors, m_outEdgeLabels;
345 
346  //FIXME vertex coords
347 
348 
349 
350 };
351 
352 #endif
void setSize(const int &size)
Definition: graphvertex.h:154
int m_outEdgesSym
Definition: graphvertex.h:325
qreal DC()
Definition: graphvertex.h:236
QString labelColor() const
Definition: graphvertex.h:178
void setEccentricity(const qreal &c)
Definition: graphvertex.h:135
void setY(const qreal &y)
Definition: graphvertex.h:189
void setEVC(const qreal &c)
Definition: graphvertex.h:295
void setShape(const QString &shape, const QString &iconPath=QString::null)
Definition: graphvertex.h:157
qreal m_distanceSum
Definition: graphvertex.h:335
void setColor(const QString &color)
Definition: graphvertex.h:161
QString numberColor() const
Definition: graphvertex.h:166
QString shape() const
Definition: graphvertex.h:158
QPair< int, int > pair_i_i
Definition: graphvertex.h:58
qreal CLC()
Definition: graphvertex.h:291
qreal y() const
Definition: graphvertex.h:190
void setSSC(const qreal &c)
Definition: graphvertex.h:257
qreal SC()
Definition: graphvertex.h:258
H_IntToStr m_outLinkColors
Definition: graphvertex.h:344
int size() const
Definition: graphvertex.h:155
QHash< int, pair_i_f > H_distance
Definition: graphvertex.h:56
qreal SDP()
Definition: graphvertex.h:279
qreal m_SSC
Definition: graphvertex.h:332
void setSPP(const qreal &c)
Definition: graphvertex.h:287
void setNumberDistance(const int &distance)
Definition: graphvertex.h:171
void setOutEdgesReciprocated(int outEdgesSym=-1)
Definition: graphvertex.h:225
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex, Parser and Matrix objects. Graph class methods are the interface to various analysis algorithms GraphVertex class holds each vertex data (colors, strings, statistics, etc) Matrix class holds the adjacency matrix of the network. Parser class loads files of networks.
Definition: graph.h:132
void setPP(const qreal &c)
Definition: graphvertex.h:286
void setSPC(const qreal &c)
Definition: graphvertex.h:267
bool isEnabled() const
Definition: graphvertex.h:91
void setName(const int &name)
Definition: graphvertex.h:88
int labelDistance() const
Definition: graphvertex.h:184
qreal SDC()
Definition: graphvertex.h:237
void setEC(const qreal &dist)
Definition: graphvertex.h:261
qreal SPP()
Definition: graphvertex.h:289
QString m_shape
Definition: graphvertex.h:337
void clearCliques()
Definition: graphvertex.h:305
int outEdgesReciprocated()
Definition: graphvertex.h:226
void setLabel(const QString &label)
Definition: graphvertex.h:174
qreal delta()
Definition: graphvertex.h:217
bool isIsolated()
Definition: graphvertex.h:146
void setDC(const qreal &c)
Definition: graphvertex.h:234
qreal SSC()
Definition: graphvertex.h:259
void setSEVC(const qreal &c)
Definition: graphvertex.h:296
qreal SIRCC()
Definition: graphvertex.h:249
qreal m_SPRC
Definition: graphvertex.h:333
H_distance m_distance
Definition: graphvertex.h:313
H_edges m_outEdges
Definition: graphvertex.h:308
void setSEC(const qreal &c)
Definition: graphvertex.h:262
void setIRCC(const qreal &c)
Definition: graphvertex.h:246
QHash< int, QString > H_IntToStr
Definition: graphvertex.h:47
qreal SPC()
Definition: graphvertex.h:269
QString color() const
Definition: graphvertex.h:162
QString shapeIconPath()
Definition: graphvertex.h:159
qreal BC()
Definition: graphvertex.h:253
L_int myPs
Definition: graphvertex.h:341
qreal EVC()
Definition: graphvertex.h:297
qreal x() const
Definition: graphvertex.h:187
int m_curRelation
Definition: graphvertex.h:327
void setBC(const qreal &c)
Definition: graphvertex.h:251
double m_y
Definition: graphvertex.h:329
qreal distanceSum()
Definition: graphvertex.h:240
void setIsolated(bool isolated)
Definition: graphvertex.h:147
QString outLinkColor(const int &v2)
Definition: graphvertex.h:204
void setSIRCC(const qreal &c)
Definition: graphvertex.h:247
void setOutLinkColor(const int &v2, const QString &color)
Definition: graphvertex.h:202
int numberSize() const
Definition: graphvertex.h:169
qreal SIC()
Definition: graphvertex.h:274
bool hasCLC()
Definition: graphvertex.h:293
void set_dispY(qreal y)
Definition: graphvertex.h:199
QHash< int, L_int > m_cliques
Definition: graphvertex.h:342
QPair< int, pair_f_b > pair_i_fb
Definition: graphvertex.h:52
qreal PC()
Definition: graphvertex.h:268
void setX(const qreal &x)
Definition: graphvertex.h:186
void setNumberColor(const QString &color)
Definition: graphvertex.h:165
QString label() const
Definition: graphvertex.h:175
void setPos(QPointF &p)
Definition: graphvertex.h:193
void setSDP(const qreal &c)
Definition: graphvertex.h:277
qreal EC()
Definition: graphvertex.h:263
int outEdgesNonSym()
Definition: graphvertex.h:229
int numberDistance() const
Definition: graphvertex.h:172
qreal PRP()
Definition: graphvertex.h:283
QPointF & disp()
Definition: graphvertex.h:196
H_shortestPaths m_shortestPaths
Definition: graphvertex.h:315
int m_outEdgesCounter
Definition: graphvertex.h:324
void setLabelSize(const int &size)
Definition: graphvertex.h:180
void set_dispX(qreal x)
Definition: graphvertex.h:198
int inEdgesNonSym()
Definition: graphvertex.h:232
void setSPRP(const qreal &c)
Definition: graphvertex.h:282
L_int m_neighborhoodList
Definition: graphvertex.h:343
void setCC(const qreal &c)
Definition: graphvertex.h:241
void setOutEdgeLabel(const int &v2, const QString &label)
Definition: graphvertex.h:209
QHash< int, pair_i_fb > H_edges
Definition: graph.h:87
QList< int > L_int
Definition: graph.h:89
QPointF pos() const
Definition: graphvertex.h:192
QPair< qreal, bool > pair_f_b
Definition: graphvertex.h:51
void setIC(const qreal &c)
Definition: graphvertex.h:271
void setSIC(const qreal &c)
Definition: graphvertex.h:272
qreal SEVC()
Definition: graphvertex.h:298
qreal m_Eccentricity
Definition: graphvertex.h:330
qreal DP()
Definition: graphvertex.h:278
qreal IC()
Definition: graphvertex.h:273
void setDP(const qreal &c)
Definition: graphvertex.h:276
qreal SBC()
Definition: graphvertex.h:254
void setPRP(const qreal &c)
Definition: graphvertex.h:281
Graph * m_graph
Definition: graphvertex.h:323
void setNumberSize(const int &size)
Definition: graphvertex.h:168
qreal IRCC()
Definition: graphvertex.h:248
QPointF m_disp
Definition: graphvertex.h:338
void setPC(const qreal &c)
Definition: graphvertex.h:266
void setDelta(const qreal &c)
Definition: graphvertex.h:216
bool isInLinked()
Definition: graphvertex.h:143
void setOutEdgesNonSym(int outEdgesNonSym=-1)
Definition: graphvertex.h:228
qreal SCC()
Definition: graphvertex.h:244
qreal m_SPP
Definition: graphvertex.h:334
void setLabelDistance(const int &distance)
Definition: graphvertex.h:183
qreal CC()
Definition: graphvertex.h:243
QString outEdgeLabel(const int &v2) const
Definition: graphvertex.h:211
bool m_reciprocalLinked
Definition: graphvertex.h:328
int name() const
Definition: graphvertex.h:86
void setSBC(const qreal &c)
Definition: graphvertex.h:252
void setSC(const qreal &c)
Definition: graphvertex.h:256
QPair< int, qreal > pair_i_f
Definition: graphvertex.h:55
qreal SEC()
Definition: graphvertex.h:264
int m_value
Definition: graphvertex.h:326
QHash< QString, int > H_StrToInt
Definition: graphvertex.h:48
void setEnabled(const bool &flag)
Definition: graphvertex.h:90
void setCLC(const qreal &clucof)
Definition: graphvertex.h:292
bool isOutLinked()
Definition: graphvertex.h:139
qreal SPRP()
Definition: graphvertex.h:284
qreal PP()
Definition: graphvertex.h:288
int labelSize() const
Definition: graphvertex.h:181
QList< int > L_int
Definition: graphvertex.h:42
void setLabelColor(const QString &labelColor)
Definition: graphvertex.h:177
void setSCC(const qreal &c)
Definition: graphvertex.h:242
qreal eccentricity()
Definition: graphvertex.h:136
void setInEdgesNonSym(int inEdgesNonSym=-1)
Definition: graphvertex.h:231
Definition: graphvertex.h:62
void setSDC(const qreal &c)
Definition: graphvertex.h:235
qreal m_SEC
Definition: graphvertex.h:331
void setDistanceSum(const qreal &c)
Definition: graphvertex.h:239
QHash< int, qreal > m_reciprocalEdges
Definition: graphvertex.h:340
QHash< int, pair_i_fb > H_edges
Definition: graphvertex.h:53
QHash< int, pair_i_i > H_shortestPaths
Definition: graphvertex.h:59