plebeiangraphlibrary 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/Textures/Square.png +0 -0
- package/Build/pgl.d.ts +642 -0
- package/Build/pgl.d.ts.map +1 -0
- package/Build/pgl.js +2960 -0
- package/Build/pgl.js.map +1 -0
- package/Build/pgl_module.js +32602 -0
- package/Build/pgl_module.js.map +1 -0
- package/CODE_OF_CONDUCT.md +40 -0
- package/CONTRIBUTING.md +52 -0
- package/Examples/1_ZKC_simple.html +76 -0
- package/Examples/2_ZKC_edge_bundling.html +82 -0
- package/Examples/3_LargePointCloud.html +82 -0
- package/Examples/4_ToggleActivation.html +106 -0
- package/Examples/MasterStyle.css +53 -0
- package/Examples/Textures/Square.png +0 -0
- package/Examples/index.html +34 -0
- package/LICENSE +21 -0
- package/README.md +139 -0
- package/package.json +67 -0
|
Binary file
|
package/Build/pgl.d.ts
ADDED
|
@@ -0,0 +1,642 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
|
|
3
|
+
interface Point {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
z: number;
|
|
7
|
+
}
|
|
8
|
+
declare class Point {
|
|
9
|
+
/**
|
|
10
|
+
* Constructs a point based on the x y z values
|
|
11
|
+
* @param x x value
|
|
12
|
+
* @param y y value
|
|
13
|
+
* @param z z value
|
|
14
|
+
*/
|
|
15
|
+
constructor(x: number, y: number, z: number);
|
|
16
|
+
/**
|
|
17
|
+
* Displaces a point - note this method moves the existing point
|
|
18
|
+
* @param Point This is the displacement vactor, used as a point but the same idea holds
|
|
19
|
+
*/
|
|
20
|
+
translate(Point: Point): void;
|
|
21
|
+
}
|
|
22
|
+
interface Line {
|
|
23
|
+
points: Point[];
|
|
24
|
+
}
|
|
25
|
+
declare class Line {
|
|
26
|
+
/**
|
|
27
|
+
* Constructs a line from an array of points
|
|
28
|
+
* @param points an array of points
|
|
29
|
+
*/
|
|
30
|
+
constructor(points: Point[]);
|
|
31
|
+
}
|
|
32
|
+
interface _Node {
|
|
33
|
+
data: any;
|
|
34
|
+
neighbours: number[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* This is the node class - they have an ID which is
|
|
38
|
+
* essentially an index and some data associated with it
|
|
39
|
+
* The data also contains the position of the
|
|
40
|
+
*/
|
|
41
|
+
declare class _Node {
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* @param data Data associated with the node, be sure to be careful to pass in any "pos" data as they correspond to position of the nodes in the visuals of the graph
|
|
45
|
+
*/
|
|
46
|
+
constructor(data: any);
|
|
47
|
+
}
|
|
48
|
+
interface Edge {
|
|
49
|
+
start: number;
|
|
50
|
+
end: number;
|
|
51
|
+
data: any;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The edge class, edges have a start and end but they can also have data associated with that edge
|
|
55
|
+
*/
|
|
56
|
+
declare class Edge {
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
* Construct an edge
|
|
60
|
+
*
|
|
61
|
+
* @param start Start index of the edge based on the array of nodes
|
|
62
|
+
* @param end End index of the edge based on the array of nodes
|
|
63
|
+
* @param data Data associated, note that ldata is reserved for how to draw the lines associated with the edge
|
|
64
|
+
*/
|
|
65
|
+
constructor(start: number, end: number, data: any);
|
|
66
|
+
}
|
|
67
|
+
export interface Graph {
|
|
68
|
+
nodes: Map<number, _Node>;
|
|
69
|
+
edges: Map<number, Edge>;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The main graph object - this contrains nodes and edges that get modified with different
|
|
73
|
+
* Operations etc.
|
|
74
|
+
*/
|
|
75
|
+
export class Graph {
|
|
76
|
+
/**
|
|
77
|
+
*
|
|
78
|
+
* Construct a graph object (no initializing)
|
|
79
|
+
*
|
|
80
|
+
* @param nodes - Map of all the nodes associated with the graph
|
|
81
|
+
* @param edges - Map of all the edges assocaiated with the graph
|
|
82
|
+
*/
|
|
83
|
+
constructor(nodes: Map<number, _Node>, edges: Map<number, Edge>);
|
|
84
|
+
/**
|
|
85
|
+
* Prints out a snapshot of data associated with this graph like how many nodes and how many edges
|
|
86
|
+
*/
|
|
87
|
+
printData(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Initializes the graph and constructs a node adajaceny list list
|
|
90
|
+
*/
|
|
91
|
+
initialize(): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
*
|
|
94
|
+
* This is the official create method to make a graph based on a set of nodes and edges
|
|
95
|
+
* It also auto initializes the graph and sets all the adjaceny lists in the memory
|
|
96
|
+
*
|
|
97
|
+
* @param nodes - map of nodes
|
|
98
|
+
* @param edges - map of edges
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
static create(nodes: Map<number, _Node>, edges: Map<number, Edge>): Promise<Graph>;
|
|
102
|
+
/**
|
|
103
|
+
* Constructs the adjacency associated with the graph
|
|
104
|
+
*/
|
|
105
|
+
constructAdjacencyList(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Add a noce to the graph
|
|
108
|
+
* @param nodeID - the node ID
|
|
109
|
+
* @param data - data associated with the node
|
|
110
|
+
*/
|
|
111
|
+
add_node(nodeID: number, data: _Node): void;
|
|
112
|
+
/**
|
|
113
|
+
* Add an edge to the graph
|
|
114
|
+
* @param start - Starting index of the edge
|
|
115
|
+
* @param end - The end index of the edge
|
|
116
|
+
* @param data - data associated with the edge
|
|
117
|
+
*/
|
|
118
|
+
add_edge(start: number, end: number, data: any): void;
|
|
119
|
+
/**
|
|
120
|
+
*
|
|
121
|
+
* @returns Get the adjaceny (adjacency lists) associated with the graph
|
|
122
|
+
*/
|
|
123
|
+
get_adjacency(): Map<number, number[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Apply a position map based on some data
|
|
126
|
+
* @param data - the position map that has to be applied to the graph
|
|
127
|
+
*/
|
|
128
|
+
apply_position_map(data: Map<number, Point>): void;
|
|
129
|
+
/**
|
|
130
|
+
* Apply an line map to a graph
|
|
131
|
+
* @param data Line data that has to be applied to the graph
|
|
132
|
+
*/
|
|
133
|
+
apply_edge_pos_maps(data: Map<number, Line>): void;
|
|
134
|
+
/**
|
|
135
|
+
* get the current edge map
|
|
136
|
+
* @returns The current set of edges associated with the graph
|
|
137
|
+
*/
|
|
138
|
+
get_edge_map(): Map<number, Line>;
|
|
139
|
+
/**
|
|
140
|
+
* Applies all the maps to the graph
|
|
141
|
+
* @param layout - Applies an object of maps associated with with a graph is made up of {pmap:(the position map), emap:{the edge map}}
|
|
142
|
+
*/
|
|
143
|
+
apply_drawing_maps(layout: {
|
|
144
|
+
pmap: Map<number, Point>;
|
|
145
|
+
emap: Map<number, Line>;
|
|
146
|
+
}): void;
|
|
147
|
+
/**
|
|
148
|
+
* Gets the position map and the edge map respectively
|
|
149
|
+
* @returns the positon map and the edge map as pmap and emap
|
|
150
|
+
*/
|
|
151
|
+
get_map(): {
|
|
152
|
+
pmap: Map<number, Point>;
|
|
153
|
+
emap: Map<number, Line>;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* get the postion of the nodes in the graph
|
|
157
|
+
* @returns the position map
|
|
158
|
+
*/
|
|
159
|
+
get_position_map(): Map<number, Point>;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
*
|
|
163
|
+
* Performs a BFS search on a graph - Async because it takes a while on large graphs
|
|
164
|
+
*
|
|
165
|
+
* @param Graph - The graph which has to be searched using the BFS algorithm
|
|
166
|
+
* @param node - The node form which to start
|
|
167
|
+
* @returns - A map of which node was explored from which other node
|
|
168
|
+
*/
|
|
169
|
+
declare function BFSSearch(Graph: Graph, node: number): Promise<Map<number, number>>;
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
* Performs a dijkstra search on a graph
|
|
173
|
+
*
|
|
174
|
+
* @param Graph - The graph on which to perform the Dijkstra search
|
|
175
|
+
* @param Node - The node from which to start
|
|
176
|
+
* @returns - Map from which each one of the nodes was searched from
|
|
177
|
+
*/
|
|
178
|
+
declare function Dijkstra(Graph: Graph, Node: number): Promise<Map<number, number>>;
|
|
179
|
+
/**
|
|
180
|
+
*
|
|
181
|
+
* Finds the diameter of the graph
|
|
182
|
+
*
|
|
183
|
+
* @param Graph
|
|
184
|
+
* @returns returns an object with a start, end - the two points of a graph and the diameter of the graph
|
|
185
|
+
*/
|
|
186
|
+
declare function GraphDiameter(Graph: Graph): Promise<{
|
|
187
|
+
start: number;
|
|
188
|
+
end: number;
|
|
189
|
+
distance: number;
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
*
|
|
193
|
+
* Select a subgraph
|
|
194
|
+
*
|
|
195
|
+
* @param graph - The main graph to select from
|
|
196
|
+
* @param nodeList - The selection of nodes that we want to select from this graph
|
|
197
|
+
* @returns A graph object that contains this subgraph
|
|
198
|
+
*/
|
|
199
|
+
declare function SelectSubgraph(graph: Graph, nodeList: number[]): Promise<Graph>;
|
|
200
|
+
export const GraphMethods: {
|
|
201
|
+
GraphDiameter: typeof GraphDiameter;
|
|
202
|
+
Dijkstra: typeof Dijkstra;
|
|
203
|
+
BFSSearch: typeof BFSSearch;
|
|
204
|
+
SelectSubgraph: typeof SelectSubgraph;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* construct a graph based on an edge list and node list
|
|
208
|
+
* @param nodes nodes as a list
|
|
209
|
+
* @param edges edges as a list
|
|
210
|
+
* @returns A graph that was construct from the list of nodes and edges
|
|
211
|
+
*/
|
|
212
|
+
declare function ConstructGraphNodeEdgesList(nodes: any[], edges: any[]): Promise<Graph>;
|
|
213
|
+
export const Constructors: {
|
|
214
|
+
ConstructGraphNodeEdgesList: typeof ConstructGraphNodeEdgesList;
|
|
215
|
+
};
|
|
216
|
+
/**
|
|
217
|
+
* calculate the average of an array of numberss
|
|
218
|
+
* @param arr an array of number whose average has to be calculated
|
|
219
|
+
* @returns the average
|
|
220
|
+
*/
|
|
221
|
+
declare function calculateAverage(arr: number[]): number;
|
|
222
|
+
/**
|
|
223
|
+
* Calculate the distance betweeen two points
|
|
224
|
+
* @param p1 the first point
|
|
225
|
+
* @param p2 the second point
|
|
226
|
+
* @returns the distance between the points
|
|
227
|
+
*/
|
|
228
|
+
declare function calculateDistance(p1: Point, p2: Point): number;
|
|
229
|
+
/**
|
|
230
|
+
* Calculate the squared distance between two points
|
|
231
|
+
* @param p1 the first point
|
|
232
|
+
* @param p2 the second point
|
|
233
|
+
* @returns the squared distance between the two points
|
|
234
|
+
*/
|
|
235
|
+
declare function calculateSquaredDistance(p1: Point, p2: Point): number;
|
|
236
|
+
/**
|
|
237
|
+
* get a random subset of something from a array of things must provide the number of things we want from that array
|
|
238
|
+
* @param arr the array from which the subset has to be made
|
|
239
|
+
* @param n number of items to select
|
|
240
|
+
* @returns a new array made up of a random sample from the original array
|
|
241
|
+
*/
|
|
242
|
+
declare function getRandomSubset(arr: any[], n: number): any[];
|
|
243
|
+
/**
|
|
244
|
+
* This is a super useful method to get a random number of edges or something that you would like to draw
|
|
245
|
+
* this is primarily done because there are way too many edges sometimes and and the number of edges is really
|
|
246
|
+
* What slows the whole rendering process down
|
|
247
|
+
* @param map - the map that youd like to reduce
|
|
248
|
+
* @param n - the fraction of items that youd like to return from this map
|
|
249
|
+
* @returns A reduced map with a fractio of those many entries
|
|
250
|
+
*/
|
|
251
|
+
declare function getRandomSubset_map(map: Map<number, any>, n: number): Map<any, any>;
|
|
252
|
+
export const Utilities: {
|
|
253
|
+
calculateAverage: typeof calculateAverage;
|
|
254
|
+
calculateDistance: typeof calculateDistance;
|
|
255
|
+
calculateSquaredDistance: typeof calculateSquaredDistance;
|
|
256
|
+
getRandomSubset: typeof getRandomSubset;
|
|
257
|
+
getRandomSubset_map: typeof getRandomSubset_map;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Creates a line based on the number of divisons
|
|
261
|
+
*
|
|
262
|
+
* @param start the start point
|
|
263
|
+
* @param end the end point
|
|
264
|
+
* @param divisions the number of divisions
|
|
265
|
+
* @returns the line object
|
|
266
|
+
*/
|
|
267
|
+
declare function line_from_start_end_divisions(start: Point, end: Point, divisions: number): Line;
|
|
268
|
+
/**
|
|
269
|
+
* Divides the line into a number of divisions based on distance
|
|
270
|
+
* @param start - the start point
|
|
271
|
+
* @param end - the end point
|
|
272
|
+
* @param distance - the distance at which this line must be divided
|
|
273
|
+
* @returns A line object with the right number of points
|
|
274
|
+
*/
|
|
275
|
+
declare function line_from_start_end_distance(start: Point, end: Point, distance: number): Line;
|
|
276
|
+
/**
|
|
277
|
+
* Calculates the centroid of an array of points
|
|
278
|
+
* @param points An array of points
|
|
279
|
+
* @returns the central point of the array of points
|
|
280
|
+
*/
|
|
281
|
+
declare function centroid(points: Point[]): Point;
|
|
282
|
+
export const Geometry: {
|
|
283
|
+
line_from_start_end_divisions: typeof line_from_start_end_divisions;
|
|
284
|
+
line_from_start_end_distance: typeof line_from_start_end_distance;
|
|
285
|
+
centroid: typeof centroid;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Simulates Kamada kawai for a network in 2d. 3d is not supported yet
|
|
289
|
+
* Note: This is an async function as it take time for some of the large graphs
|
|
290
|
+
*
|
|
291
|
+
* @param Graph - The first input number
|
|
292
|
+
* @param iterations - The second input number
|
|
293
|
+
* @param simulationBound - The bounds of simulation (Mostly a global number to scale the graph up or down)
|
|
294
|
+
* @param cohesionValue - How sticky the nodes are i.r. how much they cluster together
|
|
295
|
+
* @returns And node map of all the nodes and their simulated positions - Please note: position maps have to to be applied to the graph!
|
|
296
|
+
*
|
|
297
|
+
*/
|
|
298
|
+
declare function SimulateKamadaKawai(Graph: Graph, iterations: number, simulationBound?: number, cohesionValue?: number, repulsionValue?: number): Promise<Map<number, Point>>;
|
|
299
|
+
/**
|
|
300
|
+
*
|
|
301
|
+
* Randomly sets all the positions for a graph
|
|
302
|
+
* Not really very useful but I've used it in some cases and have kept it around
|
|
303
|
+
*
|
|
304
|
+
* @param Graph - The graph who's nodes you would want to reposition
|
|
305
|
+
*
|
|
306
|
+
* @return A position map of all the nodes and its corresponding positions
|
|
307
|
+
*/
|
|
308
|
+
declare function InstanciateRandomPositions(Graph: Graph): Map<number, Point>;
|
|
309
|
+
/**
|
|
310
|
+
*
|
|
311
|
+
* Constructs the edges as lines, Note: these are just a representation of the lines
|
|
312
|
+
* they then have to be visulized using one of the Three JS Drawer functions like
|
|
313
|
+
* draw a thick line or a thin line. This draws out the edges divided by some number of
|
|
314
|
+
* divisions that you specify
|
|
315
|
+
*
|
|
316
|
+
* @param Graph - The graph whos edges are getting drawn
|
|
317
|
+
* @param divDistance - How many divisions (distance) to make along the edge
|
|
318
|
+
* @returns A line map - which holds a map of all the edge indices and the corresponding line representations
|
|
319
|
+
*/
|
|
320
|
+
declare function DrawEdgeLines(Graph: Graph, divDistance: number): Map<number, Line>;
|
|
321
|
+
/**
|
|
322
|
+
*
|
|
323
|
+
* Constructs the edges as lines, Note: these are just a representation of the lines
|
|
324
|
+
* they then have to be visulized using one of the Three JS Drawer functions like
|
|
325
|
+
* draw a thick line or a thin line - this draws them based on the number of divisions
|
|
326
|
+
* you would like them to have
|
|
327
|
+
* @param Graph - The graph whos edges are getting drawn
|
|
328
|
+
* @param numberOfDivs - How many divisions to make along the edge
|
|
329
|
+
* @returns A line map - which holds a map of all the edge indices and the corresponding line representations
|
|
330
|
+
*/
|
|
331
|
+
declare function DrawEdgeLinesDivisions(Graph: Graph, numberOfDivs: number): Map<number, Line>;
|
|
332
|
+
/**
|
|
333
|
+
*
|
|
334
|
+
* Edge bundling - this isnt as fast as the current KDE based methods - but it provides a basic method of
|
|
335
|
+
* Visualizing large edge flows. Note: This is an aysnc function as it takes a while for the edge bundling to happen
|
|
336
|
+
*
|
|
337
|
+
* @param LineMap - The map of edges as a line map
|
|
338
|
+
* @param iterations - The number of iterations to run edge bundling
|
|
339
|
+
* @param distance - A shorthand for how close together the vertices need to be before they get influnced by each other
|
|
340
|
+
* @returns A line map with all the updated positions of the line (Where they are bundled together) Again - this needs to be applied to the graph!
|
|
341
|
+
*/
|
|
342
|
+
declare function DrawEdgeBundling(LineMap: Map<number, Line>, iterations: number, distance: number): Promise<Map<number, Line>>;
|
|
343
|
+
/**
|
|
344
|
+
*
|
|
345
|
+
* Displace the edges vertically, almost akin to the Deck.gl arcs
|
|
346
|
+
* The displacement is done in a sin curve with the ends still touching the nodes
|
|
347
|
+
* Note: This is an inplace modification of the edges
|
|
348
|
+
*
|
|
349
|
+
* @param LineMap - The map of edges as a line map
|
|
350
|
+
* @param displacement - the amount of vertical displacement
|
|
351
|
+
*/
|
|
352
|
+
declare function DisplaceEdgeInY(LineMap: Map<number, Line>, displacement: number): Map<number, Line>;
|
|
353
|
+
/**
|
|
354
|
+
*
|
|
355
|
+
* Displace the vertices vertically based on some prameter (For example degree or modularity)
|
|
356
|
+
*
|
|
357
|
+
* @param Graph - the graph whos nodes have to be displaced
|
|
358
|
+
* @param parameter - the prameter based on which you want to modify the
|
|
359
|
+
* @param displacement - the maximum amunt of displacement, all the other values are rescaled linerly
|
|
360
|
+
*/
|
|
361
|
+
declare function DisplaceVertices(Graph: Graph, parameter: string, displacement: number): void;
|
|
362
|
+
/**
|
|
363
|
+
*
|
|
364
|
+
* Generates a hive plot for a graph, this includes the option to displace the graph vertically based on degrees and how far away each node is
|
|
365
|
+
*
|
|
366
|
+
* @param Graph - The graph
|
|
367
|
+
* @param selectedNode - the node around which the hive plot is generated
|
|
368
|
+
* @param step - If the hive should step up or down if yes then by what increments
|
|
369
|
+
* @param startPosition - Starting position
|
|
370
|
+
* @returns
|
|
371
|
+
*/
|
|
372
|
+
declare function HivePlot(Graph: Graph, selectedNode: number, step: number, startPosition: Point): Promise<{
|
|
373
|
+
pmap: Map<any, any>;
|
|
374
|
+
emap: Map<number, Line>;
|
|
375
|
+
}>;
|
|
376
|
+
/**
|
|
377
|
+
* Move a graph somewhere (like the physical location) - This is an inplace movement and overwrites existing values
|
|
378
|
+
*
|
|
379
|
+
* @param Graph - The graph that has to be moved
|
|
380
|
+
* @param dispacement - This is a point and I end up using Point and Vector interchangably. So here the xyz values from the point are used to displace the nodes
|
|
381
|
+
*/
|
|
382
|
+
declare function MoveGraph(Graph: Graph, dispacement: Point): void;
|
|
383
|
+
/**
|
|
384
|
+
*
|
|
385
|
+
* Draw new lines from edges, and draw them based on the distance of divisions (i.e. divide the line up every 10 units) Note: This is an in place update that takes place on the graph - it overwrites the existing data.
|
|
386
|
+
*
|
|
387
|
+
* @param Graph - The grapht who's edges have to be updated
|
|
388
|
+
* @param divDistance - The distance by which the divisions are made
|
|
389
|
+
*/
|
|
390
|
+
declare function UpdateEdgeLinesDist(Graph: Graph, divDistance: number): void;
|
|
391
|
+
/**
|
|
392
|
+
*
|
|
393
|
+
* Draw new lines from edges, and draw them based on divisions (i.e. divide the line into 10 units) Note: This is an in place update that takes place on the graph - it overwrites the existing data.
|
|
394
|
+
|
|
395
|
+
* @param Graph - The grapht who's edges have to be updated
|
|
396
|
+
* @param Divs - The number of divisions to be made
|
|
397
|
+
*/
|
|
398
|
+
declare function UpdateEdgeLinesDivs(Graph: Graph, Divs: number): void;
|
|
399
|
+
export const Drawing: {
|
|
400
|
+
SimulateKamadaKawai: typeof SimulateKamadaKawai;
|
|
401
|
+
DrawEdgeLines: typeof DrawEdgeLines;
|
|
402
|
+
DrawEdgeLinesDivisions: typeof DrawEdgeLinesDivisions;
|
|
403
|
+
DrawEdgeBundling: typeof DrawEdgeBundling;
|
|
404
|
+
HivePlot: typeof HivePlot;
|
|
405
|
+
DisplaceEdgeInY: typeof DisplaceEdgeInY;
|
|
406
|
+
MoveGraph: typeof MoveGraph;
|
|
407
|
+
InstanciateRandomPositions: typeof InstanciateRandomPositions;
|
|
408
|
+
DisplaceVertices: typeof DisplaceVertices;
|
|
409
|
+
UpdateEdgeLinesDist: typeof UpdateEdgeLinesDist;
|
|
410
|
+
UpdateEdgeLinesDivs: typeof UpdateEdgeLinesDivs;
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
*
|
|
414
|
+
* @returns the raw ZKC dataset
|
|
415
|
+
*/
|
|
416
|
+
declare function LoadZKC(): Promise<Graph>;
|
|
417
|
+
/**
|
|
418
|
+
*
|
|
419
|
+
* @returns the ZKC dataset with the positons simulated before hand
|
|
420
|
+
*/
|
|
421
|
+
declare function LoadZKCSimulated(): Promise<Graph>;
|
|
422
|
+
export const SampleData: {
|
|
423
|
+
LoadZKC: typeof LoadZKC;
|
|
424
|
+
LoadZKCSimulated: typeof LoadZKCSimulated;
|
|
425
|
+
};
|
|
426
|
+
/**
|
|
427
|
+
*
|
|
428
|
+
* Draw the veritces of the graph out as a point cloud
|
|
429
|
+
*
|
|
430
|
+
* @param Graph - the graph that has to be drawn out
|
|
431
|
+
* @param bounds - A global scaling parameter defaults to 1 but change to scale up a garph
|
|
432
|
+
* @param size - The size of all the nodes - either input an array the same length of the number of nodes decribing how big each node is, or a global node value as a number or defaults to 1
|
|
433
|
+
* @param color - the color of the node defaults to white
|
|
434
|
+
* @param alpha - the alpha value of the node defaults to 1 (opaque)
|
|
435
|
+
* @returns a three JS group that contains all the vertices as a point cloud or a three js points object that can be added to the scene
|
|
436
|
+
*/
|
|
437
|
+
declare function DrawTHREEGraphVertices(Graph: Graph, bounds?: number, size?: number | number[], color?: number, alpha?: number): THREE.Group;
|
|
438
|
+
/**
|
|
439
|
+
*
|
|
440
|
+
* Draws out all the edges (Thick edges of a graph)
|
|
441
|
+
*
|
|
442
|
+
* @param Graph - The graph whose edges have to be drawn
|
|
443
|
+
* @param bounds - the global scale for all the edges to be drawn defaults to 1
|
|
444
|
+
* @param color - color of the edges defaults to white
|
|
445
|
+
* @param thickness - thickness of the edges (defaults to 0.2)
|
|
446
|
+
* @returns a Three Js group of edges that can be added to the scene
|
|
447
|
+
*/
|
|
448
|
+
declare function DrawTHREEGraphEdgesThick(Graph: Graph, bounds?: number, color?: number, thickness?: number): THREE.Group;
|
|
449
|
+
/**
|
|
450
|
+
*
|
|
451
|
+
* Draw thick edges from an edge map
|
|
452
|
+
*
|
|
453
|
+
* @param EdgeMap - The edge map associated with the graph
|
|
454
|
+
* @param bounds - The global scale of the graph - defaults to 1
|
|
455
|
+
* @param color - The color of the edges - defaults to white
|
|
456
|
+
* @param thickness - thickness of the edges - defaults to 0.2
|
|
457
|
+
* @returns
|
|
458
|
+
*/
|
|
459
|
+
declare function DrawThickEdgesFromEdgeMap(EdgeMap: Map<number, Line>, bounds: number, color?: number, thickness?: number): THREE.Group;
|
|
460
|
+
/**
|
|
461
|
+
*
|
|
462
|
+
* Draw thin lines for all the edges given a graph
|
|
463
|
+
*
|
|
464
|
+
* @param Graph - The graph that has to be drawn
|
|
465
|
+
* @param bounds - The global scale factor for the the edges - defaults to 1
|
|
466
|
+
* @param color - color of the lines - defaults to white
|
|
467
|
+
* @returns
|
|
468
|
+
*/
|
|
469
|
+
declare function DrawTHREEGraphEdgesThin(Graph: Graph, bounds?: number, color?: number): THREE.Group;
|
|
470
|
+
/**
|
|
471
|
+
*
|
|
472
|
+
* Draw Line map as lines given the edge map assocaited with the graph
|
|
473
|
+
*
|
|
474
|
+
* @param LineMap - The edge map that has to be drawn out
|
|
475
|
+
* @param bounds - Global scale for the edges to be drawn defaults to 1
|
|
476
|
+
* @param color - Color of the edges defaults to 1
|
|
477
|
+
* @returns
|
|
478
|
+
*/
|
|
479
|
+
declare function DrawThinEdgesFromEdgeMap(LineMap: Map<number, Line>, bounds?: number, color?: number): THREE.Group;
|
|
480
|
+
/**
|
|
481
|
+
*
|
|
482
|
+
* Adde boxes where all the boxes are
|
|
483
|
+
*
|
|
484
|
+
* @param nodeMap - a map of all the nodes
|
|
485
|
+
* @param bounds - global scale of the edges to be drawn, defaults to 1
|
|
486
|
+
* @param color - default color of the edges, defaults to white
|
|
487
|
+
* @param size - size of the nodes defaults to 10
|
|
488
|
+
* @returns a group of vertices that contains all of the boxes associated with each one of the vertices
|
|
489
|
+
*/
|
|
490
|
+
declare function AddBoxBasedImaging(nodeMap: Map<number, Point>, bounds?: number, color?: number, size?: number | number[]): THREE.Group;
|
|
491
|
+
/**
|
|
492
|
+
*
|
|
493
|
+
* Draw box based verices given a graph
|
|
494
|
+
*
|
|
495
|
+
* @param Graph - The graph that needs its vertices drawn
|
|
496
|
+
* @param bounds - A global scale for the graph, defaults to one
|
|
497
|
+
* @param color - Default color of the boxes defaults to white
|
|
498
|
+
* @param size - Default size of the nodes defaults to 10
|
|
499
|
+
* @returns
|
|
500
|
+
*/
|
|
501
|
+
declare function DrawTHREEBoxBasedVertices(Graph: Graph, bounds?: number, color?: number, size?: number | number[]): THREE.Group;
|
|
502
|
+
/**
|
|
503
|
+
*
|
|
504
|
+
* Draw cylinders where all the vertices are based on a node map
|
|
505
|
+
*
|
|
506
|
+
* @param nodeMap - the node map assiciate with the graph that has to be drawn out
|
|
507
|
+
* @param divisonLength - the length of the divisions that are there in each one of the cylinder (this is a circumfurence amount), defaults to 16
|
|
508
|
+
* @param color - the default color of the cylinder, defaults to white
|
|
509
|
+
* @param size - the default size of the cylinder, defaults to 10
|
|
510
|
+
* @returns
|
|
511
|
+
*/
|
|
512
|
+
declare function AddCylinderBasedImaging(nodeMap: Map<number, Point>, divisonLength?: number, color?: number, size?: number | number[]): THREE.Group;
|
|
513
|
+
/**
|
|
514
|
+
*
|
|
515
|
+
* Split up a graph and return an boject containing a bunch of node groups and edge groups based on some parameterS
|
|
516
|
+
*
|
|
517
|
+
* @param Graph - the graph that you want to split up
|
|
518
|
+
* @param propertyName - the property that you want to split them on
|
|
519
|
+
* @returns - an object that hasa set of node vertices and a set of edge lines based on the splitting factor
|
|
520
|
+
*/
|
|
521
|
+
declare function AddInModularityBasedPointGroups(Graph: Graph, propertyName: string): Promise<{
|
|
522
|
+
nodeGroups: Map<number, THREE.Group>;
|
|
523
|
+
EdgeGroups: Map<number, THREE.Group>;
|
|
524
|
+
}>;
|
|
525
|
+
/**
|
|
526
|
+
*
|
|
527
|
+
* Draw simplified line edges (thin based) based on some number. This number is a fraction of the total number of edges (so if you specify 0.1 it would draw 10% of the edges)
|
|
528
|
+
*
|
|
529
|
+
* @param Graph - The graph that has to be drawn out
|
|
530
|
+
* @param amount - The fraction of edges to be drawn
|
|
531
|
+
* @param color - color of these edges - defaults to 0.1
|
|
532
|
+
* @returns - a group of simple lines based on all the edges supplied to it
|
|
533
|
+
*/
|
|
534
|
+
declare function DrawSimplifiedEdges(Graph: Graph, amount: number, color?: number): THREE.Group;
|
|
535
|
+
/**
|
|
536
|
+
*
|
|
537
|
+
* Change all the vertex colors based on some array of properties
|
|
538
|
+
*
|
|
539
|
+
* @param vertices - ThreeJS Points object, be sure to pass in the points object and not the group that the points belong too
|
|
540
|
+
* @param indexArray - The array of the indices of all the nodes whose values that have to be changed
|
|
541
|
+
* @param color - The color that they have to be changed too
|
|
542
|
+
*/
|
|
543
|
+
declare function ChangeTheVertexColours(vertices: THREE.Points, indexArray: number[], color: number): void;
|
|
544
|
+
/**
|
|
545
|
+
*
|
|
546
|
+
* This resets all the colors to white
|
|
547
|
+
*
|
|
548
|
+
* @param vertices - ThreeJS Points object, be sure to pass in the points object and not the group that the points belong too
|
|
549
|
+
*/
|
|
550
|
+
declare function ResetVertexColors(vertices: THREE.Points): void;
|
|
551
|
+
export const ThreeWrapper: {
|
|
552
|
+
DrawTHREEGraphVertices: typeof DrawTHREEGraphVertices;
|
|
553
|
+
DrawTHREEGraphEdgesThick: typeof DrawTHREEGraphEdgesThick;
|
|
554
|
+
DrawTHREEGraphEdgesThin: typeof DrawTHREEGraphEdgesThin;
|
|
555
|
+
AddBoxBasedImaging: typeof AddBoxBasedImaging;
|
|
556
|
+
AddInModularityBasedPointGroups: typeof AddInModularityBasedPointGroups;
|
|
557
|
+
DrawThinEdgesFromEdgeMap: typeof DrawThinEdgesFromEdgeMap;
|
|
558
|
+
DrawThickEdgesFromEdgeMap: typeof DrawThickEdgesFromEdgeMap;
|
|
559
|
+
AddCylinderBasedImaging: typeof AddCylinderBasedImaging;
|
|
560
|
+
DrawSimplifiedEdges: typeof DrawSimplifiedEdges;
|
|
561
|
+
ChangeTheVertexColours: typeof ChangeTheVertexColours;
|
|
562
|
+
ResetVertexColors: typeof ResetVertexColors;
|
|
563
|
+
DrawTHREEBoxBasedVertices: typeof DrawTHREEBoxBasedVertices;
|
|
564
|
+
};
|
|
565
|
+
interface GraphDrawer3d {
|
|
566
|
+
canvas: HTMLCanvasElement;
|
|
567
|
+
width: number;
|
|
568
|
+
height: number;
|
|
569
|
+
geometryMap: Map<any, any>;
|
|
570
|
+
materialMap: Map<any, any>;
|
|
571
|
+
meshMap: Map<any, any>;
|
|
572
|
+
controls: OrbitControls;
|
|
573
|
+
renderer: THREE.WebGLRenderer;
|
|
574
|
+
camera: THREE.PerspectiveCamera;
|
|
575
|
+
scene: THREE.Scene;
|
|
576
|
+
graphs: Map<number, Graph>;
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* This is the main graph drawer class
|
|
580
|
+
*/
|
|
581
|
+
declare class GraphDrawer3d {
|
|
582
|
+
/**
|
|
583
|
+
* To initialize the graph drawer there are a set of graph drawing settings that have to be set.
|
|
584
|
+
* Here are the details to do the same:
|
|
585
|
+
* canvas - the html canvas element that you would like to render
|
|
586
|
+
* height - the the height of the initialized canvas
|
|
587
|
+
* width - the width of the initialized canvas
|
|
588
|
+
* geometry map - a map that keeps track of all the geometry in the scene (Optional)
|
|
589
|
+
* material map - a mapt that keeps track of all the materials in the scene (Optional)
|
|
590
|
+
* controls - Controls that define how one can navigate this 3d space (Self initialized)
|
|
591
|
+
* renderer - Renderer element form the three JS library
|
|
592
|
+
* camera - A perspective camera from the threeJS library
|
|
593
|
+
* scene - The three JS scene that gets define automatically
|
|
594
|
+
*
|
|
595
|
+
* @param GraphDrawerOptions3d - These above options are construdeted into a single object and passed into the Options elem
|
|
596
|
+
*/
|
|
597
|
+
constructor(GraphDrawerOptions3d: {
|
|
598
|
+
canvas: HTMLCanvasElement;
|
|
599
|
+
width: number;
|
|
600
|
+
height: number;
|
|
601
|
+
geometryMap: Map<any, any>;
|
|
602
|
+
materialMap: Map<any, any>;
|
|
603
|
+
meshMap: Map<any, any>;
|
|
604
|
+
controls: OrbitControls;
|
|
605
|
+
renderer: THREE.WebGLRenderer;
|
|
606
|
+
camera: THREE.PerspectiveCamera;
|
|
607
|
+
scene: THREE.Scene;
|
|
608
|
+
});
|
|
609
|
+
/**
|
|
610
|
+
* This essentially initializes the drawing element based on the settings
|
|
611
|
+
* Remember to do this since if if its not done the scene will not render
|
|
612
|
+
*/
|
|
613
|
+
init(): Promise<void>;
|
|
614
|
+
/**
|
|
615
|
+
*
|
|
616
|
+
* This is the main way to add elements to the viewer window that gets initialized
|
|
617
|
+
*
|
|
618
|
+
* @param element A geomerty element + material element to add to the scene as a group line or point cloud
|
|
619
|
+
*/
|
|
620
|
+
addVisElement(element: THREE.Group | THREE.Line | THREE.Points): void;
|
|
621
|
+
/**
|
|
622
|
+
* This is the render call that is called every frame to update the rendering of the canvas
|
|
623
|
+
* Remember to do this since this is a common are for bugs to occur
|
|
624
|
+
*/
|
|
625
|
+
rendercall(): void;
|
|
626
|
+
}
|
|
627
|
+
export const GraphDrawer: {
|
|
628
|
+
GraphDrawer3d: typeof GraphDrawer3d;
|
|
629
|
+
};
|
|
630
|
+
/**
|
|
631
|
+
* The G ( n , p ) G(n,p) model, a graph is constructed by connecting labeled nodes randomly. Each edge is included in the graph with probability p p, independently from every other edge.
|
|
632
|
+
* https://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model
|
|
633
|
+
* @param n Number of nodes
|
|
634
|
+
* @param p Probability of two edges to eb connected
|
|
635
|
+
* @returns A Erdos Reyni graph
|
|
636
|
+
*/
|
|
637
|
+
declare function GenerateErdosReyni_n_p(n: number, p: number): Promise<Graph>;
|
|
638
|
+
export const Models: {
|
|
639
|
+
GenerateErdosReyni_n_p: typeof GenerateErdosReyni_n_p;
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
//# sourceMappingURL=pgl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"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","sources":["Src/Src/HelperClasses/Point.ts","Src/Src/HelperClasses/Line.ts","Src/Src/Core/_Node.ts","Src/Src/Core/Edge.ts","Src/Src/Core/Graph.ts","Src/Src/GraphAlgorithms/GraphMethods.ts","Src/Src/SampleData/ZKC.ts","Src/Src/SampleData/ZKC_simulated.ts","Src/Src/HelperClasses/GraphConstructors.ts","Src/Src/HelperClasses/Utilities.ts","Src/Src/HelperClasses/GeometryHelpers.ts","Src/Src/Drawing/Drawing.ts","Src/Src/SampleData/DataLoader.ts","Src/Src/HelperClasses/ColorHelper.ts","Src/Src/Shaders/vertexShader.glsl.ts","Src/Src/Shaders/fragmentShader.glsl.ts","Src/Src/Drawing/ThreeJSDrawer.ts","Src/Src/Drawing/GraphDrawer.ts","Src/Src/Models/ErdosRenyiModel.ts","Src/Src/index.ts","Src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export { default as Graph } from \"./Core/Graph\";\r\nexport { default as GraphMethods } from \"./GraphAlgorithms/GraphMethods\";\r\nexport { default as SampleData } from \"./SampleData/DataLoader\";\r\nexport { default as Constructors } from \"./HelperClasses/GraphConstructors\";\r\nexport { default as Drawing } from \"./Drawing/Drawing\";\r\nexport { default as Geometry } from \"./HelperClasses/GeometryHelpers\";\r\nexport { default as Utilities } from \"./HelperClasses/Utilities\";\r\nexport { default as ThreeWrapper } from \"./Drawing/ThreeJSDrawer\";\r\nexport { default as GraphDrawer } from \"./Drawing/GraphDrawer\";\r\nexport { default as Models } from \"./Models/ErdosRenyiModel\";\r\n"],"names":[],"version":3,"file":"pgl.d.ts.map"}
|