@antv/layout 0.2.5 → 0.3.0-beta.2
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/dist/layout.min.js +1 -1
- package/dist/layout.min.js.map +1 -1
- package/es/layout/circular.js +4 -4
- package/es/layout/circular.js.map +1 -1
- package/es/layout/concentric.js +1 -1
- package/es/layout/concentric.js.map +1 -1
- package/es/layout/constants.js +1 -0
- package/es/layout/constants.js.map +1 -1
- package/es/layout/dagre.js +3 -3
- package/es/layout/dagre.js.map +1 -1
- package/es/layout/force2/ForceNBody.d.ts +7 -0
- package/es/layout/force2/ForceNBody.js +94 -0
- package/es/layout/force2/ForceNBody.js.map +1 -0
- package/es/layout/force2/index.d.ts +123 -0
- package/es/layout/force2/index.js +609 -0
- package/es/layout/force2/index.js.map +1 -0
- package/es/layout/gForce.js +2 -2
- package/es/layout/gForce.js.map +1 -1
- package/es/layout/gpu/gForce.js +1 -1
- package/es/layout/gpu/gForce.js.map +1 -1
- package/es/layout/grid.js +1 -1
- package/es/layout/grid.js.map +1 -1
- package/es/layout/index.d.ts +2 -1
- package/es/layout/index.js +2 -1
- package/es/layout/index.js.map +1 -1
- package/es/layout/layout.js +2 -0
- package/es/layout/layout.js.map +1 -1
- package/es/layout/types.d.ts +61 -0
- package/es/util/math.d.ts +21 -2
- package/es/util/math.js +111 -4
- package/es/util/math.js.map +1 -1
- package/lib/layout/circular.js +4 -4
- package/lib/layout/circular.js.map +1 -1
- package/lib/layout/concentric.js +1 -1
- package/lib/layout/concentric.js.map +1 -1
- package/lib/layout/constants.js +1 -0
- package/lib/layout/constants.js.map +1 -1
- package/lib/layout/dagre.js +4 -4
- package/lib/layout/dagre.js.map +1 -1
- package/lib/layout/force2/ForceNBody.d.ts +7 -0
- package/lib/layout/force2/ForceNBody.js +98 -0
- package/lib/layout/force2/ForceNBody.js.map +1 -0
- package/lib/layout/force2/index.d.ts +123 -0
- package/lib/layout/force2/index.js +644 -0
- package/lib/layout/force2/index.js.map +1 -0
- package/lib/layout/gForce.js +2 -2
- package/lib/layout/gForce.js.map +1 -1
- package/lib/layout/gpu/gForce.js +1 -1
- package/lib/layout/gpu/gForce.js.map +1 -1
- package/lib/layout/grid.js +1 -1
- package/lib/layout/grid.js.map +1 -1
- package/lib/layout/index.d.ts +2 -1
- package/lib/layout/index.js +3 -1
- package/lib/layout/index.js.map +1 -1
- package/lib/layout/layout.js +2 -0
- package/lib/layout/layout.js.map +1 -1
- package/lib/layout/types.d.ts +61 -0
- package/lib/util/math.d.ts +21 -2
- package/lib/util/math.js +116 -6
- package/lib/util/math.js.map +1 -1
- package/package.json +4 -2
- package/src/layout/circular.ts +7 -6
- package/src/layout/concentric.ts +1 -1
- package/src/layout/constants.ts +1 -0
- package/src/layout/dagre.ts +1 -1
- package/src/layout/force2/ForceNBody.ts +128 -0
- package/src/layout/force2/index.ts +743 -0
- package/src/layout/gForce.ts +7 -6
- package/src/layout/gpu/gForce.ts +4 -3
- package/src/layout/grid.ts +1 -1
- package/src/layout/index.ts +2 -0
- package/src/layout/layout.ts +2 -0
- package/src/layout/types.ts +67 -0
- package/src/util/math.ts +122 -6
package/lib/util/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/util/math.ts"],"names":[],"mappings":";;;AACA,mCAAoC;AAE7B,IAAM,eAAe,GAAG,UAAC,IAAU,EAAE,IAAyB;IACnE,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAA,iBAAQ,EAAC,QAAQ,CAAC,EAAE;QACtB,OAAO,QAAQ,CAAC,IAAI,CAAC;KACtB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B;AAEK,IAAM,SAAS,GAAG,UAAC,CAAS,EAAE,UAAoB,EAAE,KAAoB;IAC7E,IAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/util/math.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/layout",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.0-beta.2",
|
|
4
4
|
"description": "graph layout algorithm",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@antv/g-webgpu": "0.5.5",
|
|
47
47
|
"@antv/graphlib": "^1.0.0",
|
|
48
|
-
"d3-force": "^2.
|
|
48
|
+
"d3-force": "^2.1.1",
|
|
49
|
+
"d3-quadtree": "^3.0.1",
|
|
49
50
|
"dagre-compound": "^0.0.11",
|
|
50
51
|
"ml-matrix": "^6.5.0"
|
|
51
52
|
},
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"@types/d3-force": "^2.1.0",
|
|
60
61
|
"@types/graphlib": "^2.1.8",
|
|
61
62
|
"@types/jest": "^25.2.1",
|
|
63
|
+
"@types/d3-quadtree": "^3.0.2",
|
|
62
64
|
"babel-jest": "*",
|
|
63
65
|
"babel-loader": "^8.2.2",
|
|
64
66
|
"eslint": "^7.11.0",
|
package/src/layout/circular.ts
CHANGED
|
@@ -8,7 +8,8 @@ import {
|
|
|
8
8
|
Edge,
|
|
9
9
|
PointTuple,
|
|
10
10
|
IndexMap,
|
|
11
|
-
CircularLayoutOptions
|
|
11
|
+
CircularLayoutOptions,
|
|
12
|
+
Degree
|
|
12
13
|
} from "./types";
|
|
13
14
|
import { Base } from "./base";
|
|
14
15
|
import { getDegree, clone, getEdgeTerminal, getFuncByUnknownType } from "../util";
|
|
@@ -141,7 +142,7 @@ export class CircularLayout extends Base {
|
|
|
141
142
|
|
|
142
143
|
private nodeMap: IndexMap = {};
|
|
143
144
|
|
|
144
|
-
private degrees:
|
|
145
|
+
private degrees: Degree[] = [];
|
|
145
146
|
|
|
146
147
|
public width: number = 300;
|
|
147
148
|
|
|
@@ -269,7 +270,7 @@ export class CircularLayout extends Base {
|
|
|
269
270
|
}
|
|
270
271
|
layoutNodes[i].x = center[0] + Math.cos(angle) * r;
|
|
271
272
|
layoutNodes[i].y = center[1] + Math.sin(angle) * r;
|
|
272
|
-
layoutNodes[i].weight = degrees[i];
|
|
273
|
+
layoutNodes[i].weight = degrees[i].all;
|
|
273
274
|
}
|
|
274
275
|
|
|
275
276
|
self.onLayoutEnd?.();
|
|
@@ -302,7 +303,7 @@ export class CircularLayout extends Base {
|
|
|
302
303
|
if (i !== 0) {
|
|
303
304
|
if (
|
|
304
305
|
(i === n - 1 ||
|
|
305
|
-
degrees[i] !== degrees[i + 1] ||
|
|
306
|
+
degrees[i].all !== degrees[i + 1].all ||
|
|
306
307
|
connect(
|
|
307
308
|
orderedCNodes[k],
|
|
308
309
|
cnode,
|
|
@@ -319,7 +320,7 @@ export class CircularLayout extends Base {
|
|
|
319
320
|
let foundChild = false;
|
|
320
321
|
for (let j = 0; j < children.length; j++) {
|
|
321
322
|
const childIdx = nodeMap[children[j]];
|
|
322
|
-
if (degrees[childIdx] === degrees[i] && !pickFlags[childIdx]) {
|
|
323
|
+
if (degrees[childIdx].all === degrees[i].all && !pickFlags[childIdx]) {
|
|
323
324
|
orderedCNodes.push(cnodes[childIdx]);
|
|
324
325
|
resNodes.push(nodes[nodeMap[cnodes[childIdx].id]]);
|
|
325
326
|
pickFlags[childIdx] = true;
|
|
@@ -356,7 +357,7 @@ export class CircularLayout extends Base {
|
|
|
356
357
|
const orderedNodes: INode[] = [];
|
|
357
358
|
const degrees = self.degrees;
|
|
358
359
|
nodes.forEach((node, i) => {
|
|
359
|
-
node.degree = degrees[i];
|
|
360
|
+
node.degree = degrees[i].all;
|
|
360
361
|
orderedNodes.push(node);
|
|
361
362
|
});
|
|
362
363
|
orderedNodes.sort(compareDegree);
|
package/src/layout/concentric.ts
CHANGED
|
@@ -180,7 +180,7 @@ export class ConcentricLayout extends Base {
|
|
|
180
180
|
if (!isNumber(nodes[0].degree)) {
|
|
181
181
|
const values = getDegree(nodes.length, indexMap, edges);
|
|
182
182
|
layoutNodes.forEach((node, i) => {
|
|
183
|
-
node.degree = values[i];
|
|
183
|
+
node.degree = values[i].all;
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
}
|
package/src/layout/constants.ts
CHANGED
package/src/layout/dagre.ts
CHANGED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { quadtree } from 'd3-quadtree';
|
|
2
|
+
import { NodeMap } from '..';
|
|
3
|
+
|
|
4
|
+
const theta2 = 0.81; // Barnes-Hut approximation threshold
|
|
5
|
+
const epsilon = 0.1; // 为了防止出现除0的情况,加一个epsilon
|
|
6
|
+
|
|
7
|
+
interface Node {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface InternalNode {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
vx: number;
|
|
16
|
+
vy: number;
|
|
17
|
+
weight: number;
|
|
18
|
+
size: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function forceNBody(
|
|
22
|
+
nodes: Node[],
|
|
23
|
+
nodeMap: NodeMap,
|
|
24
|
+
factor: number,
|
|
25
|
+
coulombDisScale2: number,
|
|
26
|
+
accArray: number[]
|
|
27
|
+
) {
|
|
28
|
+
const weightParam = factor / coulombDisScale2;
|
|
29
|
+
const data = nodes.map((n, i) => {
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
const mappedNode = nodeMap[n.id];
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
const { data: nodeData, x, y, size } = mappedNode;
|
|
34
|
+
const { nodeStrength } = nodeData.layout.force;
|
|
35
|
+
return {
|
|
36
|
+
x,
|
|
37
|
+
y,
|
|
38
|
+
size,
|
|
39
|
+
index: i,
|
|
40
|
+
vx: 0,
|
|
41
|
+
vy: 0,
|
|
42
|
+
weight: weightParam * nodeStrength,
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const tree = quadtree(
|
|
47
|
+
data,
|
|
48
|
+
(d: any) => d.x,
|
|
49
|
+
(d: any) => d.y,
|
|
50
|
+
).visitAfter(accumulate); // init internal node
|
|
51
|
+
|
|
52
|
+
data.forEach(n => {
|
|
53
|
+
// @ts-ignore
|
|
54
|
+
computeForce(n, tree);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
data.map((n, i) => {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
const mappedNode = nodeMap[nodes[i].id];
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
const { mass = 1 } = mappedNode.data.layout.force;
|
|
62
|
+
// 从 0 开始,= 初始化 + 加斥力
|
|
63
|
+
accArray[2 * i] = n.vx / mass;
|
|
64
|
+
accArray[2 * i + 1] = n.vy / mass;
|
|
65
|
+
});
|
|
66
|
+
return accArray;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// @ts-ignore
|
|
70
|
+
function accumulate(quad) {
|
|
71
|
+
let accWeight = 0;
|
|
72
|
+
let accX = 0;
|
|
73
|
+
let accY = 0;
|
|
74
|
+
|
|
75
|
+
if (quad.length) {
|
|
76
|
+
// internal node, accumulate 4 child quads
|
|
77
|
+
for (let i = 0; i < 4; i++) {
|
|
78
|
+
const q = quad[i];
|
|
79
|
+
if (q && q.weight) {
|
|
80
|
+
accWeight += q.weight;
|
|
81
|
+
accX += q.x * q.weight;
|
|
82
|
+
accY += q.y * q.weight;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
quad.x = accX / accWeight;
|
|
86
|
+
quad.y = accY / accWeight;
|
|
87
|
+
quad.weight = accWeight;
|
|
88
|
+
} else {
|
|
89
|
+
// leaf node
|
|
90
|
+
const q = quad;
|
|
91
|
+
quad.x = q.data.x;
|
|
92
|
+
quad.y = q.data.y;
|
|
93
|
+
quad.weight = q.data.weight;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
const apply = (quad, x1: number, y1: number, x2: number, y2: number, node: InternalNode) => {
|
|
99
|
+
const dx = (node.x - quad.x) || epsilon;
|
|
100
|
+
const dy = (node.y - quad.y) || epsilon;
|
|
101
|
+
const width = x2 - x1;
|
|
102
|
+
const len2 = dx * dx + dy * dy;
|
|
103
|
+
const len3 = Math.sqrt(len2) * len2;
|
|
104
|
+
|
|
105
|
+
// far node, apply Barnes-Hut approximation
|
|
106
|
+
if ((width * width) * theta2 < len2) {
|
|
107
|
+
const param = quad.weight / len3;
|
|
108
|
+
node.vx += dx * param;
|
|
109
|
+
node.vy += dy * param;
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
// near quad, compute force directly
|
|
113
|
+
if (quad.length) return false; // internal node, visit children
|
|
114
|
+
|
|
115
|
+
// leaf node
|
|
116
|
+
|
|
117
|
+
if (quad.data !== node) {
|
|
118
|
+
const param = quad.data.weight / len3;
|
|
119
|
+
node.vx += dx * param;
|
|
120
|
+
node.vy += dy * param;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// @ts-ignore
|
|
125
|
+
function computeForce(node: InternalNode, tree) {
|
|
126
|
+
// @ts-ignore
|
|
127
|
+
tree.visit((quad, x1, y1, x2, y2) => apply(quad, x1, y1, x2, y2, node));
|
|
128
|
+
}
|