global.h
Go to the documentation of this file.
1 #ifndef GLOBAL_H
2 #define GLOBAL_H
3 
4 #include <QMetaType>
5 
6 #define SOCNETV_NAMESPACE SocNetV
7 
8 #ifdef SOCNETV_NAMESPACE
9 # define SOCNETV_BEGIN_NAMESPACE namespace SOCNETV_NAMESPACE {
10 # define SOCNETV_END_NAMESPACE }
11 # define SOCNETV_USE_NAMESPACE using namespace SOCNETV_NAMESPACE;
12 #else
13 # define SOCNETV_BEGIN_NAMESPACE
14 # define SOCNETV_END_NAMESPACE
15 # define SOCNETV_USE_NAMESPACE
16 #endif
17 
18 
20 
21 #ifndef M_PI_3
22 #define M_PI_3 (1.04719755119659774615)
23 #endif
24 
25 
26 #ifndef M_PI
27 #define M_PI (3.14159265358979323846)
28 #endif
29 
30 #ifndef M_PI_X_2
31 #define M_PI_X_2 (6.28318530717958647692)
32 #endif
33 
34 
35 
36 enum NodeShape{
37  Box,
49 };
50 
51 
52 enum FileType {
53  NOT_SAVED = 0, // New network not saved yet or modified network
54  GRAPHML = 1, // .GRAPHML .XML
55  PAJEK = 2, // .PAJ .NET
56  ADJACENCY = 3, // .ADJ .CSV .SM
57  GRAPHVIZ = 4, // .DOT
58  UCINET = 5, // .DL .DAT
59  GML = 6, // .GML
60  EDGELIST_WEIGHTED = 7, // .CSV, .TXT, .LIST, LST, WLST
61  EDGELIST_SIMPLE = 8, // .CSV, .TXT, .LIST, LST
62  TWOMODE = 9, // .2SM .AFF
63  UNRECOGNIZED =-1 // UNRECOGNIZED FILE FORMAT
64 };
65 
66 
67 enum EdgeType {
68  Directed = 0,
71 };
72 
73 
74 enum IndexType {
75  DC = 1,
76  CC = 2,
77  IRCC = 3,
78  BC = 4,
79  SC = 5,
80  EC = 6,
81  PC = 7,
82  IC = 8,
83  EVC = 9,
84  DP = 10,
85  PRP = 11,
86  PP = 12
87 };
88 
89 
90 enum ChartType {
91  None = -1,
92  Spline = 0,
93  Area = 1,
94  Bars = 2
95 };
96 
98  Generic = 0,
99  Crawler = 1,
101 
102 };
103 
104 static const QString VERSION="3.0.2";
105 
106 static const int USER_MSG_INFO=0;
107 static const int USER_MSG_CRITICAL=1;
108 static const int USER_MSG_CRITICAL_NO_NETWORK=2;
109 static const int USER_MSG_CRITICAL_NO_EDGES=3;
110 static const int USER_MSG_QUESTION=4;
111 static const int USER_MSG_QUESTION_CUSTOM=5;
112 
113 
114 static const int SUBGRAPH_CLIQUE = 1;
115 static const int SUBGRAPH_STAR = 2;
116 static const int SUBGRAPH_CYCLE = 3;
117 static const int SUBGRAPH_LINE = 4;
118 
119 static const int MATRIX_ADJACENCY = 1;
120 static const int MATRIX_DISTANCES = 2;
121 static const int MATRIX_DEGREE = 3;
122 static const int MATRIX_LAPLACIAN = 4;
123 static const int MATRIX_ADJACENCY_INVERSE = 5;
124 static const int MATRIX_GEODESICS = 6;
125 static const int MATRIX_REACHABILITY = 7;
126 static const int MATRIX_ADJACENCY_TRANSPOSE = 8;
127 static const int MATRIX_COCITATION = 9;
128 static const int MATRIX_DISTANCES_EUCLIDEAN = 12;
129 static const int MATRIX_DISTANCES_MANHATTAN= 13;
130 static const int MATRIX_DISTANCES_JACCARD= 14;
131 static const int MATRIX_DISTANCES_HAMMING= 15;
132 static const int MATRIX_DISTANCES_CHEBYSHEV= 16;
133 
134 
135 
136 
137 
138 
139 struct ClickedEdge {
140  int v1;
141  int v2;
142  int type;
143 };
144 
145 
146 
147 typedef QPair<int, int> SelectedEdge;
148 
149 
150 class MyEdge {
151 public:
152  int source;
153  int target;
154  double weight;
155  int type;
156  MyEdge() { source=0; target=0;weight=0;type=0;}
157  MyEdge (const int &from, const int &to, const double &w =0, const int &type=0)
158  : source(from), target(to), weight(w), type(type) { }
159  // Copy constructor
160  MyEdge (const MyEdge &edge) {
161  source = edge.source;
162  target = edge.target;
163  weight = edge.weight;
164  type = edge.type;
165  }
167 };
168 
169 
174 {
175 public:
176  int target;
177  int distance;
178 
179  GraphDistance(int t, int dist)
180  : target(t), distance(dist)
181  {
182 
183  }
184 };
185 
186 
187 
194 public:
196  {
197  if (t1.distance == t2.distance)
198  return t1.target > t2.target;
199  return t1.distance > t2.distance; //minimum priority
200  }
201 };
202 
203 
204 
205 
206 class PairVF
207 {
208 public:
209  qreal value;
210  qreal frequency;
211 
212  PairVF(qreal v, qreal f)
213  : value(v), frequency(f) { }
214 };
215 
216 
217 // implement a min-priority queue
219 public:
220  bool operator()(PairVF& v1, PairVF& v2)
221  {
222  return v1.value > v2.value; //minimum priority
223  // Returns true if t1 is closer than t2
224  // else
225  }
226 };
227 
228 
229 
231 
232 
233 Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::MyEdge)
234 Q_DECLARE_METATYPE(SOCNETV_NAMESPACE::NetworkRequestType)
235 
236 
237 #endif // GLOBAL_H
@ ADJACENCY
Definition: global.h:56
double weight
Definition: global.h:154
static const int MATRIX_ADJACENCY
Definition: global.h:119
static const int MATRIX_DISTANCES
Definition: global.h:120
MyEdge(const int &from, const int &to, const double &w=0, const int &type=0)
Definition: global.h:157
@ Dice
Definition: global.h:47
@ Bugs
Definition: global.h:45
@ None
Definition: global.h:91
@ Crawler
Definition: global.h:99
static const int MATRIX_ADJACENCY_INVERSE
Definition: global.h:123
MyEdge(const MyEdge &edge)
Definition: global.h:160
EdgeType
Definition: global.h:67
Metric to implement a min-priority queue. The operator returns true if if t1 is closer than t2 Used i...
Definition: global.h:193
int v1
Definition: global.h:140
@ Star
Definition: global.h:42
Definition: global.h:139
static const int MATRIX_COCITATION
Definition: global.h:127
@ UNRECOGNIZED
Definition: global.h:63
QPair< int, int > SelectedEdge
Definition: global.h:147
static const int USER_MSG_CRITICAL
Definition: global.h:107
int source
Definition: global.h:152
@ SC
Definition: global.h:79
static const int USER_MSG_INFO
Definition: global.h:106
Holds the distance to target. Used in Graph::dijkstra() priority_queue.
Definition: global.h:173
@ GRAPHML
Definition: global.h:54
qreal value
Definition: global.h:209
static const int USER_MSG_CRITICAL_NO_NETWORK
Definition: global.h:108
@ PAJEK
Definition: global.h:55
#define SOCNETV_BEGIN_NAMESPACE
Definition: global.h:9
@ BC
Definition: global.h:78
int type
Definition: global.h:142
static const int MATRIX_REACHABILITY
Definition: global.h:125
int distance
Definition: global.h:177
~MyEdge()
Definition: global.h:166
@ PersonB
Definition: global.h:44
@ Generic
Definition: global.h:98
@ Spline
Definition: global.h:92
@ Heart
Definition: global.h:46
@ Circle
Definition: global.h:38
@ GML
Definition: global.h:59
static const int MATRIX_LAPLACIAN
Definition: global.h:122
@ EC
Definition: global.h:80
@ GRAPHVIZ
Definition: global.h:57
@ Bars
Definition: global.h:94
int type
Definition: global.h:155
@ Diamond
Definition: global.h:39
@ PC
Definition: global.h:81
int v2
Definition: global.h:141
NetworkRequestType
Definition: global.h:97
FileType
Definition: global.h:52
#define SOCNETV_END_NAMESPACE
Definition: global.h:10
static const int MATRIX_GEODESICS
Definition: global.h:124
static const int MATRIX_ADJACENCY_TRANSPOSE
Definition: global.h:126
int target
Definition: global.h:176
Definition: global.h:218
bool operator()(GraphDistance &t1, GraphDistance &t2)
Definition: global.h:195
@ EDGELIST_WEIGHTED
Definition: global.h:60
static const QString VERSION
Definition: global.h:104
@ CC
Definition: global.h:76
@ Area
Definition: global.h:93
static const int MATRIX_DISTANCES_HAMMING
Definition: global.h:131
static const int SUBGRAPH_CLIQUE
Definition: global.h:114
static const int MATRIX_DEGREE
Definition: global.h:121
@ Box
Definition: global.h:37
int target
Definition: global.h:153
@ NOT_SAVED
Definition: global.h:53
NodeShape
Definition: global.h:36
@ Reciprocated
Definition: global.h:69
Definition: global.h:206
Definition: global.h:150
@ IC
Definition: global.h:82
static const int SUBGRAPH_LINE
Definition: global.h:117
static const int MATRIX_DISTANCES_MANHATTAN
Definition: global.h:129
static const int MATRIX_DISTANCES_EUCLIDEAN
Definition: global.h:128
MyEdge()
Definition: global.h:156
@ Person
Definition: global.h:43
@ CheckUpdate
Definition: global.h:100
@ EVC
Definition: global.h:83
@ IRCC
Definition: global.h:77
ChartType
Definition: global.h:90
@ Directed
Definition: global.h:68
@ Triangle
Definition: global.h:41
static const int USER_MSG_QUESTION
Definition: global.h:110
qreal frequency
Definition: global.h:210
@ Undirected
Definition: global.h:70
bool operator()(PairVF &v1, PairVF &v2)
Definition: global.h:220
@ Custom
Definition: global.h:48
@ PP
Definition: global.h:86
GraphDistance(int t, int dist)
Definition: global.h:179
static const int USER_MSG_CRITICAL_NO_EDGES
Definition: global.h:109
@ DC
Definition: global.h:75
static const int MATRIX_DISTANCES_CHEBYSHEV
Definition: global.h:132
@ TWOMODE
Definition: global.h:62
@ EDGELIST_SIMPLE
Definition: global.h:61
@ PRP
Definition: global.h:85
IndexType
Definition: global.h:74
static const int SUBGRAPH_CYCLE
Definition: global.h:116
static const int USER_MSG_QUESTION_CUSTOM
Definition: global.h:111
@ Ellipse
Definition: global.h:40
@ UCINET
Definition: global.h:58
static const int MATRIX_DISTANCES_JACCARD
Definition: global.h:130
@ DP
Definition: global.h:84
static const int SUBGRAPH_STAR
Definition: global.h:115
PairVF(qreal v, qreal f)
Definition: global.h:212