@antv/layout 0.3.0-beta.5 → 0.3.1

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.
Files changed (47) hide show
  1. package/dist/layout.min.js +1 -1
  2. package/dist/layout.min.js.LICENSE.txt +2 -0
  3. package/dist/layout.min.js.map +1 -1
  4. package/es/layout/dagre/src/layout.js +0 -2
  5. package/es/layout/dagre/src/layout.js.map +1 -1
  6. package/es/layout/dagre/src/order/sort-subgraph.d.ts +1 -1
  7. package/es/layout/dagre/src/order/sort.d.ts +1 -1
  8. package/es/layout/dagre/src/position/bk.d.ts +5 -5
  9. package/es/layout/dagre/src/position/bk.js +1 -2
  10. package/es/layout/dagre/src/position/bk.js.map +1 -1
  11. package/es/layout/dagre/src/util.d.ts +1 -1
  12. package/es/layout/force2/index.js +6 -1
  13. package/es/layout/force2/index.js.map +1 -1
  14. package/es/layout/forceAtlas2/index.js +2 -0
  15. package/es/layout/forceAtlas2/index.js.map +1 -1
  16. package/es/layout/grid.js +14 -4
  17. package/es/layout/grid.js.map +1 -1
  18. package/es/layout/types.d.ts +2 -0
  19. package/es/util/gpu.d.ts +1 -1
  20. package/es/util/gpu.js +7 -4
  21. package/es/util/gpu.js.map +1 -1
  22. package/lib/layout/dagre/src/layout.js +0 -2
  23. package/lib/layout/dagre/src/layout.js.map +1 -1
  24. package/lib/layout/dagre/src/order/sort-subgraph.d.ts +1 -1
  25. package/lib/layout/dagre/src/order/sort.d.ts +1 -1
  26. package/lib/layout/dagre/src/position/bk.d.ts +5 -5
  27. package/lib/layout/dagre/src/position/bk.js +1 -2
  28. package/lib/layout/dagre/src/position/bk.js.map +1 -1
  29. package/lib/layout/dagre/src/util.d.ts +1 -1
  30. package/lib/layout/force2/index.js +6 -1
  31. package/lib/layout/force2/index.js.map +1 -1
  32. package/lib/layout/forceAtlas2/index.js +2 -0
  33. package/lib/layout/forceAtlas2/index.js.map +1 -1
  34. package/lib/layout/grid.js +13 -3
  35. package/lib/layout/grid.js.map +1 -1
  36. package/lib/layout/types.d.ts +2 -0
  37. package/lib/util/gpu.d.ts +1 -1
  38. package/lib/util/gpu.js +7 -4
  39. package/lib/util/gpu.js.map +1 -1
  40. package/package.json +3 -3
  41. package/src/layout/dagre/src/layout.ts +0 -1
  42. package/src/layout/dagre/src/position/bk.ts +1 -2
  43. package/src/layout/force2/index.ts +18 -15
  44. package/src/layout/forceAtlas2/index.ts +1 -1
  45. package/src/layout/grid.ts +15 -4
  46. package/src/layout/types.ts +2 -0
  47. package/src/util/gpu.ts +9 -6
package/lib/util/gpu.d.ts CHANGED
@@ -5,7 +5,7 @@ import { OutNode, Edge } from '../layout/types';
5
5
  * @param {number} defaultV 返回函数的默认返回值
6
6
  * @return {Function} 转换后的函数
7
7
  */
8
- export declare const proccessToFunc: (value: number | Function | undefined, defaultV?: number | undefined) => (d?: any) => number;
8
+ export declare const proccessToFunc: (value: number | Function | undefined, defaultV?: number) => (d?: any) => number;
9
9
  /**
10
10
  * 将节点和边数据转换为 GPU 可读的数组。并返回 maxEdgePerVetex,每个节点上最多的边数
11
11
  * @param {NodeConfig[]} nodes 需要被转换的值
package/lib/util/gpu.js CHANGED
@@ -51,17 +51,20 @@ var buildTextureData = function (nodes, edges) {
51
51
  var e = edges[i];
52
52
  var source = (0, math_1.getEdgeTerminal)(e, 'source');
53
53
  var target = (0, math_1.getEdgeTerminal)(e, 'target');
54
- nodeDict[mapIdPos[source]].push(mapIdPos[target]);
55
- nodeDict[mapIdPos[target]].push(mapIdPos[source]);
54
+ if (!isNaN(mapIdPos[source]) && !isNaN(mapIdPos[target])) {
55
+ nodeDict[mapIdPos[source]].push(mapIdPos[target]);
56
+ nodeDict[mapIdPos[target]].push(mapIdPos[source]);
57
+ }
56
58
  }
57
59
  var maxEdgePerVetex = 0;
58
60
  for (i = 0; i < nodes.length; i++) {
59
61
  var offset = dataArray.length;
60
62
  var dests = nodeDict[i];
61
63
  var len = dests.length;
64
+ console.log('dests', dests, len);
62
65
  dataArray[i * 4 + 2] = offset;
63
- dataArray[i * 4 + 3] = dests.length;
64
- maxEdgePerVetex = Math.max(maxEdgePerVetex, dests.length);
66
+ dataArray[i * 4 + 3] = len;
67
+ maxEdgePerVetex = Math.max(maxEdgePerVetex, len);
65
68
  for (var j = 0; j < len; ++j) {
66
69
  var dest = dests[j];
67
70
  dataArray.push(+dest);
@@ -1 +1 @@
1
- {"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/util/gpu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/util/gpu.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.3.0-beta.5",
3
+ "version": "0.3.1",
4
4
  "description": "graph layout algorithm",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -46,7 +46,7 @@
46
46
  "@antv/g-webgpu": "0.5.5",
47
47
  "@antv/graphlib": "^1.0.0",
48
48
  "d3-force": "^2.1.1",
49
- "d3-quadtree": "^3.0.1",
49
+ "d3-quadtree": "^2.0.0",
50
50
  "dagre-compound": "^0.0.11",
51
51
  "ml-matrix": "^6.5.0"
52
52
  },
@@ -60,7 +60,7 @@
60
60
  "@types/d3-force": "^2.1.0",
61
61
  "@types/graphlib": "^2.1.8",
62
62
  "@types/jest": "^25.2.1",
63
- "@types/d3-quadtree": "^3.0.2",
63
+ "@types/d3-quadtree": "^2.0.0",
64
64
  "babel-jest": "*",
65
65
  "babel-loader": "^8.2.2",
66
66
  "eslint": "^7.11.0",
@@ -294,7 +294,6 @@ const makeSpaceForEdgeLabels = (g: Graph) => {
294
294
  const node = g.node(n)!;
295
295
  if (!isNaN(node.layer as any)) {
296
296
  if (!node.layer) node.layer = 0;
297
- else node.layer *= 2; // TODO: 因为默认的rank变为两倍,设定的layer也*2
298
297
  }
299
298
  });
300
299
  g.edges().forEach((e) => {
@@ -391,8 +391,7 @@ export const balance = (
391
391
  result[key] = xss[align.toLowerCase()][key];
392
392
  } else {
393
393
  const values = Object.values(xss).map((x) => x[key]);
394
- const xs = values.sort((a: number, b: number) => a - b);
395
- result[key] = (xs[1] + xs[2]) / 2;
394
+ result[key] = (values[0] + values[1]) / 2; // (ur + ul) / 2
396
395
  }
397
396
  });
398
397
  return result;
@@ -126,7 +126,7 @@ export class Force2Layout extends Base {
126
126
  public distanceThresholdMode: 'mean' | 'max' | 'min' = 'mean';
127
127
 
128
128
  /** 每次迭代结束的回调函数 */
129
- public tick: (() => void) | null = () => {};
129
+ public tick: (() => void) | null = () => { };
130
130
 
131
131
  /** 是否允许每次迭代结束调用回调函数 */
132
132
  public enableTick: boolean;
@@ -158,7 +158,7 @@ export class Force2Layout extends Base {
158
158
 
159
159
  /** 迭代中的标识 */
160
160
  private timeInterval: number;
161
-
161
+
162
162
  /** 与 minMovement 进行对比的判断停止迭代节点移动距离 */
163
163
  private judgingDistance: number;
164
164
 
@@ -178,7 +178,8 @@ export class Force2Layout extends Base {
178
178
  };
179
179
  },
180
180
  };
181
-
181
+ const { getMass } = options;
182
+ this.propsGetMass = getMass;
182
183
  this.updateCfg(options);
183
184
  }
184
185
 
@@ -193,7 +194,7 @@ export class Force2Layout extends Base {
193
194
  // 如果传入了需要叶子节点聚类
194
195
  if (leafCluster) {
195
196
  sameTypeLeafMap = this.getSameTypeLeafMap() || {};
196
- const relativeNodesType = Array.from(new Set(nodes?.map(node => node[nodeClusterBy])))|| [];
197
+ const relativeNodesType = Array.from(new Set(nodes?.map(node => node[nodeClusterBy]))) || [];
197
198
  centripetalOptions = {
198
199
  single: 100,
199
200
  leaf: (node, nodes, edges) => {
@@ -298,7 +299,7 @@ export class Force2Layout extends Base {
298
299
  const self = this;
299
300
  self.stop();
300
301
  const { nodes, edges, defSpringLen } = self;
301
-
302
+
302
303
  self.judgingDistance = 0;
303
304
 
304
305
  if (!nodes || nodes.length === 0) {
@@ -324,7 +325,9 @@ export class Force2Layout extends Base {
324
325
  return;
325
326
  }
326
327
  self.degreesMap = getDegreeMap(nodes, edges);
327
- if (!self.getMass) {
328
+ if (self.propsGetMass) {
329
+ self.getMass = self.propsGetMass;
330
+ } else {
328
331
  self.getMass = (d) => {
329
332
  let massWeight = 1;
330
333
  if (isNumber(d.mass)) massWeight = d.mass;
@@ -352,7 +355,7 @@ export class Force2Layout extends Base {
352
355
  if (d.size) {
353
356
  if (isArray(d.size)) {
354
357
  return Math.max(d.size[0], d.size[1]) + nodeSpacingFunc(d);
355
- } if(isObject(d.size)) {
358
+ } if (isObject(d.size)) {
356
359
  return Math.max(d.size.width, d.size.height) + nodeSpacingFunc(d);
357
360
  }
358
361
  return (d.size as number) + nodeSpacingFunc(d);
@@ -418,7 +421,7 @@ export class Force2Layout extends Base {
418
421
  source: sourceNode,
419
422
  target: targetNode
420
423
  },
421
- sourceNode,
424
+ sourceNode,
422
425
  targetNode
423
426
  ) : self.linkDistance(edge, sourceNode, targetNode) || 1 + ((nodeSize(sourceNode) + nodeSize(sourceNode)) || 0) / 2
424
427
  })
@@ -427,7 +430,7 @@ export class Force2Layout extends Base {
427
430
 
428
431
  this.getCentripetalOptions();
429
432
 
430
- self.onLayoutEnd = self.onLayoutEnd || (() => {});
433
+ self.onLayoutEnd = self.onLayoutEnd || (() => { });
431
434
 
432
435
  self.run();
433
436
  }
@@ -448,7 +451,7 @@ export class Force2Layout extends Base {
448
451
  const silence = !animate;
449
452
  if (workerEnabled || silence) {
450
453
  let usedIter = 0;
451
- for (let i = 0; (self.judgingDistance > minMovement || i < 1) && i < maxIter; i++) {
454
+ for (let i = 0; (self.judgingDistance > minMovement || i < 1) && i < maxIter; i++) {
452
455
  usedIter = i;
453
456
  self.runOneStep(i, velArray);
454
457
  }
@@ -498,7 +501,7 @@ export class Force2Layout extends Base {
498
501
  const vx = accArray[2 * i];
499
502
  const vy = accArray[2 * i + 1];
500
503
  const speed2 = vx * vx + vy * vy;
501
- const { mass = 1} = nodeMap[node.id].data.layout.force;
504
+ const { mass = 1 } = nodeMap[node.id].data.layout.force;
502
505
  energy += mass * speed2 * 0.5; // p = 1/2*(mv^2)
503
506
  });
504
507
 
@@ -586,7 +589,7 @@ export class Force2Layout extends Base {
586
589
 
587
590
  if (centripetalOptions) {
588
591
  const { leaf, single, others, center: centriCenter } = centripetalOptions;
589
- const { x: centriX, y: centriY, centerStrength } = centriCenter?.(node, nodes, edges, width, height) || { x: 0, y: 0, centerStrength: 0};
592
+ const { x: centriX, y: centriY, centerStrength } = centriCenter?.(node, nodes, edges, width, height) || { x: 0, y: 0, centerStrength: 0 };
590
593
  if (!isNumber(centriX) || !isNumber(centriY)) continue;
591
594
  const vx = (node.x - centriX) / mass;
592
595
  const vy = (node.y - centriY) / mass;
@@ -603,7 +606,7 @@ export class Force2Layout extends Base {
603
606
  accArray[idx + 1] -= singleStrength * vy;
604
607
  continue;
605
608
  }
606
-
609
+
607
610
  // 没有出度或没有入度,都认为是叶子节点
608
611
  if (inDegree === 0 || outDegree === 0) {
609
612
  const leafStrength = leaf(node, nodes, edges);
@@ -677,7 +680,7 @@ export class Force2Layout extends Base {
677
680
  node.x = node.fx;
678
681
  node.y = node.fy;
679
682
  mappedNode.x = node.x;
680
- mappedNode.y = node.y;
683
+ mappedNode.y = node.y;
681
684
  return;
682
685
  }
683
686
  const distX = velArray[2 * i] * stepInterval;
@@ -685,7 +688,7 @@ export class Force2Layout extends Base {
685
688
  node.x += distX;
686
689
  node.y += distY;
687
690
  mappedNode.x = node.x;
688
- mappedNode.y = node.y;
691
+ mappedNode.y = node.y;
689
692
 
690
693
  const distanceMagnitude = Math.sqrt(distX * distX + distY * distY);
691
694
  switch (distanceThresholdMode) {
@@ -538,8 +538,8 @@ export class ForceAtlas2Layout extends Base {
538
538
  }
539
539
  // update the node positions
540
540
  for (let i = 0; i < nodeNum; i += 1) {
541
-
542
541
  if (prune && (degrees[i] <= 1)) continue;
542
+ if (isNumber(nodes[i].fx) && isNumber(nodes[i].fy)) continue;
543
543
 
544
544
  let sn = ks * sg / (1 + sg * Math.sqrt(swgns[i]));
545
545
  let absForce = Math.hypot(forces[2 * i], forces[2 * i + 1]);
@@ -4,7 +4,7 @@
4
4
  * this algorithm refers to <cytoscape.js> - https://github.com/cytoscape/cytoscape.js/
5
5
  */
6
6
 
7
- import { isString, getDegree, isNaN, getFuncByUnknownType } from "../util";
7
+ import { isString, getDegree, isNaN, getFuncByUnknownType, isArray } from "../util";
8
8
  import { Base } from "./base";
9
9
  import {
10
10
  OutNode,
@@ -239,12 +239,23 @@ export class GridLayout extends Base {
239
239
  node.y = 0;
240
240
  }
241
241
 
242
- const [nodew = 30, nodeh = 30] = nodeSize(node);
242
+ const res = nodeSize(node) || 30;
243
+
244
+ let nodeW;
245
+ let nodeH;
246
+
247
+ if (isArray(res)) {
248
+ nodeW = res[0];
249
+ nodeH = res[1];
250
+ } else {
251
+ nodeW = res;
252
+ nodeH = res;
253
+ }
243
254
 
244
255
  const p = nodeSpacing !== undefined ? nodeSpacing(node) : preventOverlapPadding;
245
256
 
246
- const w = nodew + p;
247
- const h = nodeh + p;
257
+ const w = nodeW + p;
258
+ const h = nodeH + p;
248
259
 
249
260
  self.cellWidth = Math.max(self.cellWidth, w);
250
261
  self.cellHeight = Math.max(self.cellHeight, h);
@@ -7,6 +7,8 @@ export interface Node {
7
7
  export interface OutNode extends Node {
8
8
  x: number;
9
9
  y: number;
10
+ fx?: number;
11
+ fy?: number;
10
12
  comboId?: string;
11
13
  layer?: number; // dagre布局中指定的层级
12
14
  _order?: number; // dagre布局中层内排序结果,用于增量布局
package/src/util/gpu.ts CHANGED
@@ -52,8 +52,10 @@ export const buildTextureData = (nodes: OutNode[], edges: Edge[]): {
52
52
  const e = edges[i];
53
53
  const source = getEdgeTerminal(e, 'source');
54
54
  const target = getEdgeTerminal(e, 'target');
55
- nodeDict[mapIdPos[source]].push(mapIdPos[target]);
56
- nodeDict[mapIdPos[target]].push(mapIdPos[source]);
55
+ if (!isNaN(mapIdPos[source]) && !isNaN(mapIdPos[target])) {
56
+ nodeDict[mapIdPos[source]].push(mapIdPos[target]);
57
+ nodeDict[mapIdPos[target]].push(mapIdPos[source]);
58
+ }
57
59
  }
58
60
 
59
61
  let maxEdgePerVetex = 0;
@@ -61,12 +63,13 @@ export const buildTextureData = (nodes: OutNode[], edges: Edge[]): {
61
63
  const offset: number = dataArray.length;
62
64
  const dests = nodeDict[i];
63
65
  const len = dests.length;
66
+ console.log('dests', dests, len)
64
67
  dataArray[i * 4 + 2] = offset;
65
- dataArray[i * 4 + 3] = dests.length;
66
- maxEdgePerVetex = Math.max(maxEdgePerVetex, dests.length);
68
+ dataArray[i * 4 + 3] = len;
69
+ maxEdgePerVetex = Math.max(maxEdgePerVetex, len);
67
70
  for (let j = 0; j < len; ++j) {
68
- const dest = dests[j];
69
- dataArray.push(+dest);
71
+ const dest = dests[j];
72
+ dataArray.push(+dest);
70
73
  }
71
74
  }
72
75