Code Documentation 3.4
Social Network Visualizer
Loading...
Searching...
No Matches
global.h
Go to the documentation of this file.
1
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.4";
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
132
138{
139 None = -1,
141 Area = 1,
142 Bars = 2
144
155
156// ============================================================================
157// User-message severity constants
158// ============================================================================
159
160static const int USER_MSG_INFO = 0;
161static const int USER_MSG_CRITICAL = 1;
162static const int USER_MSG_CRITICAL_NO_NETWORK = 2;
163static const int USER_MSG_CRITICAL_NO_EDGES = 3;
164static const int USER_MSG_QUESTION = 4;
165static const int USER_MSG_QUESTION_CUSTOM = 5;
166
167// ============================================================================
168// Subgraph type constants
169// ============================================================================
170
171static const int SUBGRAPH_CLIQUE = 1;
172static const int SUBGRAPH_STAR = 2;
173static const int SUBGRAPH_CYCLE = 3;
174static const int SUBGRAPH_LINE = 4;
175
176// ============================================================================
177// Matrix type constants
178// ============================================================================
179
180static const int MATRIX_ADJACENCY = 1;
181static const int MATRIX_DISTANCES = 2;
182static const int MATRIX_DEGREE = 3;
183static const int MATRIX_LAPLACIAN = 4;
184static const int MATRIX_ADJACENCY_INVERSE = 5;
185static const int MATRIX_GEODESICS = 6;
186static const int MATRIX_REACHABILITY = 7;
187static const int MATRIX_ADJACENCY_TRANSPOSE = 8;
188static const int MATRIX_COCITATION = 9;
189static const int MATRIX_DISTANCES_EUCLIDEAN = 12;
190static const int MATRIX_DISTANCES_MANHATTAN = 13;
191static const int MATRIX_DISTANCES_JACCARD = 14;
192static const int MATRIX_DISTANCES_HAMMING = 15;
193static const int MATRIX_DISTANCES_CHEBYSHEV = 16;
194
195// ============================================================================
196// Structs and value types
197// ============================================================================
198
204{
205 int v1 = 0;
206 int v2 = 0;
207 int type = 0;
208};
209
217typedef QPair<int, int> SelectedEdge;
218
224{
225public:
226 int source = 0;
227 int target = 0;
228 double weight = 0.0;
229 int type = 0;
230 double rWeight = 0.0;
231
232 MyEdge() = default;
233
234 MyEdge(const int &from, const int &to,
235 const double &w = 0.0,
236 const int &t = 0,
237 const double &rw = 0.0)
238 : source(from), target(to), weight(w), type(t), rWeight(rw) {}
239};
240
246{
247public:
250
251 GraphDistance(int t, int dist)
252 : target(t), distance(dist) {}
253};
254
260{
261public:
262 bool operator()(const GraphDistance &t1, const GraphDistance &t2) const
263 {
264 if (t1.distance == t2.distance)
265 return t1.target > t2.target;
266 return t1.distance > t2.distance;
267 }
268};
269
275{
276public:
277 qreal value;
279
280 PairVF(qreal v, qreal f)
281 : value(v), frequency(f) {}
282};
283
289{
290public:
291 bool operator()(const PairVF &v1, const PairVF &v2) const
292 {
293 return v1.value > v2.value;
294 }
295};
296
298
299// ============================================================================
300// Qt metatype registrations
301// Must live outside the SocNetV namespace.
302// ============================================================================
303
304Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::MyEdge)
305Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::NetworkRequestType)
306Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::SelectedEdge)
307
308#endif // GLOBAL_H
Holds a (target, distance) pair for use in Dijkstra's priority queue.
Definition global.h:246
int distance
Definition global.h:249
int target
Definition global.h:248
GraphDistance(int t, int dist)
Definition global.h:251
Min-priority comparator for GraphDistance (used in std::priority_queue).
Definition global.h:260
bool operator()(const GraphDistance &t1, const GraphDistance &t2) const
Definition global.h:262
Lightweight value type representing a directed or undirected edge.
Definition global.h:224
double weight
Definition global.h:228
MyEdge(const int &from, const int &to, const double &w=0.0, const int &t=0, const double &rw=0.0)
Definition global.h:234
double rWeight
Reverse / reciprocal weight.
Definition global.h:230
int source
Definition global.h:226
int target
Definition global.h:227
int type
Definition global.h:229
MyEdge()=default
Min-priority comparator for PairVF (used in std::priority_queue).
Definition global.h:289
bool operator()(const PairVF &v1, const PairVF &v2) const
Definition global.h:291
(value, frequency) pair, used in distribution charts.
Definition global.h:275
qreal frequency
Definition global.h:278
PairVF(qreal v, qreal f)
Definition global.h:280
qreal value
Definition global.h:277
static const int MATRIX_DISTANCES_JACCARD
Definition global.h:191
static SOCNETV_BEGIN_NAMESPACE const QString VERSION
Definition global.h:41
NetworkRequestType
Identifies the purpose of an outgoing network request.
Definition global.h:150
@ Crawler
Definition global.h:152
@ CheckUpdate
Definition global.h:153
@ Generic
Definition global.h:151
static const int SUBGRAPH_STAR
Definition global.h:172
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
@ 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:171
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:162
static const int MATRIX_ADJACENCY
Definition global.h:180
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:183
static const int SUBGRAPH_LINE
Definition global.h:174
static const int USER_MSG_QUESTION
Definition global.h:164
ChartType
Chart style for prominence distribution visualizations.
Definition global.h:138
@ Area
Definition global.h:141
@ Spline
Definition global.h:140
@ Bars
Definition global.h:142
@ None
Definition global.h:139
static const int USER_MSG_INFO
Definition global.h:160
static const int MATRIX_DEGREE
Definition global.h:182
static const int MATRIX_GEODESICS
Definition global.h:185
static constexpr double M_PI
Definition global.h:48
static const int MATRIX_DISTANCES_EUCLIDEAN
Definition global.h:189
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:193
static const int MATRIX_REACHABILITY
Definition global.h:186
static const int MATRIX_DISTANCES_MANHATTAN
Definition global.h:190
static const int USER_MSG_CRITICAL_NO_EDGES
Definition global.h:163
QPair< int, int > SelectedEdge
Identifies a selected edge by its two endpoint vertex numbers.
Definition global.h:217
static const int USER_MSG_QUESTION_CUSTOM
Definition global.h:165
static const int MATRIX_DISTANCES
Definition global.h:181
#define SOCNETV_BEGIN_NAMESPACE
Definition global.h:24
static const int MATRIX_ADJACENCY_TRANSPOSE
Definition global.h:187
static const int SUBGRAPH_CYCLE
Definition global.h:173
static const int MATRIX_ADJACENCY_INVERSE
Definition global.h:184
static const int USER_MSG_CRITICAL
Definition global.h:161
static const int MATRIX_COCITATION
Definition global.h:188
static const int MATRIX_DISTANCES_HAMMING
Definition global.h:192
Carries the identity and type of a clicked edge.
Definition global.h:204
int v2
Second vertex.
Definition global.h:206
int v1
First vertex.
Definition global.h:205
int type
Edge type.
Definition global.h:207