@antv/layout 0.3.11 → 1.0.0-alpha.0

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 (555) hide show
  1. package/README.md +45 -32
  2. package/dist/3a54d760230d1933f953.worker.js +2 -0
  3. package/dist/3a54d760230d1933f953.worker.js.map +1 -0
  4. package/dist/index.min.js +2 -0
  5. package/dist/index.min.js.map +1 -0
  6. package/lib/Circular.d.ts +40 -0
  7. package/lib/Supervisor.d.ts +65 -0
  8. package/lib/index.d.ts +3 -3
  9. package/lib/registry.d.ts +3 -0
  10. package/lib/types.d.ts +128 -0
  11. package/lib/util/gpu.d.ts +22 -22
  12. package/lib/util/index.d.ts +6 -6
  13. package/lib/util/math.d.ts +9 -4
  14. package/lib/worker.d.ts +3 -0
  15. package/package.json +21 -95
  16. package/dist/layout.min.js +0 -3
  17. package/dist/layout.min.js.LICENSE.txt +0 -1
  18. package/dist/layout.min.js.map +0 -1
  19. package/es/index.d.ts +0 -3
  20. package/es/index.js +0 -6
  21. package/es/index.js.map +0 -1
  22. package/es/layout/base.d.ts +0 -22
  23. package/es/layout/base.js +0 -51
  24. package/es/layout/base.js.map +0 -1
  25. package/es/layout/circular.d.ts +0 -80
  26. package/es/layout/circular.js +0 -314
  27. package/es/layout/circular.js.map +0 -1
  28. package/es/layout/comboCombined.d.ts +0 -54
  29. package/es/layout/comboCombined.js +0 -348
  30. package/es/layout/comboCombined.js.map +0 -1
  31. package/es/layout/comboForce.d.ts +0 -134
  32. package/es/layout/comboForce.js +0 -801
  33. package/es/layout/comboForce.js.map +0 -1
  34. package/es/layout/concentric.d.ts +0 -67
  35. package/es/layout/concentric.js +0 -219
  36. package/es/layout/concentric.js.map +0 -1
  37. package/es/layout/constants.d.ts +0 -12
  38. package/es/layout/constants.js +0 -22
  39. package/es/layout/constants.js.map +0 -1
  40. package/es/layout/dagre/graph.d.ts +0 -91
  41. package/es/layout/dagre/graph.js +0 -4
  42. package/es/layout/dagre/graph.js.map +0 -1
  43. package/es/layout/dagre/index.d.ts +0 -8
  44. package/es/layout/dagre/index.js +0 -31
  45. package/es/layout/dagre/index.js.map +0 -1
  46. package/es/layout/dagre/src/acyclic.d.ts +0 -6
  47. package/es/layout/dagre/src/acyclic.js +0 -52
  48. package/es/layout/dagre/src/acyclic.js.map +0 -1
  49. package/es/layout/dagre/src/add-border-segments.d.ts +0 -3
  50. package/es/layout/dagre/src/add-border-segments.js +0 -32
  51. package/es/layout/dagre/src/add-border-segments.js.map +0 -1
  52. package/es/layout/dagre/src/coordinate-system.d.ts +0 -6
  53. package/es/layout/dagre/src/coordinate-system.js +0 -69
  54. package/es/layout/dagre/src/coordinate-system.js.map +0 -1
  55. package/es/layout/dagre/src/data/list.d.ts +0 -12
  56. package/es/layout/dagre/src/data/list.js +0 -48
  57. package/es/layout/dagre/src/data/list.js.map +0 -1
  58. package/es/layout/dagre/src/debug.d.ts +0 -3
  59. package/es/layout/dagre/src/debug.js +0 -24
  60. package/es/layout/dagre/src/debug.js.map +0 -1
  61. package/es/layout/dagre/src/greedy-fas.d.ts +0 -3
  62. package/es/layout/dagre/src/greedy-fas.js +0 -114
  63. package/es/layout/dagre/src/greedy-fas.js.map +0 -1
  64. package/es/layout/dagre/src/layout.d.ts +0 -3
  65. package/es/layout/dagre/src/layout.js +0 -518
  66. package/es/layout/dagre/src/layout.js.map +0 -1
  67. package/es/layout/dagre/src/nesting-graph.d.ts +0 -6
  68. package/es/layout/dagre/src/nesting-graph.js +0 -117
  69. package/es/layout/dagre/src/nesting-graph.js.map +0 -1
  70. package/es/layout/dagre/src/normalize.d.ts +0 -6
  71. package/es/layout/dagre/src/normalize.js +0 -89
  72. package/es/layout/dagre/src/normalize.js.map +0 -1
  73. package/es/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
  74. package/es/layout/dagre/src/order/add-subgraph-constraints.js +0 -27
  75. package/es/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
  76. package/es/layout/dagre/src/order/barycenter.d.ts +0 -11
  77. package/es/layout/dagre/src/order/barycenter.js +0 -24
  78. package/es/layout/dagre/src/order/barycenter.js.map +0 -1
  79. package/es/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
  80. package/es/layout/dagre/src/order/build-layer-graph.js +0 -71
  81. package/es/layout/dagre/src/order/build-layer-graph.js.map +0 -1
  82. package/es/layout/dagre/src/order/cross-count.d.ts +0 -3
  83. package/es/layout/dagre/src/order/cross-count.js +0 -65
  84. package/es/layout/dagre/src/order/cross-count.js.map +0 -1
  85. package/es/layout/dagre/src/order/index.d.ts +0 -3
  86. package/es/layout/dagre/src/order/index.js +0 -91
  87. package/es/layout/dagre/src/order/index.js.map +0 -1
  88. package/es/layout/dagre/src/order/init-data-order.d.ts +0 -6
  89. package/es/layout/dagre/src/order/init-data-order.js +0 -25
  90. package/es/layout/dagre/src/order/init-data-order.js.map +0 -1
  91. package/es/layout/dagre/src/order/init-order.d.ts +0 -3
  92. package/es/layout/dagre/src/order/init-order.js +0 -52
  93. package/es/layout/dagre/src/order/init-order.js.map +0 -1
  94. package/es/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
  95. package/es/layout/dagre/src/order/resolve-conflicts.js +0 -93
  96. package/es/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
  97. package/es/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
  98. package/es/layout/dagre/src/order/sort-subgraph.js +0 -85
  99. package/es/layout/dagre/src/order/sort-subgraph.js.map +0 -1
  100. package/es/layout/dagre/src/order/sort.d.ts +0 -7
  101. package/es/layout/dagre/src/order/sort.js +0 -68
  102. package/es/layout/dagre/src/order/sort.js.map +0 -1
  103. package/es/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
  104. package/es/layout/dagre/src/parent-dummy-chains.js +0 -81
  105. package/es/layout/dagre/src/parent-dummy-chains.js.map +0 -1
  106. package/es/layout/dagre/src/position/bk.d.ts +0 -23
  107. package/es/layout/dagre/src/position/bk.js +0 -370
  108. package/es/layout/dagre/src/position/bk.js.map +0 -1
  109. package/es/layout/dagre/src/position/index.d.ts +0 -3
  110. package/es/layout/dagre/src/position/index.js +0 -51
  111. package/es/layout/dagre/src/position/index.js.map +0 -1
  112. package/es/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
  113. package/es/layout/dagre/src/rank/feasible-tree.js +0 -148
  114. package/es/layout/dagre/src/rank/feasible-tree.js.map +0 -1
  115. package/es/layout/dagre/src/rank/index.d.ts +0 -3
  116. package/es/layout/dagre/src/rank/index.js +0 -53
  117. package/es/layout/dagre/src/rank/index.js.map +0 -1
  118. package/es/layout/dagre/src/rank/network-simplex.d.ts +0 -9
  119. package/es/layout/dagre/src/rank/network-simplex.js +0 -195
  120. package/es/layout/dagre/src/rank/network-simplex.js.map +0 -1
  121. package/es/layout/dagre/src/rank/util.d.ts +0 -11
  122. package/es/layout/dagre/src/rank/util.js +0 -141
  123. package/es/layout/dagre/src/rank/util.js.map +0 -1
  124. package/es/layout/dagre/src/util.d.ts +0 -31
  125. package/es/layout/dagre/src/util.js +0 -261
  126. package/es/layout/dagre/src/util.js.map +0 -1
  127. package/es/layout/dagre.d.ts +0 -71
  128. package/es/layout/dagre.js +0 -433
  129. package/es/layout/dagre.js.map +0 -1
  130. package/es/layout/dagreCompound.d.ts +0 -121
  131. package/es/layout/dagreCompound.js +0 -391
  132. package/es/layout/dagreCompound.js.map +0 -1
  133. package/es/layout/er/core.d.ts +0 -1
  134. package/es/layout/er/core.js +0 -107
  135. package/es/layout/er/core.js.map +0 -1
  136. package/es/layout/er/forceGrid.d.ts +0 -8
  137. package/es/layout/er/forceGrid.js +0 -88
  138. package/es/layout/er/forceGrid.js.map +0 -1
  139. package/es/layout/er/grid.d.ts +0 -26
  140. package/es/layout/er/grid.js +0 -162
  141. package/es/layout/er/grid.js.map +0 -1
  142. package/es/layout/er/index.d.ts +0 -29
  143. package/es/layout/er/index.js +0 -54
  144. package/es/layout/er/index.js.map +0 -1
  145. package/es/layout/er/mysqlWorkbench.d.ts +0 -6
  146. package/es/layout/er/mysqlWorkbench.js +0 -324
  147. package/es/layout/er/mysqlWorkbench.js.map +0 -1
  148. package/es/layout/er/type.d.ts +0 -35
  149. package/es/layout/er/type.js +0 -2
  150. package/es/layout/er/type.js.map +0 -1
  151. package/es/layout/force/force-in-a-box.d.ts +0 -28
  152. package/es/layout/force/force-in-a-box.js +0 -330
  153. package/es/layout/force/force-in-a-box.js.map +0 -1
  154. package/es/layout/force/force.d.ts +0 -100
  155. package/es/layout/force/force.js +0 -340
  156. package/es/layout/force/force.js.map +0 -1
  157. package/es/layout/force/index.d.ts +0 -1
  158. package/es/layout/force/index.js +0 -2
  159. package/es/layout/force/index.js.map +0 -1
  160. package/es/layout/force2/ForceNBody.d.ts +0 -7
  161. package/es/layout/force2/ForceNBody.js +0 -94
  162. package/es/layout/force2/ForceNBody.js.map +0 -1
  163. package/es/layout/force2/index.d.ts +0 -119
  164. package/es/layout/force2/index.js +0 -608
  165. package/es/layout/force2/index.js.map +0 -1
  166. package/es/layout/forceAtlas2/body.d.ts +0 -33
  167. package/es/layout/forceAtlas2/body.js +0 -89
  168. package/es/layout/forceAtlas2/body.js.map +0 -1
  169. package/es/layout/forceAtlas2/index.d.ts +0 -115
  170. package/es/layout/forceAtlas2/index.js +0 -484
  171. package/es/layout/forceAtlas2/index.js.map +0 -1
  172. package/es/layout/forceAtlas2/quad.d.ts +0 -27
  173. package/es/layout/forceAtlas2/quad.js +0 -96
  174. package/es/layout/forceAtlas2/quad.js.map +0 -1
  175. package/es/layout/forceAtlas2/quadTree.d.ts +0 -20
  176. package/es/layout/forceAtlas2/quadTree.js +0 -103
  177. package/es/layout/forceAtlas2/quadTree.js.map +0 -1
  178. package/es/layout/fruchterman.d.ts +0 -73
  179. package/es/layout/fruchterman.js +0 -296
  180. package/es/layout/fruchterman.js.map +0 -1
  181. package/es/layout/gForce.d.ts +0 -96
  182. package/es/layout/gForce.js +0 -399
  183. package/es/layout/gForce.js.map +0 -1
  184. package/es/layout/gpu/fruchterman.d.ts +0 -57
  185. package/es/layout/gpu/fruchterman.js +0 -267
  186. package/es/layout/gpu/fruchterman.js.map +0 -1
  187. package/es/layout/gpu/fruchtermanShader.d.ts +0 -4
  188. package/es/layout/gpu/fruchtermanShader.js +0 -201
  189. package/es/layout/gpu/fruchtermanShader.js.map +0 -1
  190. package/es/layout/gpu/gForce.d.ts +0 -68
  191. package/es/layout/gpu/gForce.js +0 -330
  192. package/es/layout/gpu/gForce.js.map +0 -1
  193. package/es/layout/gpu/gForceShader.d.ts +0 -4
  194. package/es/layout/gpu/gForceShader.js +0 -218
  195. package/es/layout/gpu/gForceShader.js.map +0 -1
  196. package/es/layout/grid.d.ts +0 -83
  197. package/es/layout/grid.js +0 -317
  198. package/es/layout/grid.js.map +0 -1
  199. package/es/layout/index.d.ts +0 -22
  200. package/es/layout/index.js +0 -25
  201. package/es/layout/index.js.map +0 -1
  202. package/es/layout/layout.d.ts +0 -26
  203. package/es/layout/layout.js +0 -97
  204. package/es/layout/layout.js.map +0 -1
  205. package/es/layout/mds.d.ts +0 -39
  206. package/es/layout/mds.js +0 -122
  207. package/es/layout/mds.js.map +0 -1
  208. package/es/layout/radial/index.d.ts +0 -1
  209. package/es/layout/radial/index.js +0 -2
  210. package/es/layout/radial/index.js.map +0 -1
  211. package/es/layout/radial/mds.d.ts +0 -15
  212. package/es/layout/radial/mds.js +0 -38
  213. package/es/layout/radial/mds.js.map +0 -1
  214. package/es/layout/radial/radial.d.ts +0 -74
  215. package/es/layout/radial/radial.js +0 -420
  216. package/es/layout/radial/radial.js.map +0 -1
  217. package/es/layout/radial/radialNonoverlapForce.d.ts +0 -50
  218. package/es/layout/radial/radialNonoverlapForce.js +0 -123
  219. package/es/layout/radial/radialNonoverlapForce.js.map +0 -1
  220. package/es/layout/random.d.ts +0 -35
  221. package/es/layout/random.js +0 -62
  222. package/es/layout/random.js.map +0 -1
  223. package/es/layout/types.d.ts +0 -432
  224. package/es/layout/types.js +0 -2
  225. package/es/layout/types.js.map +0 -1
  226. package/es/registy/index.d.ts +0 -3
  227. package/es/registy/index.js +0 -41
  228. package/es/registy/index.js.map +0 -1
  229. package/es/util/array.d.ts +0 -1
  230. package/es/util/array.js +0 -2
  231. package/es/util/array.js.map +0 -1
  232. package/es/util/function.d.ts +0 -6
  233. package/es/util/function.js +0 -56
  234. package/es/util/function.js.map +0 -1
  235. package/es/util/gpu.d.ts +0 -52
  236. package/es/util/gpu.js +0 -239
  237. package/es/util/gpu.js.map +0 -1
  238. package/es/util/index.d.ts +0 -6
  239. package/es/util/index.js +0 -7
  240. package/es/util/index.js.map +0 -1
  241. package/es/util/math.d.ts +0 -43
  242. package/es/util/math.js +0 -253
  243. package/es/util/math.js.map +0 -1
  244. package/es/util/number.d.ts +0 -3
  245. package/es/util/number.js +0 -7
  246. package/es/util/number.js.map +0 -1
  247. package/es/util/object.d.ts +0 -2
  248. package/es/util/object.js +0 -25
  249. package/es/util/object.js.map +0 -1
  250. package/es/util/string.d.ts +0 -2
  251. package/es/util/string.js +0 -16
  252. package/es/util/string.js.map +0 -1
  253. package/lib/index.js +0 -24
  254. package/lib/index.js.map +0 -1
  255. package/lib/layout/base.d.ts +0 -22
  256. package/lib/layout/base.js +0 -56
  257. package/lib/layout/base.js.map +0 -1
  258. package/lib/layout/circular.d.ts +0 -80
  259. package/lib/layout/circular.js +0 -337
  260. package/lib/layout/circular.js.map +0 -1
  261. package/lib/layout/comboCombined.d.ts +0 -54
  262. package/lib/layout/comboCombined.js +0 -384
  263. package/lib/layout/comboCombined.js.map +0 -1
  264. package/lib/layout/comboForce.d.ts +0 -134
  265. package/lib/layout/comboForce.js +0 -826
  266. package/lib/layout/comboForce.js.map +0 -1
  267. package/lib/layout/concentric.d.ts +0 -67
  268. package/lib/layout/concentric.js +0 -243
  269. package/lib/layout/concentric.js.map +0 -1
  270. package/lib/layout/constants.d.ts +0 -12
  271. package/lib/layout/constants.js +0 -25
  272. package/lib/layout/constants.js.map +0 -1
  273. package/lib/layout/dagre/graph.d.ts +0 -91
  274. package/lib/layout/dagre/graph.js +0 -28
  275. package/lib/layout/dagre/graph.js.map +0 -1
  276. package/lib/layout/dagre/index.d.ts +0 -8
  277. package/lib/layout/dagre/index.js +0 -36
  278. package/lib/layout/dagre/index.js.map +0 -1
  279. package/lib/layout/dagre/src/acyclic.d.ts +0 -6
  280. package/lib/layout/dagre/src/acyclic.js +0 -57
  281. package/lib/layout/dagre/src/acyclic.js.map +0 -1
  282. package/lib/layout/dagre/src/add-border-segments.d.ts +0 -3
  283. package/lib/layout/dagre/src/add-border-segments.js +0 -34
  284. package/lib/layout/dagre/src/add-border-segments.js.map +0 -1
  285. package/lib/layout/dagre/src/coordinate-system.d.ts +0 -6
  286. package/lib/layout/dagre/src/coordinate-system.js +0 -71
  287. package/lib/layout/dagre/src/coordinate-system.js.map +0 -1
  288. package/lib/layout/dagre/src/data/list.d.ts +0 -12
  289. package/lib/layout/dagre/src/data/list.js +0 -52
  290. package/lib/layout/dagre/src/data/list.js.map +0 -1
  291. package/lib/layout/dagre/src/debug.d.ts +0 -3
  292. package/lib/layout/dagre/src/debug.js +0 -26
  293. package/lib/layout/dagre/src/debug.js.map +0 -1
  294. package/lib/layout/dagre/src/greedy-fas.d.ts +0 -3
  295. package/lib/layout/dagre/src/greedy-fas.js +0 -144
  296. package/lib/layout/dagre/src/greedy-fas.js.map +0 -1
  297. package/lib/layout/dagre/src/layout.d.ts +0 -3
  298. package/lib/layout/dagre/src/layout.js +0 -535
  299. package/lib/layout/dagre/src/layout.js.map +0 -1
  300. package/lib/layout/dagre/src/nesting-graph.d.ts +0 -6
  301. package/lib/layout/dagre/src/nesting-graph.js +0 -119
  302. package/lib/layout/dagre/src/nesting-graph.js.map +0 -1
  303. package/lib/layout/dagre/src/normalize.d.ts +0 -6
  304. package/lib/layout/dagre/src/normalize.js +0 -91
  305. package/lib/layout/dagre/src/normalize.js.map +0 -1
  306. package/lib/layout/dagre/src/order/add-subgraph-constraints.d.ts +0 -3
  307. package/lib/layout/dagre/src/order/add-subgraph-constraints.js +0 -29
  308. package/lib/layout/dagre/src/order/add-subgraph-constraints.js.map +0 -1
  309. package/lib/layout/dagre/src/order/barycenter.d.ts +0 -11
  310. package/lib/layout/dagre/src/order/barycenter.js +0 -26
  311. package/lib/layout/dagre/src/order/barycenter.js.map +0 -1
  312. package/lib/layout/dagre/src/order/build-layer-graph.d.ts +0 -3
  313. package/lib/layout/dagre/src/order/build-layer-graph.js +0 -73
  314. package/lib/layout/dagre/src/order/build-layer-graph.js.map +0 -1
  315. package/lib/layout/dagre/src/order/cross-count.d.ts +0 -3
  316. package/lib/layout/dagre/src/order/cross-count.js +0 -67
  317. package/lib/layout/dagre/src/order/cross-count.js.map +0 -1
  318. package/lib/layout/dagre/src/order/index.d.ts +0 -3
  319. package/lib/layout/dagre/src/order/index.js +0 -96
  320. package/lib/layout/dagre/src/order/index.js.map +0 -1
  321. package/lib/layout/dagre/src/order/init-data-order.d.ts +0 -6
  322. package/lib/layout/dagre/src/order/init-data-order.js +0 -27
  323. package/lib/layout/dagre/src/order/init-data-order.js.map +0 -1
  324. package/lib/layout/dagre/src/order/init-order.d.ts +0 -3
  325. package/lib/layout/dagre/src/order/init-order.js +0 -54
  326. package/lib/layout/dagre/src/order/init-order.js.map +0 -1
  327. package/lib/layout/dagre/src/order/resolve-conflicts.d.ts +0 -19
  328. package/lib/layout/dagre/src/order/resolve-conflicts.js +0 -98
  329. package/lib/layout/dagre/src/order/resolve-conflicts.js.map +0 -1
  330. package/lib/layout/dagre/src/order/sort-subgraph.d.ts +0 -7
  331. package/lib/layout/dagre/src/order/sort-subgraph.js +0 -90
  332. package/lib/layout/dagre/src/order/sort-subgraph.js.map +0 -1
  333. package/lib/layout/dagre/src/order/sort.d.ts +0 -7
  334. package/lib/layout/dagre/src/order/sort.js +0 -70
  335. package/lib/layout/dagre/src/order/sort.js.map +0 -1
  336. package/lib/layout/dagre/src/parent-dummy-chains.d.ts +0 -3
  337. package/lib/layout/dagre/src/parent-dummy-chains.js +0 -83
  338. package/lib/layout/dagre/src/parent-dummy-chains.js.map +0 -1
  339. package/lib/layout/dagre/src/position/bk.d.ts +0 -23
  340. package/lib/layout/dagre/src/position/bk.js +0 -409
  341. package/lib/layout/dagre/src/position/bk.js.map +0 -1
  342. package/lib/layout/dagre/src/position/index.d.ts +0 -3
  343. package/lib/layout/dagre/src/position/index.js +0 -64
  344. package/lib/layout/dagre/src/position/index.js.map +0 -1
  345. package/lib/layout/dagre/src/rank/feasible-tree.d.ts +0 -9
  346. package/lib/layout/dagre/src/rank/feasible-tree.js +0 -152
  347. package/lib/layout/dagre/src/rank/feasible-tree.js.map +0 -1
  348. package/lib/layout/dagre/src/rank/index.d.ts +0 -3
  349. package/lib/layout/dagre/src/rank/index.js +0 -58
  350. package/lib/layout/dagre/src/rank/index.js.map +0 -1
  351. package/lib/layout/dagre/src/rank/network-simplex.d.ts +0 -9
  352. package/lib/layout/dagre/src/rank/network-simplex.js +0 -205
  353. package/lib/layout/dagre/src/rank/network-simplex.js.map +0 -1
  354. package/lib/layout/dagre/src/rank/util.d.ts +0 -11
  355. package/lib/layout/dagre/src/rank/util.js +0 -146
  356. package/lib/layout/dagre/src/rank/util.js.map +0 -1
  357. package/lib/layout/dagre/src/util.d.ts +0 -31
  358. package/lib/layout/dagre/src/util.js +0 -280
  359. package/lib/layout/dagre/src/util.js.map +0 -1
  360. package/lib/layout/dagre.d.ts +0 -71
  361. package/lib/layout/dagre.js +0 -462
  362. package/lib/layout/dagre.js.map +0 -1
  363. package/lib/layout/dagreCompound.d.ts +0 -121
  364. package/lib/layout/dagreCompound.js +0 -429
  365. package/lib/layout/dagreCompound.js.map +0 -1
  366. package/lib/layout/er/core.d.ts +0 -1
  367. package/lib/layout/er/core.js +0 -147
  368. package/lib/layout/er/core.js.map +0 -1
  369. package/lib/layout/er/forceGrid.d.ts +0 -8
  370. package/lib/layout/er/forceGrid.js +0 -97
  371. package/lib/layout/er/forceGrid.js.map +0 -1
  372. package/lib/layout/er/grid.d.ts +0 -26
  373. package/lib/layout/er/grid.js +0 -177
  374. package/lib/layout/er/grid.js.map +0 -1
  375. package/lib/layout/er/index.d.ts +0 -29
  376. package/lib/layout/er/index.js +0 -80
  377. package/lib/layout/er/index.js.map +0 -1
  378. package/lib/layout/er/mysqlWorkbench.d.ts +0 -6
  379. package/lib/layout/er/mysqlWorkbench.js +0 -326
  380. package/lib/layout/er/mysqlWorkbench.js.map +0 -1
  381. package/lib/layout/er/type.d.ts +0 -35
  382. package/lib/layout/er/type.js +0 -3
  383. package/lib/layout/er/type.js.map +0 -1
  384. package/lib/layout/force/force-in-a-box.d.ts +0 -28
  385. package/lib/layout/force/force-in-a-box.js +0 -357
  386. package/lib/layout/force/force-in-a-box.js.map +0 -1
  387. package/lib/layout/force/force.d.ts +0 -100
  388. package/lib/layout/force/force.js +0 -388
  389. package/lib/layout/force/force.js.map +0 -1
  390. package/lib/layout/force/index.d.ts +0 -1
  391. package/lib/layout/force/index.js +0 -18
  392. package/lib/layout/force/index.js.map +0 -1
  393. package/lib/layout/force2/ForceNBody.d.ts +0 -7
  394. package/lib/layout/force2/ForceNBody.js +0 -98
  395. package/lib/layout/force2/ForceNBody.js.map +0 -1
  396. package/lib/layout/force2/index.d.ts +0 -119
  397. package/lib/layout/force2/index.js +0 -643
  398. package/lib/layout/force2/index.js.map +0 -1
  399. package/lib/layout/forceAtlas2/body.d.ts +0 -33
  400. package/lib/layout/forceAtlas2/body.js +0 -93
  401. package/lib/layout/forceAtlas2/body.js.map +0 -1
  402. package/lib/layout/forceAtlas2/index.d.ts +0 -115
  403. package/lib/layout/forceAtlas2/index.js +0 -509
  404. package/lib/layout/forceAtlas2/index.js.map +0 -1
  405. package/lib/layout/forceAtlas2/quad.d.ts +0 -27
  406. package/lib/layout/forceAtlas2/quad.js +0 -100
  407. package/lib/layout/forceAtlas2/quad.js.map +0 -1
  408. package/lib/layout/forceAtlas2/quadTree.d.ts +0 -20
  409. package/lib/layout/forceAtlas2/quadTree.js +0 -107
  410. package/lib/layout/forceAtlas2/quadTree.js.map +0 -1
  411. package/lib/layout/fruchterman.d.ts +0 -73
  412. package/lib/layout/fruchterman.js +0 -320
  413. package/lib/layout/fruchterman.js.map +0 -1
  414. package/lib/layout/gForce.d.ts +0 -96
  415. package/lib/layout/gForce.js +0 -421
  416. package/lib/layout/gForce.js.map +0 -1
  417. package/lib/layout/gpu/fruchterman.d.ts +0 -57
  418. package/lib/layout/gpu/fruchterman.js +0 -361
  419. package/lib/layout/gpu/fruchterman.js.map +0 -1
  420. package/lib/layout/gpu/fruchtermanShader.d.ts +0 -4
  421. package/lib/layout/gpu/fruchtermanShader.js +0 -8
  422. package/lib/layout/gpu/fruchtermanShader.js.map +0 -1
  423. package/lib/layout/gpu/gForce.d.ts +0 -68
  424. package/lib/layout/gpu/gForce.js +0 -415
  425. package/lib/layout/gpu/gForce.js.map +0 -1
  426. package/lib/layout/gpu/gForceShader.d.ts +0 -4
  427. package/lib/layout/gpu/gForceShader.js +0 -8
  428. package/lib/layout/gpu/gForceShader.js.map +0 -1
  429. package/lib/layout/grid.d.ts +0 -83
  430. package/lib/layout/grid.js +0 -339
  431. package/lib/layout/grid.js.map +0 -1
  432. package/lib/layout/index.d.ts +0 -22
  433. package/lib/layout/index.js +0 -59
  434. package/lib/layout/index.js.map +0 -1
  435. package/lib/layout/layout.d.ts +0 -26
  436. package/lib/layout/layout.js +0 -102
  437. package/lib/layout/layout.js.map +0 -1
  438. package/lib/layout/mds.d.ts +0 -39
  439. package/lib/layout/mds.js +0 -144
  440. package/lib/layout/mds.js.map +0 -1
  441. package/lib/layout/radial/index.d.ts +0 -1
  442. package/lib/layout/radial/index.js +0 -18
  443. package/lib/layout/radial/index.js.map +0 -1
  444. package/lib/layout/radial/mds.d.ts +0 -15
  445. package/lib/layout/radial/mds.js +0 -42
  446. package/lib/layout/radial/mds.js.map +0 -1
  447. package/lib/layout/radial/radial.d.ts +0 -74
  448. package/lib/layout/radial/radial.js +0 -445
  449. package/lib/layout/radial/radial.js.map +0 -1
  450. package/lib/layout/radial/radialNonoverlapForce.d.ts +0 -50
  451. package/lib/layout/radial/radialNonoverlapForce.js +0 -127
  452. package/lib/layout/radial/radialNonoverlapForce.js.map +0 -1
  453. package/lib/layout/random.d.ts +0 -35
  454. package/lib/layout/random.js +0 -84
  455. package/lib/layout/random.js.map +0 -1
  456. package/lib/layout/types.d.ts +0 -432
  457. package/lib/layout/types.js +0 -3
  458. package/lib/layout/types.js.map +0 -1
  459. package/lib/registy/index.d.ts +0 -3
  460. package/lib/registy/index.js +0 -65
  461. package/lib/registy/index.js.map +0 -1
  462. package/lib/util/array.js +0 -5
  463. package/lib/util/array.js.map +0 -1
  464. package/lib/util/function.js +0 -65
  465. package/lib/util/function.js.map +0 -1
  466. package/lib/util/gpu.js +0 -250
  467. package/lib/util/gpu.js.map +0 -1
  468. package/lib/util/index.js +0 -23
  469. package/lib/util/index.js.map +0 -1
  470. package/lib/util/math.js +0 -266
  471. package/lib/util/math.js.map +0 -1
  472. package/lib/util/number.js +0 -13
  473. package/lib/util/number.js.map +0 -1
  474. package/lib/util/object.js +0 -43
  475. package/lib/util/object.js.map +0 -1
  476. package/lib/util/string.js +0 -20
  477. package/lib/util/string.js.map +0 -1
  478. package/src/index.ts +0 -7
  479. package/src/layout/base.ts +0 -57
  480. package/src/layout/circular.ts +0 -370
  481. package/src/layout/comboCombined.ts +0 -391
  482. package/src/layout/comboForce.ts +0 -873
  483. package/src/layout/concentric.ts +0 -289
  484. package/src/layout/constants.ts +0 -22
  485. package/src/layout/dagre/graph.ts +0 -104
  486. package/src/layout/dagre/index.ts +0 -31
  487. package/src/layout/dagre/src/acyclic.ts +0 -58
  488. package/src/layout/dagre/src/add-border-segments.ts +0 -47
  489. package/src/layout/dagre/src/coordinate-system.ts +0 -77
  490. package/src/layout/dagre/src/data/list.ts +0 -60
  491. package/src/layout/dagre/src/debug.ts +0 -30
  492. package/src/layout/dagre/src/greedy-fas.ts +0 -144
  493. package/src/layout/dagre/src/layout.ts +0 -579
  494. package/src/layout/dagre/src/nesting-graph.ts +0 -143
  495. package/src/layout/dagre/src/normalize.ts +0 -96
  496. package/src/layout/dagre/src/order/add-subgraph-constraints.ts +0 -29
  497. package/src/layout/dagre/src/order/barycenter.ts +0 -26
  498. package/src/layout/dagre/src/order/build-layer-graph.ts +0 -82
  499. package/src/layout/dagre/src/order/cross-count.ts +0 -77
  500. package/src/layout/dagre/src/order/index.ts +0 -105
  501. package/src/layout/dagre/src/order/init-data-order.ts +0 -27
  502. package/src/layout/dagre/src/order/init-order.ts +0 -56
  503. package/src/layout/dagre/src/order/resolve-conflicts.ts +0 -152
  504. package/src/layout/dagre/src/order/sort-subgraph.ts +0 -105
  505. package/src/layout/dagre/src/order/sort.ts +0 -76
  506. package/src/layout/dagre/src/parent-dummy-chains.ts +0 -102
  507. package/src/layout/dagre/src/position/bk.ts +0 -493
  508. package/src/layout/dagre/src/position/index.ts +0 -82
  509. package/src/layout/dagre/src/rank/feasible-tree.ts +0 -165
  510. package/src/layout/dagre/src/rank/index.ts +0 -54
  511. package/src/layout/dagre/src/rank/network-simplex.ts +0 -225
  512. package/src/layout/dagre/src/rank/util.ts +0 -166
  513. package/src/layout/dagre/src/util.ts +0 -309
  514. package/src/layout/dagre.ts +0 -460
  515. package/src/layout/dagreCompound.ts +0 -518
  516. package/src/layout/er/core.ts +0 -117
  517. package/src/layout/er/forceGrid.ts +0 -95
  518. package/src/layout/er/grid.ts +0 -185
  519. package/src/layout/er/index.ts +0 -68
  520. package/src/layout/er/mysqlWorkbench.ts +0 -345
  521. package/src/layout/er/type.ts +0 -39
  522. package/src/layout/force/force-in-a-box.ts +0 -400
  523. package/src/layout/force/force.ts +0 -391
  524. package/src/layout/force/index.ts +0 -1
  525. package/src/layout/force2/ForceNBody.ts +0 -128
  526. package/src/layout/force2/index.ts +0 -741
  527. package/src/layout/forceAtlas2/body.ts +0 -115
  528. package/src/layout/forceAtlas2/index.ts +0 -556
  529. package/src/layout/forceAtlas2/quad.ts +0 -115
  530. package/src/layout/forceAtlas2/quadTree.ts +0 -107
  531. package/src/layout/fruchterman.ts +0 -361
  532. package/src/layout/gForce.ts +0 -488
  533. package/src/layout/gpu/fruchterman.ts +0 -314
  534. package/src/layout/gpu/fruchtermanShader.ts +0 -203
  535. package/src/layout/gpu/gForce.ts +0 -407
  536. package/src/layout/gpu/gForceShader.ts +0 -220
  537. package/src/layout/grid.ts +0 -404
  538. package/src/layout/index.ts +0 -47
  539. package/src/layout/layout.ts +0 -110
  540. package/src/layout/mds.ts +0 -140
  541. package/src/layout/radial/index.ts +0 -1
  542. package/src/layout/radial/mds.ts +0 -51
  543. package/src/layout/radial/radial.ts +0 -500
  544. package/src/layout/radial/radialNonoverlapForce.ts +0 -189
  545. package/src/layout/random.ts +0 -75
  546. package/src/layout/types.ts +0 -496
  547. package/src/registy/index.ts +0 -43
  548. package/src/util/array.ts +0 -1
  549. package/src/util/function.ts +0 -64
  550. package/src/util/gpu.ts +0 -256
  551. package/src/util/index.ts +0 -6
  552. package/src/util/math.ts +0 -272
  553. package/src/util/number.ts +0 -8
  554. package/src/util/object.ts +0 -28
  555. package/src/util/string.ts +0 -18
@@ -1,340 +0,0 @@
1
- /**
2
- * @fileOverview random layout
3
- * @author shiwu.wyy@antfin.com
4
- */
5
- import * as d3Force from "d3-force";
6
- import forceInABox from "./force-in-a-box";
7
- import { isArray, isFunction, isNumber, isObject } from "../../util";
8
- import { Base } from "../base";
9
- import { LAYOUT_MESSAGE } from "../constants";
10
- /**
11
- * 经典力导布局 force-directed
12
- */
13
- export class ForceLayout extends Base {
14
- constructor(options) {
15
- super();
16
- /** 向心力作用点 */
17
- this.center = [0, 0];
18
- /** 节点作用力 */
19
- this.nodeStrength = null;
20
- /** 边的作用力, 默认为根据节点的入度出度自适应 */
21
- this.edgeStrength = null;
22
- /** 是否防止节点相互覆盖 */
23
- this.preventOverlap = false;
24
- /** 聚类节点作用力 */
25
- this.clusterNodeStrength = null;
26
- /** 聚类边作用力 */
27
- this.clusterEdgeStrength = null;
28
- /** 聚类边长度 */
29
- this.clusterEdgeDistance = null;
30
- /** 聚类节点大小 / 直径,直径越大,越分散 */
31
- this.clusterNodeSize = null;
32
- /** 用于 foci 的力 */
33
- this.clusterFociStrength = null;
34
- /** 默认边长度 */
35
- this.linkDistance = 50;
36
- /** 迭代阈值的衰减率 [0, 1],0.028 对应最大迭代数为 300 */
37
- this.alphaDecay = 0.028;
38
- /** 停止迭代的阈值 */
39
- this.alphaMin = 0.001;
40
- /** 当前阈值 */
41
- this.alpha = 0.3;
42
- /** 防止重叠的力强度 */
43
- this.collideStrength = 1;
44
- /** 是否启用web worker。前提是在web worker里执行布局,否则无效 */
45
- this.workerEnabled = false;
46
- this.tick = () => { };
47
- /** 布局完成回调 */
48
- this.onLayoutEnd = () => { };
49
- /** 是否正在布局 */
50
- this.ticking = undefined;
51
- if (options) {
52
- this.updateCfg(options);
53
- }
54
- }
55
- getDefaultCfg() {
56
- return {
57
- center: [0, 0],
58
- nodeStrength: null,
59
- edgeStrength: null,
60
- preventOverlap: false,
61
- nodeSize: undefined,
62
- nodeSpacing: undefined,
63
- linkDistance: 50,
64
- forceSimulation: null,
65
- alphaDecay: 0.028,
66
- alphaMin: 0.001,
67
- alpha: 0.3,
68
- collideStrength: 1,
69
- clustering: false,
70
- clusterNodeStrength: -1,
71
- clusterEdgeStrength: 0.1,
72
- clusterEdgeDistance: 100,
73
- clusterFociStrength: 0.8,
74
- clusterNodeSize: 10,
75
- tick() { },
76
- onLayoutEnd() { },
77
- // 是否启用web worker。前提是在web worker里执行布局,否则无效
78
- workerEnabled: false
79
- };
80
- }
81
- /**
82
- * 初始化
83
- * @param {object} data 数据
84
- */
85
- init(data) {
86
- const self = this;
87
- self.nodes = data.nodes || [];
88
- const edges = data.edges || [];
89
- self.edges = edges.map((edge) => {
90
- const res = {};
91
- const expectKeys = ["targetNode", "sourceNode", "startPoint", "endPoint"];
92
- Object.keys(edge).forEach((key) => {
93
- if (!(expectKeys.indexOf(key) > -1)) {
94
- res[key] = edge[key];
95
- }
96
- });
97
- return res;
98
- });
99
- self.ticking = false;
100
- }
101
- /**
102
- * 执行布局
103
- */
104
- execute(reloadData) {
105
- const self = this;
106
- const nodes = self.nodes;
107
- const edges = self.edges;
108
- // 如果正在布局,忽略布局请求
109
- if (self.ticking) {
110
- return;
111
- }
112
- let simulation = self.forceSimulation;
113
- const alphaMin = self.alphaMin;
114
- const alphaDecay = self.alphaDecay;
115
- const alpha = self.alpha;
116
- if (!simulation) {
117
- try {
118
- // 定义节点的力
119
- const nodeForce = d3Force.forceManyBody();
120
- if (self.nodeStrength) {
121
- nodeForce.strength(self.nodeStrength);
122
- }
123
- simulation = d3Force.forceSimulation().nodes(nodes);
124
- if (self.clustering) {
125
- const clusterForce = forceInABox();
126
- clusterForce
127
- .centerX(self.center[0])
128
- .centerY(self.center[1])
129
- .template("force")
130
- .strength(self.clusterFociStrength);
131
- if (edges) {
132
- clusterForce.links(edges);
133
- }
134
- if (nodes) {
135
- clusterForce.nodes(nodes);
136
- }
137
- clusterForce
138
- .forceLinkDistance(self.clusterEdgeDistance)
139
- .forceLinkStrength(self.clusterEdgeStrength)
140
- .forceCharge(self.clusterNodeStrength)
141
- .forceNodeSize(self.clusterNodeSize);
142
- self.clusterForce = clusterForce;
143
- simulation.force("group", clusterForce);
144
- }
145
- simulation
146
- .force("center", d3Force.forceCenter(self.center[0], self.center[1]))
147
- .force("charge", nodeForce)
148
- .alpha(alpha)
149
- .alphaDecay(alphaDecay)
150
- .alphaMin(alphaMin);
151
- if (self.preventOverlap) {
152
- self.overlapProcess(simulation);
153
- }
154
- // 如果有边,定义边的力
155
- if (edges) {
156
- // d3 的 forceLayout 会重新生成边的数据模型,为了避免污染源数据
157
- const edgeForce = d3Force
158
- .forceLink()
159
- .id((d) => d.id)
160
- .links(edges);
161
- if (self.edgeStrength) {
162
- edgeForce.strength(self.edgeStrength);
163
- }
164
- if (self.linkDistance) {
165
- edgeForce.distance(self.linkDistance);
166
- }
167
- self.edgeForce = edgeForce;
168
- simulation.force("link", edgeForce);
169
- }
170
- if (self.workerEnabled && !isInWorker()) {
171
- // 如果不是运行在web worker里,不用web worker布局
172
- self.workerEnabled = false;
173
- console.warn("workerEnabled option is only supported when running in web worker.");
174
- }
175
- if (!self.workerEnabled) {
176
- simulation
177
- .on("tick", () => {
178
- self.tick();
179
- })
180
- .on("end", () => {
181
- self.ticking = false;
182
- if (self.onLayoutEnd)
183
- self.onLayoutEnd();
184
- });
185
- self.ticking = true;
186
- }
187
- else {
188
- // worker is enabled
189
- simulation.stop();
190
- const totalTicks = getSimulationTicks(simulation);
191
- for (let currentTick = 1; currentTick <= totalTicks; currentTick++) {
192
- simulation.tick();
193
- // currentTick starts from 1.
194
- postMessage({
195
- nodes,
196
- currentTick,
197
- totalTicks,
198
- type: LAYOUT_MESSAGE.TICK
199
- }, undefined);
200
- }
201
- self.ticking = false;
202
- }
203
- self.forceSimulation = simulation;
204
- self.ticking = true;
205
- }
206
- catch (e) {
207
- self.ticking = false;
208
- console.warn(e);
209
- }
210
- }
211
- else {
212
- if (reloadData) {
213
- if (self.clustering && self.clusterForce) {
214
- self.clusterForce.nodes(nodes);
215
- self.clusterForce.links(edges);
216
- }
217
- simulation.nodes(nodes);
218
- if (edges && self.edgeForce)
219
- self.edgeForce.links(edges);
220
- else if (edges && !self.edgeForce) {
221
- // d3 的 forceLayout 会重新生成边的数据模型,为了避免污染源数据
222
- const edgeForce = d3Force
223
- .forceLink()
224
- .id((d) => d.id)
225
- .links(edges);
226
- if (self.edgeStrength) {
227
- edgeForce.strength(self.edgeStrength);
228
- }
229
- if (self.linkDistance) {
230
- edgeForce.distance(self.linkDistance);
231
- }
232
- self.edgeForce = edgeForce;
233
- simulation.force("link", edgeForce);
234
- }
235
- }
236
- if (self.preventOverlap) {
237
- self.overlapProcess(simulation);
238
- }
239
- simulation.alpha(alpha).restart();
240
- this.ticking = true;
241
- }
242
- }
243
- /**
244
- * 防止重叠
245
- * @param {object} simulation 力模拟模型
246
- */
247
- overlapProcess(simulation) {
248
- const self = this;
249
- const nodeSize = self.nodeSize;
250
- const nodeSpacing = self.nodeSpacing;
251
- let nodeSizeFunc;
252
- let nodeSpacingFunc;
253
- const collideStrength = self.collideStrength;
254
- if (isNumber(nodeSpacing)) {
255
- nodeSpacingFunc = () => nodeSpacing;
256
- }
257
- else if (isFunction(nodeSpacing)) {
258
- nodeSpacingFunc = nodeSpacing;
259
- }
260
- else {
261
- nodeSpacingFunc = () => 0;
262
- }
263
- if (!nodeSize) {
264
- nodeSizeFunc = (d) => {
265
- if (d.size) {
266
- if (isArray(d.size)) {
267
- const res = d.size[0] > d.size[1] ? d.size[0] : d.size[1];
268
- return res / 2 + nodeSpacingFunc(d);
269
- }
270
- if (isObject(d.size)) {
271
- const res = d.size.width > d.size.height ? d.size.width : d.size.height;
272
- return res / 2 + nodeSpacingFunc(d);
273
- }
274
- return d.size / 2 + nodeSpacingFunc(d);
275
- }
276
- return 10 + nodeSpacingFunc(d);
277
- };
278
- }
279
- else if (isFunction(nodeSize)) {
280
- nodeSizeFunc = (d) => {
281
- const size = nodeSize(d);
282
- return size + nodeSpacingFunc(d);
283
- };
284
- }
285
- else if (isArray(nodeSize)) {
286
- const larger = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1];
287
- const radius = larger / 2;
288
- nodeSizeFunc = (d) => radius + nodeSpacingFunc(d);
289
- }
290
- else if (isNumber(nodeSize)) {
291
- const radius = nodeSize / 2;
292
- nodeSizeFunc = (d) => radius + nodeSpacingFunc(d);
293
- }
294
- else {
295
- nodeSizeFunc = () => 10;
296
- }
297
- // forceCollide's parameter is a radius
298
- simulation.force("collisionForce", d3Force.forceCollide(nodeSizeFunc).strength(collideStrength));
299
- }
300
- /**
301
- * 更新布局配置,但不执行布局
302
- * @param {object} cfg 需要更新的配置项
303
- */
304
- updateCfg(cfg) {
305
- const self = this;
306
- if (self.ticking) {
307
- self.forceSimulation.stop();
308
- self.ticking = false;
309
- }
310
- self.forceSimulation = null;
311
- Object.assign(self, cfg);
312
- }
313
- destroy() {
314
- const self = this;
315
- if (self.ticking) {
316
- self.forceSimulation.stop();
317
- self.ticking = false;
318
- }
319
- self.nodes = null;
320
- self.edges = null;
321
- self.destroyed = true;
322
- }
323
- }
324
- // Return total ticks of d3-force simulation
325
- function getSimulationTicks(simulation) {
326
- const alphaMin = simulation.alphaMin();
327
- const alphaTarget = simulation.alphaTarget();
328
- const alpha = simulation.alpha();
329
- const totalTicksFloat = Math.log((alphaMin - alphaTarget) / (alpha - alphaTarget)) /
330
- Math.log(1 - simulation.alphaDecay());
331
- const totalTicks = Math.ceil(totalTicksFloat);
332
- return totalTicks;
333
- }
334
- // 判断是否运行在web worker里
335
- function isInWorker() {
336
- // eslint-disable-next-line no-undef
337
- return (typeof WorkerGlobalScope !== "undefined" &&
338
- self instanceof WorkerGlobalScope);
339
- }
340
- //# sourceMappingURL=force.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"force.js","sourceRoot":"","sources":["../../../src/layout/force/force.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,IAAI;IAsEnC,YAAY,OAA4B;QACtC,KAAK,EAAE,CAAC;QAtEV,aAAa;QACN,WAAM,GAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnC,YAAY;QACL,iBAAY,GAAkB,IAAI,CAAC;QAE1C,6BAA6B;QACtB,iBAAY,GAAkB,IAAI,CAAC;QAE1C,iBAAiB;QACV,mBAAc,GAAY,KAAK,CAAC;QAWvC,cAAc;QACP,wBAAmB,GAAkB,IAAI,CAAC;QAEjD,aAAa;QACN,wBAAmB,GAAkB,IAAI,CAAC;QAEjD,YAAY;QACL,wBAAmB,GAAkB,IAAI,CAAC;QAEjD,2BAA2B;QACpB,oBAAe,GAAkB,IAAI,CAAC;QAE7C,iBAAiB;QACV,wBAAmB,GAAkB,IAAI,CAAC;QAEjD,YAAY;QACL,iBAAY,GAAW,EAAE,CAAC;QAKjC,yCAAyC;QAClC,eAAU,GAAW,KAAK,CAAC;QAElC,cAAc;QACP,aAAQ,GAAW,KAAK,CAAC;QAEhC,WAAW;QACJ,UAAK,GAAW,GAAG,CAAC;QAE3B,eAAe;QACR,oBAAe,GAAW,CAAC,CAAC;QAEnC,8CAA8C;QACvC,kBAAa,GAAY,KAAK,CAAC;QAE/B,SAAI,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAEnC,aAAa;QACN,gBAAW,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAE1C,aAAa;QACL,YAAO,GAAwB,SAAS,CAAC;QAQ/C,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAEM,aAAa;QAClB,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,IAAI;YACrB,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,GAAG;YACV,eAAe,EAAE,CAAC;YAClB,UAAU,EAAE,KAAK;YACjB,mBAAmB,EAAE,CAAC,CAAC;YACvB,mBAAmB,EAAE,GAAG;YACxB,mBAAmB,EAAE,GAAG;YACxB,mBAAmB,EAAE,GAAG;YACxB,eAAe,EAAE,EAAE;YACnB,IAAI,KAAI,CAAC;YACT,WAAW,KAAI,CAAC;YAChB,0CAA0C;YAC1C,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,IAAI,CAAC,IAAW;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,GAAG,GAAQ,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAe,EAAE,EAAE;gBAC5C,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBACnC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,UAAoB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,gBAAgB;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QACD,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE;YACf,IAAI;gBACF,SAAS;gBACT,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBACD,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,KAAY,CAAC,CAAC;gBAE3D,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,MAAM,YAAY,GAAG,WAAW,EAAS,CAAC;oBAC1C,YAAY;yBACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;yBACvB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;yBACvB,QAAQ,CAAC,OAAO,CAAC;yBACjB,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACtC,IAAI,KAAK,EAAE;wBACT,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC3B;oBACD,IAAI,KAAK,EAAE;wBACT,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC3B;oBACD,YAAY;yBACT,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC;yBAC3C,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC;yBAC3C,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;yBACrC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAEvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;oBACjC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;iBACzC;gBACD,UAAU;qBACP,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;qBACpE,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;qBAC1B,KAAK,CAAC,KAAK,CAAC;qBACZ,UAAU,CAAC,UAAU,CAAC;qBACtB,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAEtB,IAAI,IAAI,CAAC,cAAc,EAAE;oBACvB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;iBACjC;gBACD,aAAa;gBACb,IAAI,KAAK,EAAE;oBACT,yCAAyC;oBACzC,MAAM,SAAS,GAAG,OAAO;yBACtB,SAAS,EAAE;yBACX,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACpB,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChB,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBACvC;oBACD,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACrC;gBACD,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,EAAE;oBACvC,oCAAoC;oBACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,OAAO,CAAC,IAAI,CACV,oEAAoE,CACrE,CAAC;iBACH;gBACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACvB,UAAU;yBACP,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;wBACf,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,CAAC,CAAC;yBACD,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;wBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;wBACrB,IAAI,IAAI,CAAC,WAAW;4BAAE,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC3C,CAAC,CAAC,CAAC;oBACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;iBACrB;qBAAM;oBACL,oBAAoB;oBACpB,UAAU,CAAC,IAAI,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAClD,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,EAAE;wBAClE,UAAU,CAAC,IAAI,EAAE,CAAC;wBAClB,6BAA6B;wBAC7B,WAAW,CACT;4BACE,KAAK;4BACL,WAAW;4BACX,UAAU;4BACV,IAAI,EAAE,cAAc,CAAC,IAAI;yBAC1B,EACD,SAAgB,CACjB,CAAC;qBACH;oBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;iBACtB;gBAED,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;gBAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACrB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACjB;SACF;aAAM;YACL,IAAI,UAAU,EAAE;gBACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;oBACxC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAChC;gBACD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBACpD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACjC,yCAAyC;oBACzC,MAAM,SAAS,GAAG,OAAO;yBACtB,SAAS,EAAE;yBACX,EAAE,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBACpB,KAAK,CAAC,KAAK,CAAC,CAAC;oBAChB,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBACvC;oBACD,IAAI,IAAI,CAAC,YAAY,EAAE;wBACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBACvC;oBACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACrC;aACF;YACD,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;aACjC;YACD,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;IACH,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,UAAe;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,YAAgC,CAAC;QACrC,IAAI,eAAoB,CAAC;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAE7C,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;YACzB,eAAe,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;SACrC;aAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;YAClC,eAAe,GAAG,WAAW,CAAC;SAC/B;aAAM;YACL,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SAC3B;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE;gBACnB,IAAI,CAAC,CAAC,IAAI,EAAE;oBACV,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBACnB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC1D,OAAO,GAAG,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;qBACrC;oBAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBACvB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;wBACxE,OAAO,GAAG,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;qBACrC;oBACD,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;iBACxC;gBACD,OAAO,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC;SACH;aAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC/B,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC;SACH;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;YAC1B,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC7B,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC;YAC5B,YAAY,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;SACnD;aAAM;YACL,YAAY,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;SACzB;QAED,uCAAuC;QACvC,UAAU,CAAC,KAAK,CACd,gBAAgB,EAChB,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,SAAS,CAAC,GAAuB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF;AAED,4CAA4C;AAC5C,SAAS,kBAAkB,CAAC,UAAe;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;IACjC,MAAM,eAAe,GACnB,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,OAAO,UAAU,CAAC;AACpB,CAAC;AAGD,qBAAqB;AACrB,SAAS,UAAU;IACjB,oCAAoC;IACpC,OAAO,CACL,OAAO,iBAAiB,KAAK,WAAW;QACxC,IAAI,YAAY,iBAAiB,CAClC,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- export * from './force';
@@ -1,2 +0,0 @@
1
- export * from './force';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/force/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -1,7 +0,0 @@
1
- import { NodeMap } from '..';
2
- interface Node {
3
- x: number;
4
- y: number;
5
- }
6
- export declare function forceNBody(nodes: Node[], nodeMap: NodeMap, factor: number, coulombDisScale2: number, accArray: number[]): number[];
7
- export {};
@@ -1,94 +0,0 @@
1
- import { quadtree } from 'd3-quadtree';
2
- const theta2 = 0.81; // Barnes-Hut approximation threshold
3
- const epsilon = 0.1; // 为了防止出现除0的情况,加一个epsilon
4
- export function forceNBody(nodes, nodeMap, factor, coulombDisScale2, accArray) {
5
- const weightParam = factor / coulombDisScale2;
6
- const data = nodes.map((n, i) => {
7
- // @ts-ignore
8
- const mappedNode = nodeMap[n.id];
9
- // @ts-ignore
10
- const { data: nodeData, x, y, size } = mappedNode;
11
- const { nodeStrength } = nodeData.layout.force;
12
- return {
13
- x,
14
- y,
15
- size,
16
- index: i,
17
- vx: 0,
18
- vy: 0,
19
- weight: weightParam * nodeStrength,
20
- };
21
- });
22
- const tree = quadtree(data, (d) => d.x, (d) => d.y).visitAfter(accumulate); // init internal node
23
- data.forEach((n) => {
24
- // @ts-ignore
25
- computeForce(n, tree);
26
- });
27
- data.map((n, i) => {
28
- // @ts-ignore
29
- const mappedNode = nodeMap[nodes[i].id];
30
- // @ts-ignore
31
- const { mass = 1 } = mappedNode.data.layout.force;
32
- // 从 0 开始,= 初始化 + 加斥力
33
- accArray[2 * i] = n.vx / mass;
34
- accArray[2 * i + 1] = n.vy / mass;
35
- });
36
- return accArray;
37
- }
38
- // @ts-ignore
39
- function accumulate(quad) {
40
- let accWeight = 0;
41
- let accX = 0;
42
- let accY = 0;
43
- if (quad.length) {
44
- // internal node, accumulate 4 child quads
45
- for (let i = 0; i < 4; i++) {
46
- const q = quad[i];
47
- if (q && q.weight) {
48
- accWeight += q.weight;
49
- accX += q.x * q.weight;
50
- accY += q.y * q.weight;
51
- }
52
- }
53
- quad.x = accX / accWeight;
54
- quad.y = accY / accWeight;
55
- quad.weight = accWeight;
56
- }
57
- else {
58
- // leaf node
59
- const q = quad;
60
- quad.x = q.data.x;
61
- quad.y = q.data.y;
62
- quad.weight = q.data.weight;
63
- }
64
- }
65
- // @ts-ignore
66
- const apply = (quad, x1, y1, x2, y2, node) => {
67
- const dx = (node.x - quad.x) || epsilon;
68
- const dy = (node.y - quad.y) || epsilon;
69
- const width = x2 - x1;
70
- const len2 = dx * dx + dy * dy;
71
- const len3 = Math.sqrt(len2) * len2;
72
- // far node, apply Barnes-Hut approximation
73
- if ((width * width) * theta2 < len2) {
74
- const param = quad.weight / len3;
75
- node.vx += dx * param;
76
- node.vy += dy * param;
77
- return true;
78
- }
79
- // near quad, compute force directly
80
- if (quad.length)
81
- return false; // internal node, visit children
82
- // leaf node
83
- if (quad.data !== node) {
84
- const param = quad.data.weight / len3;
85
- node.vx += dx * param;
86
- node.vy += dy * param;
87
- }
88
- };
89
- // @ts-ignore
90
- function computeForce(node, tree) {
91
- // @ts-ignore
92
- tree.visit((quad, x1, y1, x2, y2) => apply(quad, x1, y1, x2, y2, node));
93
- }
94
- //# sourceMappingURL=ForceNBody.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForceNBody.js","sourceRoot":"","sources":["../../../src/layout/force2/ForceNBody.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- /**
2
- * @fileOverview fruchterman layout
3
- * @author shiwu.wyy@antfin.com
4
- */
5
- import { OutNode, Edge, PointTuple, IndexMap, GForceLayoutOptions, NodeMap, CentripetalOptions } from "../types";
6
- import { Base } from "../base";
7
- type INode = OutNode & {
8
- size: number | PointTuple;
9
- };
10
- /**
11
- * graphin 中的 force 布局
12
- */
13
- export declare class Force2Layout extends Base {
14
- /** 布局中心 */
15
- center: PointTuple;
16
- /** 停止迭代的最大迭代数 */
17
- maxIteration: number;
18
- /** 是否启动 worker */
19
- workerEnabled: boolean;
20
- /** 弹簧引力系数 */
21
- edgeStrength: number | ((d?: any) => number) | undefined;
22
- /** 斥力系数 */
23
- nodeStrength: number | ((d?: any) => number) | undefined;
24
- /** 库伦系数 */
25
- coulombDisScale: number;
26
- /** 阻尼系数 */
27
- damping: number;
28
- /** 最大速度 */
29
- maxSpeed: number;
30
- /** 一次迭代的平均移动距离小于该值时停止迭代 */
31
- minMovement: number;
32
- /** 迭代中衰减 */
33
- interval: number;
34
- /** 斥力的一个系数 */
35
- factor: number;
36
- /** 每个节点质量的回调函数,若不指定,则默认使用度数作为节点质量 */
37
- getMass: ((d?: any) => number) | undefined;
38
- /** 每个节点中心力的 x、y、强度的回调函数,若不指定,则没有额外中心力 */
39
- getCenter: ((d?: any, degree?: number) => number[]) | undefined;
40
- /** 计算画布上下两侧对节点吸引力大小 */
41
- defSideCoe?: (node: Node) => number;
42
- /** 理想边长 */
43
- linkDistance: number | ((edge?: any, source?: any, target?: any) => number) | undefined;
44
- /** 理想边长,兼容 graphin-force */
45
- defSpringLen: number | ((edge?: any, source?: any, target?: any) => number) | undefined;
46
- /** 重力大小 */
47
- gravity: number;
48
- /** 向心力 */
49
- centripetalOptions: CentripetalOptions;
50
- /** 是否需要叶子节点聚类 */
51
- leafCluster: boolean;
52
- /** 是否需要全部节点聚类 */
53
- clustering: boolean;
54
- /** 节点聚类的映射字段 */
55
- nodeClusterBy: string;
56
- /** 节点聚类作用力系数 */
57
- clusterNodeStrength: number | ((node: Node) => number);
58
- /** 是否防止重叠 */
59
- preventOverlap: boolean;
60
- /** 防止重叠时的节点大小,默认从节点数据中取 size */
61
- nodeSize: number | number[] | ((d?: any) => number) | undefined;
62
- /** 防止重叠时的节点之间最小间距 */
63
- nodeSpacing: number | number[] | ((d?: any) => number) | undefined;
64
- /** 阈值的使用条件,mean 代表平均移动距离小于 minMovement 时停止迭代,max 代表最大移动距离大时 minMovement 时停时迭代。默认为 mean */
65
- distanceThresholdMode: 'mean' | 'max' | 'min';
66
- /** 每次迭代结束的回调函数 */
67
- tick: (() => void) | null;
68
- /** 是否允许每次迭代结束调用回调函数 */
69
- enableTick: boolean;
70
- nodes: INode[] | null;
71
- edges: Edge[] | null;
72
- width: number;
73
- height: number;
74
- nodeMap: NodeMap;
75
- nodeIdxMap: IndexMap;
76
- canvasEl: HTMLCanvasElement;
77
- onLayoutEnd: () => void;
78
- /** 是否使用 window.setInterval 运行迭代 */
79
- animate: Boolean;
80
- /** 监控信息,不配置则不计算 */
81
- monitor: (params: {
82
- energy: number;
83
- nodes: INode[];
84
- edge: Edge[];
85
- iterations: number;
86
- }) => void;
87
- /** 存储节点度数 */
88
- private degreesMap;
89
- /** 迭代中的标识 */
90
- private timeInterval;
91
- /** 与 minMovement 进行对比的判断停止迭代节点移动距离 */
92
- private judgingDistance;
93
- constructor(options?: GForceLayoutOptions);
94
- getCentripetalOptions(): void;
95
- updateCfg(cfg: any): void;
96
- getDefaultCfg(): {
97
- maxIteration: number;
98
- gravity: number;
99
- enableTick: boolean;
100
- animate: boolean;
101
- };
102
- /**
103
- * 执行布局
104
- */
105
- execute(): void;
106
- run(): void;
107
- private runOneStep;
108
- private calTotalEnergy;
109
- calRepulsive(accArray: number[]): void;
110
- calAttractive(accArray: number[]): void;
111
- calGravity(accArray: number[]): void;
112
- updateVelocity(accArray: number[], velArray: number[], stepInterval: number): void;
113
- updatePosition(velArray: number[], stepInterval: number): void;
114
- stop(): void;
115
- destroy(): void;
116
- getType(): string;
117
- private getSameTypeLeafMap;
118
- }
119
- export {};