Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
global.h
Go to the documentation of this file.
1
9
10#ifndef GLOBAL_H
11#define GLOBAL_H
12
13#include <QPair>
14#include <QMetaType>
15#include <QString>
16
17// ============================================================================
18// Namespace macros
19// ============================================================================
20
21#define SOCNETV_NAMESPACE SocNetV
22
23#ifdef SOCNETV_NAMESPACE
24#define SOCNETV_BEGIN_NAMESPACE \
25 namespace SOCNETV_NAMESPACE \
26 {
27#define SOCNETV_END_NAMESPACE }
28#define SOCNETV_USE_NAMESPACE using namespace SOCNETV_NAMESPACE;
29#else
30#define SOCNETV_BEGIN_NAMESPACE
31#define SOCNETV_END_NAMESPACE
32#define SOCNETV_USE_NAMESPACE
33#endif
34
36
37// ============================================================================
38// Version
39// ============================================================================
40
41static const QString VERSION = "3.6";
42
43// ============================================================================
44// Math constants (define only if not already provided by <cmath>)
45// ============================================================================
46
47#ifndef M_PI
48static constexpr double M_PI = 3.14159265358979323846;
49#endif
50
51#ifndef M_PI_3
52static constexpr double M_PI_3 = 1.04719755119659774615;
53#endif
54
55#ifndef M_PI_X_2
56static constexpr double M_PI_X_2 = 6.28318530717958647692;
57#endif
58
59// ============================================================================
60// Enumerations
61// ============================================================================
62
82
101
112
118{
119 DC = 1,
120 CC = 2,
121 IRCC = 3,
122 BC = 4,
123 SC = 5,
124 EC = 6,
125 PC = 7,
126 IC = 8,
127 EVC = 9,
128 DP = 10,
129 PRP = 11,
130 PP = 12,
131 CLC = 13
132};
133
139{
140 None = -1,
142 Area = 1,
144};
145
156
157// ============================================================================
158// User-message severity constants
159// ============================================================================
160
161static const int USER_MSG_INFO = 0;
162static const int USER_MSG_CRITICAL = 1;
163static const int USER_MSG_CRITICAL_NO_NETWORK = 2;
164static const int USER_MSG_CRITICAL_NO_EDGES = 3;
165static const int USER_MSG_QUESTION = 4;
166static const int USER_MSG_QUESTION_CUSTOM = 5;
167
168// ============================================================================
169// Subgraph type constants
170// ============================================================================
171
172static const int SUBGRAPH_CLIQUE = 1;
173static const int SUBGRAPH_STAR = 2;
174static const int SUBGRAPH_CYCLE = 3;
175static const int SUBGRAPH_LINE = 4;
176
177// ============================================================================
178// Matrix type constants
179// ============================================================================
180
181static const int MATRIX_ADJACENCY = 1;
182static const int MATRIX_DISTANCES = 2;
183static const int MATRIX_DEGREE = 3;
184static const int MATRIX_LAPLACIAN = 4;
185static const int MATRIX_ADJACENCY_INVERSE = 5;
186static const int MATRIX_GEODESICS = 6;
187static const int MATRIX_REACHABILITY = 7;
188static const int MATRIX_ADJACENCY_TRANSPOSE = 8;
189static const int MATRIX_COCITATION = 9;
190static const int MATRIX_DISTANCES_EUCLIDEAN = 12;
191static const int MATRIX_DISTANCES_MANHATTAN = 13;
192static const int MATRIX_DISTANCES_JACCARD = 14;
193static const int MATRIX_DISTANCES_HAMMING = 15;
194static const int MATRIX_DISTANCES_CHEBYSHEV = 16;
195
196// ============================================================================
197// Structs and value types
198// ============================================================================
199
205{
206 int v1 = 0;
207 int v2 = 0;
208 int type = 0;
209};
210
218typedef QPair<int, int> SelectedEdge;
219
225{
226public:
227 int source = 0;
228 int target = 0;
229 double weight = 0.0;
230 int type = 0;
231 double rWeight = 0.0;
232
233 MyEdge() = default;
234
235 MyEdge(const int &from, const int &to,
236 const double &w = 0.0,
237 const int &t = 0,
238 const double &rw = 0.0)
239 : source(from), target(to), weight(w), type(t), rWeight(rw) {}
240};
241
247{
248public:
251
252 GraphDistance(int t, int dist)
253 : target(t), distance(dist) {}
254};
255
261{
262public:
263 bool operator()(const GraphDistance &t1, const GraphDistance &t2) const
264 {
265 if (t1.distance == t2.distance)
266 return t1.target > t2.target;
267 return t1.distance > t2.distance;
268 }
269};
270
276{
277public:
278 qreal value;
280
281 PairVF(qreal v, qreal f)
282 : value(v), frequency(f) {}
283};
284
290{
291public:
292 bool operator()(const PairVF &v1, const PairVF &v2) const
293 {
294 return v1.value > v2.value;
295 }
296};
297
299
300// ============================================================================
301// Qt metatype registrations
302// Must live outside the SocNetV namespace.
303// ============================================================================
304
305Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::MyEdge)
306Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::NetworkRequestType)
307Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::SelectedEdge)
308
309#endif // GLOBAL_H
Holds a (target, distance) pair for use in Dijkstra's priority queue.
Definition global.h:247
int distance
Definition global.h:250
int target
Definition global.h:249
GraphDistance(int t, int dist)
Definition global.h:252
Min-priority comparator for GraphDistance (used in std::priority_queue).
Definition global.h:261
bool operator()(const GraphDistance &t1, const GraphDistance &t2) const
Definition global.h:263
double weight
Definition global.h:229
MyEdge(const int &from, const int &to, const double &w=0.0, const int &t=0, const double &rw=0.0)
Definition global.h:235
double rWeight
Reverse / reciprocal weight.
Definition global.h:231
int source
Definition global.h:227
int target
Definition global.h:228
int type
Definition global.h:230
MyEdge()=default
Min-priority comparator for PairVF (used in std::priority_queue).
Definition global.h:290
bool operator()(const PairVF &v1, const PairVF &v2) const
Definition global.h:292
(value, frequency) pair, used in distribution charts.
Definition global.h:276
qreal frequency
Definition global.h:279
PairVF(qreal v, qreal f)
Definition global.h:281
qreal value
Definition global.h:278
static const int MATRIX_DISTANCES_JACCARD
Definition global.h:192
static SOCNETV_BEGIN_NAMESPACE const QString VERSION
Definition global.h:41
NetworkRequestType
Identifies the purpose of an outgoing network request.
Definition global.h:151
@ Crawler
Definition global.h:153
@ CheckUpdate
Definition global.h:154
@ Generic
Definition global.h:152
static const int SUBGRAPH_STAR
Definition global.h:173
IndexType
Centrality / prestige index identifiers.
Definition global.h:118
@ BC
Betweenness Centrality.
Definition global.h:122
@ CC
Closeness Centrality.
Definition global.h:120
@ IRCC
Influence Range Closeness Centrality.
Definition global.h:121
@ PP
Proximity Prestige.
Definition global.h:130
@ IC
Information Centrality.
Definition global.h:126
@ CLC
Clustering Coefficient (Watts-Strogatz).
Definition global.h:131
@ DC
Degree Centrality.
Definition global.h:119
@ SC
Stress Centrality.
Definition global.h:123
@ PC
Power Centrality.
Definition global.h:125
@ EC
Eccentricity Centrality.
Definition global.h:124
@ DP
Degree Prestige.
Definition global.h:128
@ PRP
PageRank Prestige.
Definition global.h:129
@ EVC
Eigenvector Centrality.
Definition global.h:127
FileType
Supported network file formats.
Definition global.h:88
@ GML
.gml
Definition global.h:95
@ ADJACENCY
.csv / .adj / .sm
Definition global.h:92
@ GRAPHML
.graphml / .xml
Definition global.h:90
@ EDGELIST_SIMPLE
.csv / .txt / .list / .lst
Definition global.h:97
@ PAJEK
.paj / .net
Definition global.h:91
@ NOT_SAVED
New or unsaved/modified network.
Definition global.h:89
@ EDGELIST_WEIGHTED
.csv / .txt / .list / .lst / .wlst
Definition global.h:96
@ UCINET
.dl / .dat
Definition global.h:94
@ GRAPHVIZ
.dot
Definition global.h:93
@ TWOMODE
.2sm / .aff
Definition global.h:98
@ UNRECOGNIZED
Unrecognised format.
Definition global.h:99
static const int SUBGRAPH_CLIQUE
Definition global.h:172
static constexpr double M_PI_X_2
Definition global.h:56
NodeShape
Possible shapes for nodes in the network visualization.
Definition global.h:68
@ Dice
Definition global.h:79
@ Custom
Definition global.h:80
@ Box
Definition global.h:69
@ Bugs
Definition global.h:77
@ Person
Definition global.h:75
@ Diamond
Definition global.h:71
@ PersonB
Definition global.h:76
@ Triangle
Definition global.h:73
@ Ellipse
Definition global.h:72
@ Star
Definition global.h:74
@ Circle
Definition global.h:70
@ Heart
Definition global.h:78
static const int USER_MSG_CRITICAL_NO_NETWORK
Definition global.h:163
static const int MATRIX_ADJACENCY
Definition global.h:181
EdgeType
Possible edge types in the network.
Definition global.h:107
@ Reciprocated
Definition global.h:109
@ Undirected
Definition global.h:110
@ Directed
Definition global.h:108
static const int MATRIX_LAPLACIAN
Definition global.h:184
static const int SUBGRAPH_LINE
Definition global.h:175
static const int USER_MSG_QUESTION
Definition global.h:165
ChartType
Chart style for prominence distribution visualizations.
Definition global.h:139
@ Area
Definition global.h:142
@ Spline
Definition global.h:141
@ Bars
Definition global.h:143
@ None
Definition global.h:140
static const int USER_MSG_INFO
Definition global.h:161
static const int MATRIX_DEGREE
Definition global.h:183
static const int MATRIX_GEODESICS
Definition global.h:186
static constexpr double M_PI
Definition global.h:48
static const int MATRIX_DISTANCES_EUCLIDEAN
Definition global.h:190
static constexpr double M_PI_3
Definition global.h:52
#define SOCNETV_END_NAMESPACE
Definition global.h:27
static const int MATRIX_DISTANCES_CHEBYSHEV
Definition global.h:194
static const int MATRIX_REACHABILITY
Definition global.h:187
QPair< int, int > SelectedEdge
Identifies a selected edge by its two endpoint vertex numbers.
Definition global.h:218
static const int MATRIX_DISTANCES_MANHATTAN
Definition global.h:191
static const int USER_MSG_CRITICAL_NO_EDGES
Definition global.h:164
static const int USER_MSG_QUESTION_CUSTOM
Definition global.h:166
static const int MATRIX_DISTANCES
Definition global.h:182
#define SOCNETV_BEGIN_NAMESPACE
Definition global.h:24
static const int MATRIX_ADJACENCY_TRANSPOSE
Definition global.h:188
static const int SUBGRAPH_CYCLE
Definition global.h:174
static const int MATRIX_ADJACENCY_INVERSE
Definition global.h:185
static const int USER_MSG_CRITICAL
Definition global.h:162
static const int MATRIX_COCITATION
Definition global.h:189
static const int MATRIX_DISTANCES_HAMMING
Definition global.h:193
Carries the identity and type of a clicked edge.
Definition global.h:205
int v2
Second vertex.
Definition global.h:207
int v1
First vertex.
Definition global.h:206
int type
Edge type.
Definition global.h:208