@knowvah/dot-engine 0.1.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 (986) hide show
  1. package/LICENSE +277 -0
  2. package/README.md +292 -0
  3. package/dist/api/builder.d.ts +78 -0
  4. package/dist/api/builder.d.ts.map +1 -0
  5. package/dist/api/edge-ops.d.ts +45 -0
  6. package/dist/api/edge-ops.d.ts.map +1 -0
  7. package/dist/api/geometry.d.ts +159 -0
  8. package/dist/api/geometry.d.ts.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api.js +719 -0
  12. package/dist/api.js.map +7 -0
  13. package/dist/bundle.js +101 -0
  14. package/dist/cdt/bag.d.ts +58 -0
  15. package/dist/cdt/bag.d.ts.map +1 -0
  16. package/dist/cdt/hash-core.d.ts +40 -0
  17. package/dist/cdt/hash-core.d.ts.map +1 -0
  18. package/dist/cdt/hash.d.ts +74 -0
  19. package/dist/cdt/hash.d.ts.map +1 -0
  20. package/dist/cdt/index.d.ts +16 -0
  21. package/dist/cdt/index.d.ts.map +1 -0
  22. package/dist/cdt/splay-core.d.ts +78 -0
  23. package/dist/cdt/splay-core.d.ts.map +1 -0
  24. package/dist/cdt/splay.d.ts +63 -0
  25. package/dist/cdt/splay.d.ts.map +1 -0
  26. package/dist/cdt/strhash.d.ts +26 -0
  27. package/dist/cdt/strhash.d.ts.map +1 -0
  28. package/dist/cdt/types.d.ts +11 -0
  29. package/dist/cdt/types.d.ts.map +1 -0
  30. package/dist/common/arith.d.ts +35 -0
  31. package/dist/common/arith.d.ts.map +1 -0
  32. package/dist/common/arm-pow-data.d.ts +17 -0
  33. package/dist/common/arm-pow-data.d.ts.map +1 -0
  34. package/dist/common/arm-pow.d.ts +12 -0
  35. package/dist/common/arm-pow.d.ts.map +1 -0
  36. package/dist/common/arrows-constants.d.ts +97 -0
  37. package/dist/common/arrows-constants.d.ts.map +1 -0
  38. package/dist/common/arrows-geometry.d.ts +24 -0
  39. package/dist/common/arrows-geometry.d.ts.map +1 -0
  40. package/dist/common/arrows-miter.d.ts +24 -0
  41. package/dist/common/arrows-miter.d.ts.map +1 -0
  42. package/dist/common/arrows-shapes-poly.d.ts +24 -0
  43. package/dist/common/arrows-shapes-poly.d.ts.map +1 -0
  44. package/dist/common/arrows-shapes-util.d.ts +77 -0
  45. package/dist/common/arrows-shapes-util.d.ts.map +1 -0
  46. package/dist/common/arrows-shapes.d.ts +48 -0
  47. package/dist/common/arrows-shapes.d.ts.map +1 -0
  48. package/dist/common/arrows-types.d.ts +59 -0
  49. package/dist/common/arrows-types.d.ts.map +1 -0
  50. package/dist/common/arrows.d.ts +69 -0
  51. package/dist/common/arrows.d.ts.map +1 -0
  52. package/dist/common/color.d.ts +66 -0
  53. package/dist/common/color.d.ts.map +1 -0
  54. package/dist/common/colorData.d.ts +10 -0
  55. package/dist/common/colorData.d.ts.map +1 -0
  56. package/dist/common/compass-port.d.ts +39 -0
  57. package/dist/common/compass-port.d.ts.map +1 -0
  58. package/dist/common/crand.d.ts +42 -0
  59. package/dist/common/crand.d.ts.map +1 -0
  60. package/dist/common/edge-label-init.d.ts +51 -0
  61. package/dist/common/edge-label-init.d.ts.map +1 -0
  62. package/dist/common/edge-offset.d.ts +66 -0
  63. package/dist/common/edge-offset.d.ts.map +1 -0
  64. package/dist/common/ellipse-wedge.d.ts +10 -0
  65. package/dist/common/ellipse-wedge.d.ts.map +1 -0
  66. package/dist/common/emit-types.d.ts +255 -0
  67. package/dist/common/emit-types.d.ts.map +1 -0
  68. package/dist/common/fma.d.ts +10 -0
  69. package/dist/common/fma.d.ts.map +1 -0
  70. package/dist/common/graph-init.d.ts +61 -0
  71. package/dist/common/graph-init.d.ts.map +1 -0
  72. package/dist/common/html-entities.d.ts +17 -0
  73. package/dist/common/html-entities.d.ts.map +1 -0
  74. package/dist/common/html-string.d.ts +14 -0
  75. package/dist/common/html-string.d.ts.map +1 -0
  76. package/dist/common/htmltable-emit-fill.d.ts +84 -0
  77. package/dist/common/htmltable-emit-fill.d.ts.map +1 -0
  78. package/dist/common/htmltable-emit-rules.d.ts +79 -0
  79. package/dist/common/htmltable-emit-rules.d.ts.map +1 -0
  80. package/dist/common/htmltable-emit.d.ts +63 -0
  81. package/dist/common/htmltable-emit.d.ts.map +1 -0
  82. package/dist/common/htmltable-lex.d.ts +16 -0
  83. package/dist/common/htmltable-lex.d.ts.map +1 -0
  84. package/dist/common/htmltable-parse.d.ts +37 -0
  85. package/dist/common/htmltable-parse.d.ts.map +1 -0
  86. package/dist/common/htmltable-port.d.ts +15 -0
  87. package/dist/common/htmltable-port.d.ts.map +1 -0
  88. package/dist/common/htmltable-pos-runs.d.ts +88 -0
  89. package/dist/common/htmltable-pos-runs.d.ts.map +1 -0
  90. package/dist/common/htmltable-pos.d.ts +192 -0
  91. package/dist/common/htmltable-pos.d.ts.map +1 -0
  92. package/dist/common/htmltable-types.d.ts +237 -0
  93. package/dist/common/htmltable-types.d.ts.map +1 -0
  94. package/dist/common/htmltable.d.ts +74 -0
  95. package/dist/common/htmltable.d.ts.map +1 -0
  96. package/dist/common/layers.d.ts +20 -0
  97. package/dist/common/layers.d.ts.map +1 -0
  98. package/dist/common/make-label.d.ts +60 -0
  99. package/dist/common/make-label.d.ts.map +1 -0
  100. package/dist/common/multicolor.d.ts +46 -0
  101. package/dist/common/multicolor.d.ts.map +1 -0
  102. package/dist/common/nodeinit.d.ts +45 -0
  103. package/dist/common/nodeinit.d.ts.map +1 -0
  104. package/dist/common/poly-gencode.d.ts +40 -0
  105. package/dist/common/poly-gencode.d.ts.map +1 -0
  106. package/dist/common/poly-init.d.ts +51 -0
  107. package/dist/common/poly-init.d.ts.map +1 -0
  108. package/dist/common/poly-inside.d.ts +37 -0
  109. package/dist/common/poly-inside.d.ts.map +1 -0
  110. package/dist/common/poly-shapes-cases.d.ts +31 -0
  111. package/dist/common/poly-shapes-cases.d.ts.map +1 -0
  112. package/dist/common/poly-shapes-cases2.d.ts +25 -0
  113. package/dist/common/poly-shapes-cases2.d.ts.map +1 -0
  114. package/dist/common/poly-shapes-util.d.ts +42 -0
  115. package/dist/common/poly-shapes-util.d.ts.map +1 -0
  116. package/dist/common/poly-shapes.d.ts +39 -0
  117. package/dist/common/poly-shapes.d.ts.map +1 -0
  118. package/dist/common/poly-sizing.d.ts +189 -0
  119. package/dist/common/poly-sizing.d.ts.map +1 -0
  120. package/dist/common/poly-vertices.d.ts +42 -0
  121. package/dist/common/poly-vertices.d.ts.map +1 -0
  122. package/dist/common/postproc.d.ts +49 -0
  123. package/dist/common/postproc.d.ts.map +1 -0
  124. package/dist/common/ps-fontalias.d.ts +36 -0
  125. package/dist/common/ps-fontalias.d.ts.map +1 -0
  126. package/dist/common/random.d.ts +8 -0
  127. package/dist/common/random.d.ts.map +1 -0
  128. package/dist/common/record-port.d.ts +34 -0
  129. package/dist/common/record-port.d.ts.map +1 -0
  130. package/dist/common/record.d.ts +105 -0
  131. package/dist/common/record.d.ts.map +1 -0
  132. package/dist/common/shapeData.d.ts +186 -0
  133. package/dist/common/shapeData.d.ts.map +1 -0
  134. package/dist/common/shapes.d.ts +36 -0
  135. package/dist/common/shapes.d.ts.map +1 -0
  136. package/dist/common/spline-midpoint.d.ts +31 -0
  137. package/dist/common/spline-midpoint.d.ts.map +1 -0
  138. package/dist/common/splines-clip.d.ts +21 -0
  139. package/dist/common/splines-clip.d.ts.map +1 -0
  140. package/dist/common/splines-constants.d.ts +42 -0
  141. package/dist/common/splines-constants.d.ts.map +1 -0
  142. package/dist/common/splines-geom.d.ts +51 -0
  143. package/dist/common/splines-geom.d.ts.map +1 -0
  144. package/dist/common/splines-path-begin.d.ts +17 -0
  145. package/dist/common/splines-path-begin.d.ts.map +1 -0
  146. package/dist/common/splines-path-end.d.ts +17 -0
  147. package/dist/common/splines-path-end.d.ts.map +1 -0
  148. package/dist/common/splines-path-shared.d.ts +53 -0
  149. package/dist/common/splines-path-shared.d.ts.map +1 -0
  150. package/dist/common/splines-routespl.d.ts +40 -0
  151. package/dist/common/splines-routespl.d.ts.map +1 -0
  152. package/dist/common/splines-selfedge.d.ts +21 -0
  153. package/dist/common/splines-selfedge.d.ts.map +1 -0
  154. package/dist/common/splines.d.ts +18 -0
  155. package/dist/common/splines.d.ts.map +1 -0
  156. package/dist/common/style-resolve.d.ts +197 -0
  157. package/dist/common/style-resolve.d.ts.map +1 -0
  158. package/dist/common/subst.d.ts +31 -0
  159. package/dist/common/subst.d.ts.map +1 -0
  160. package/dist/common/taper.d.ts +23 -0
  161. package/dist/common/taper.d.ts.map +1 -0
  162. package/dist/common/textmeasure-factory.d.ts +33 -0
  163. package/dist/common/textmeasure-factory.d.ts.map +1 -0
  164. package/dist/common/textmeasure-lookup.d.ts +17 -0
  165. package/dist/common/textmeasure-lookup.d.ts.map +1 -0
  166. package/dist/common/textmeasure-lut-data-a.d.ts +13 -0
  167. package/dist/common/textmeasure-lut-data-a.d.ts.map +1 -0
  168. package/dist/common/textmeasure-lut-data-b.d.ts +12 -0
  169. package/dist/common/textmeasure-lut-data-b.d.ts.map +1 -0
  170. package/dist/common/textmeasure-lut-data-c.d.ts +13 -0
  171. package/dist/common/textmeasure-lut-data-c.d.ts.map +1 -0
  172. package/dist/common/textmeasure-lut-data.d.ts +27 -0
  173. package/dist/common/textmeasure-lut-data.d.ts.map +1 -0
  174. package/dist/common/textmeasure.d.ts +120 -0
  175. package/dist/common/textmeasure.d.ts.map +1 -0
  176. package/dist/common/types.d.ts +316 -0
  177. package/dist/common/types.d.ts.map +1 -0
  178. package/dist/common/xlabels-place.d.ts +125 -0
  179. package/dist/common/xlabels-place.d.ts.map +1 -0
  180. package/dist/debug.d.ts +58 -0
  181. package/dist/debug.d.ts.map +1 -0
  182. package/dist/errors.d.ts +63 -0
  183. package/dist/errors.d.ts.map +1 -0
  184. package/dist/gvc/anchor.d.ts +86 -0
  185. package/dist/gvc/anchor.d.ts.map +1 -0
  186. package/dist/gvc/context.d.ts +177 -0
  187. package/dist/gvc/context.d.ts.map +1 -0
  188. package/dist/gvc/default-context.d.ts +20 -0
  189. package/dist/gvc/default-context.d.ts.map +1 -0
  190. package/dist/gvc/device-cluster.d.ts +25 -0
  191. package/dist/gvc/device-cluster.d.ts.map +1 -0
  192. package/dist/gvc/device.d.ts +99 -0
  193. package/dist/gvc/device.d.ts.map +1 -0
  194. package/dist/gvc/edge-labels.d.ts +10 -0
  195. package/dist/gvc/edge-labels.d.ts.map +1 -0
  196. package/dist/gvc/emit-walk.d.ts +22 -0
  197. package/dist/gvc/emit-walk.d.ts.map +1 -0
  198. package/dist/gvc/image-resolver.d.ts +44 -0
  199. package/dist/gvc/image-resolver.d.ts.map +1 -0
  200. package/dist/gvc/job.d.ts +234 -0
  201. package/dist/gvc/job.d.ts.map +1 -0
  202. package/dist/gvc/textlayout.d.ts +33 -0
  203. package/dist/gvc/textlayout.d.ts.map +1 -0
  204. package/dist/gvc/textspan-emit.d.ts +41 -0
  205. package/dist/gvc/textspan-emit.d.ts.map +1 -0
  206. package/dist/gvc/usershape.d.ts +25 -0
  207. package/dist/gvc/usershape.d.ts.map +1 -0
  208. package/dist/gvc/viewport.d.ts +71 -0
  209. package/dist/gvc/viewport.d.ts.map +1 -0
  210. package/dist/index.d.ts +54 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +52862 -0
  213. package/dist/index.js.map +7 -0
  214. package/dist/label/index.d.ts +74 -0
  215. package/dist/label/index.d.ts.map +1 -0
  216. package/dist/label/node.d.ts +108 -0
  217. package/dist/label/node.d.ts.map +1 -0
  218. package/dist/label/rectangle.d.ts +60 -0
  219. package/dist/label/rectangle.d.ts.map +1 -0
  220. package/dist/label/split-q.d.ts +13 -0
  221. package/dist/label/split-q.d.ts.map +1 -0
  222. package/dist/label/xlabels-geom.d.ts +46 -0
  223. package/dist/label/xlabels-geom.d.ts.map +1 -0
  224. package/dist/label/xlabels-intersect.d.ts +79 -0
  225. package/dist/label/xlabels-intersect.d.ts.map +1 -0
  226. package/dist/label/xlabels.d.ts +67 -0
  227. package/dist/label/xlabels.d.ts.map +1 -0
  228. package/dist/layout/circo/blockpath.d.ts +120 -0
  229. package/dist/layout/circo/blockpath.d.ts.map +1 -0
  230. package/dist/layout/circo/blocks.d.ts +135 -0
  231. package/dist/layout/circo/blocks.d.ts.map +1 -0
  232. package/dist/layout/circo/blocktree.d.ts +51 -0
  233. package/dist/layout/circo/blocktree.d.ts.map +1 -0
  234. package/dist/layout/circo/circular.d.ts +59 -0
  235. package/dist/layout/circo/circular.d.ts.map +1 -0
  236. package/dist/layout/circo/index.d.ts +35 -0
  237. package/dist/layout/circo/index.d.ts.map +1 -0
  238. package/dist/layout/circo/init.d.ts +50 -0
  239. package/dist/layout/circo/init.d.ts.map +1 -0
  240. package/dist/layout/circo/position-helpers.d.ts +33 -0
  241. package/dist/layout/circo/position-helpers.d.ts.map +1 -0
  242. package/dist/layout/circo/position.d.ts +66 -0
  243. package/dist/layout/circo/position.d.ts.map +1 -0
  244. package/dist/layout/dot/acyclic.d.ts +8 -0
  245. package/dist/layout/dot/acyclic.d.ts.map +1 -0
  246. package/dist/layout/dot/aspect.d.ts +17 -0
  247. package/dist/layout/dot/aspect.d.ts.map +1 -0
  248. package/dist/layout/dot/classify.d.ts +52 -0
  249. package/dist/layout/dot/classify.d.ts.map +1 -0
  250. package/dist/layout/dot/cluster-path.d.ts +38 -0
  251. package/dist/layout/dot/cluster-path.d.ts.map +1 -0
  252. package/dist/layout/dot/cluster.d.ts +102 -0
  253. package/dist/layout/dot/cluster.d.ts.map +1 -0
  254. package/dist/layout/dot/compound-clip.d.ts +69 -0
  255. package/dist/layout/dot/compound-clip.d.ts.map +1 -0
  256. package/dist/layout/dot/compound-geom.d.ts +115 -0
  257. package/dist/layout/dot/compound-geom.d.ts.map +1 -0
  258. package/dist/layout/dot/compound.d.ts +56 -0
  259. package/dist/layout/dot/compound.d.ts.map +1 -0
  260. package/dist/layout/dot/conc.d.ts +88 -0
  261. package/dist/layout/dot/conc.d.ts.map +1 -0
  262. package/dist/layout/dot/decomp.d.ts +66 -0
  263. package/dist/layout/dot/decomp.d.ts.map +1 -0
  264. package/dist/layout/dot/edge-order.d.ts +27 -0
  265. package/dist/layout/dot/edge-order.d.ts.map +1 -0
  266. package/dist/layout/dot/edge-route-arrow.d.ts +46 -0
  267. package/dist/layout/dot/edge-route-arrow.d.ts.map +1 -0
  268. package/dist/layout/dot/edge-route-boxes.d.ts +75 -0
  269. package/dist/layout/dot/edge-route-boxes.d.ts.map +1 -0
  270. package/dist/layout/dot/edge-route-chain.d.ts +67 -0
  271. package/dist/layout/dot/edge-route-chain.d.ts.map +1 -0
  272. package/dist/layout/dot/edge-route-clip.d.ts +88 -0
  273. package/dist/layout/dot/edge-route-clip.d.ts.map +1 -0
  274. package/dist/layout/dot/edge-route-faithful.d.ts +94 -0
  275. package/dist/layout/dot/edge-route-faithful.d.ts.map +1 -0
  276. package/dist/layout/dot/edge-route-geom.d.ts +43 -0
  277. package/dist/layout/dot/edge-route-geom.d.ts.map +1 -0
  278. package/dist/layout/dot/edge-route-helpers.d.ts +50 -0
  279. package/dist/layout/dot/edge-route-helpers.d.ts.map +1 -0
  280. package/dist/layout/dot/edge-route-poly.d.ts +48 -0
  281. package/dist/layout/dot/edge-route-poly.d.ts.map +1 -0
  282. package/dist/layout/dot/edge-route-rank.d.ts +57 -0
  283. package/dist/layout/dot/edge-route-rank.d.ts.map +1 -0
  284. package/dist/layout/dot/edge-route-routing.d.ts +99 -0
  285. package/dist/layout/dot/edge-route-routing.d.ts.map +1 -0
  286. package/dist/layout/dot/edge-route.d.ts +57 -0
  287. package/dist/layout/dot/edge-route.d.ts.map +1 -0
  288. package/dist/layout/dot/fastgr.d.ts +147 -0
  289. package/dist/layout/dot/fastgr.d.ts.map +1 -0
  290. package/dist/layout/dot/flat-utils.d.ts +21 -0
  291. package/dist/layout/dot/flat-utils.d.ts.map +1 -0
  292. package/dist/layout/dot/flat.d.ts +152 -0
  293. package/dist/layout/dot/flat.d.ts.map +1 -0
  294. package/dist/layout/dot/graph-label.d.ts +18 -0
  295. package/dist/layout/dot/graph-label.d.ts.map +1 -0
  296. package/dist/layout/dot/index.d.ts +128 -0
  297. package/dist/layout/dot/index.d.ts.map +1 -0
  298. package/dist/layout/dot/init.d.ts +93 -0
  299. package/dist/layout/dot/init.d.ts.map +1 -0
  300. package/dist/layout/dot/label-order.d.ts +45 -0
  301. package/dist/layout/dot/label-order.d.ts.map +1 -0
  302. package/dist/layout/dot/mincross-build.d.ts +52 -0
  303. package/dist/layout/dot/mincross-build.d.ts.map +1 -0
  304. package/dist/layout/dot/mincross-cross.d.ts +80 -0
  305. package/dist/layout/dot/mincross-cross.d.ts.map +1 -0
  306. package/dist/layout/dot/mincross-flat.d.ts +27 -0
  307. package/dist/layout/dot/mincross-flat.d.ts.map +1 -0
  308. package/dist/layout/dot/mincross-order.d.ts +89 -0
  309. package/dist/layout/dot/mincross-order.d.ts.map +1 -0
  310. package/dist/layout/dot/mincross-utils.d.ts +60 -0
  311. package/dist/layout/dot/mincross-utils.d.ts.map +1 -0
  312. package/dist/layout/dot/mincross.d.ts +75 -0
  313. package/dist/layout/dot/mincross.d.ts.map +1 -0
  314. package/dist/layout/dot/ns-core.d.ts +37 -0
  315. package/dist/layout/dot/ns-core.d.ts.map +1 -0
  316. package/dist/layout/dot/ns-range.d.ts +17 -0
  317. package/dist/layout/dot/ns-range.d.ts.map +1 -0
  318. package/dist/layout/dot/ns-subtree.d.ts +78 -0
  319. package/dist/layout/dot/ns-subtree.d.ts.map +1 -0
  320. package/dist/layout/dot/ns.d.ts +86 -0
  321. package/dist/layout/dot/ns.d.ts.map +1 -0
  322. package/dist/layout/dot/ortho-adapter.d.ts +19 -0
  323. package/dist/layout/dot/ortho-adapter.d.ts.map +1 -0
  324. package/dist/layout/dot/pack-components.d.ts +100 -0
  325. package/dist/layout/dot/pack-components.d.ts.map +1 -0
  326. package/dist/layout/dot/position-aux.d.ts +110 -0
  327. package/dist/layout/dot/position-aux.d.ts.map +1 -0
  328. package/dist/layout/dot/position-bbox.d.ts +57 -0
  329. package/dist/layout/dot/position-bbox.d.ts.map +1 -0
  330. package/dist/layout/dot/position-cluster.d.ts +48 -0
  331. package/dist/layout/dot/position-cluster.d.ts.map +1 -0
  332. package/dist/layout/dot/position-ycoords.d.ts +42 -0
  333. package/dist/layout/dot/position-ycoords.d.ts.map +1 -0
  334. package/dist/layout/dot/position.d.ts +47 -0
  335. package/dist/layout/dot/position.d.ts.map +1 -0
  336. package/dist/layout/dot/rank-dot2.d.ts +114 -0
  337. package/dist/layout/dot/rank-dot2.d.ts.map +1 -0
  338. package/dist/layout/dot/rank.d.ts +119 -0
  339. package/dist/layout/dot/rank.d.ts.map +1 -0
  340. package/dist/layout/dot/sameport.d.ts +70 -0
  341. package/dist/layout/dot/sameport.d.ts.map +1 -0
  342. package/dist/layout/dot/self-loop.d.ts +54 -0
  343. package/dist/layout/dot/self-loop.d.ts.map +1 -0
  344. package/dist/layout/dot/splines-clone.d.ts +33 -0
  345. package/dist/layout/dot/splines-clone.d.ts.map +1 -0
  346. package/dist/layout/dot/splines-flat-labeled.d.ts +101 -0
  347. package/dist/layout/dot/splines-flat-labeled.d.ts.map +1 -0
  348. package/dist/layout/dot/splines-flat-multi.d.ts +35 -0
  349. package/dist/layout/dot/splines-flat-multi.d.ts.map +1 -0
  350. package/dist/layout/dot/splines-flat.d.ts +116 -0
  351. package/dist/layout/dot/splines-flat.d.ts.map +1 -0
  352. package/dist/layout/dot/splines-groups.d.ts +38 -0
  353. package/dist/layout/dot/splines-groups.d.ts.map +1 -0
  354. package/dist/layout/dot/splines-label.d.ts +105 -0
  355. package/dist/layout/dot/splines-label.d.ts.map +1 -0
  356. package/dist/layout/dot/splines-route-type.d.ts +28 -0
  357. package/dist/layout/dot/splines-route-type.d.ts.map +1 -0
  358. package/dist/layout/dot/splines-route.d.ts +99 -0
  359. package/dist/layout/dot/splines-route.d.ts.map +1 -0
  360. package/dist/layout/dot/splines.d.ts +157 -0
  361. package/dist/layout/dot/splines.d.ts.map +1 -0
  362. package/dist/layout/dot/straight-edges.d.ts +39 -0
  363. package/dist/layout/dot/straight-edges.d.ts.map +1 -0
  364. package/dist/layout/fdp/cluster-edges.d.ts +31 -0
  365. package/dist/layout/fdp/cluster-edges.d.ts.map +1 -0
  366. package/dist/layout/fdp/comp.d.ts +29 -0
  367. package/dist/layout/fdp/comp.d.ts.map +1 -0
  368. package/dist/layout/fdp/derive.d.ts +39 -0
  369. package/dist/layout/fdp/derive.d.ts.map +1 -0
  370. package/dist/layout/fdp/fdp-model.d.ts +101 -0
  371. package/dist/layout/fdp/fdp-model.d.ts.map +1 -0
  372. package/dist/layout/fdp/grid.d.ts +49 -0
  373. package/dist/layout/fdp/grid.d.ts.map +1 -0
  374. package/dist/layout/fdp/index.d.ts +36 -0
  375. package/dist/layout/fdp/index.d.ts.map +1 -0
  376. package/dist/layout/fdp/init.d.ts +26 -0
  377. package/dist/layout/fdp/init.d.ts.map +1 -0
  378. package/dist/layout/fdp/layout.d.ts +57 -0
  379. package/dist/layout/fdp/layout.d.ts.map +1 -0
  380. package/dist/layout/fdp/normalize.d.ts +18 -0
  381. package/dist/layout/fdp/normalize.d.ts.map +1 -0
  382. package/dist/layout/fdp/ports.d.ts +41 -0
  383. package/dist/layout/fdp/ports.d.ts.map +1 -0
  384. package/dist/layout/fdp/tlayout-init.d.ts +21 -0
  385. package/dist/layout/fdp/tlayout-init.d.ts.map +1 -0
  386. package/dist/layout/fdp/tlayout-parms.d.ts +98 -0
  387. package/dist/layout/fdp/tlayout-parms.d.ts.map +1 -0
  388. package/dist/layout/fdp/tlayout.d.ts +43 -0
  389. package/dist/layout/fdp/tlayout.d.ts.map +1 -0
  390. package/dist/layout/fdp/xlayout.d.ts +26 -0
  391. package/dist/layout/fdp/xlayout.d.ts.map +1 -0
  392. package/dist/layout/neato/bfs.d.ts +43 -0
  393. package/dist/layout/neato/bfs.d.ts.map +1 -0
  394. package/dist/layout/neato/cdt-surface.d.ts +16 -0
  395. package/dist/layout/neato/cdt-surface.d.ts.map +1 -0
  396. package/dist/layout/neato/conjgrad.d.ts +61 -0
  397. package/dist/layout/neato/conjgrad.d.ts.map +1 -0
  398. package/dist/layout/neato/delaunay.d.ts +28 -0
  399. package/dist/layout/neato/delaunay.d.ts.map +1 -0
  400. package/dist/layout/neato/dijkstra.d.ts +80 -0
  401. package/dist/layout/neato/dijkstra.d.ts.map +1 -0
  402. package/dist/layout/neato/fdp-adjust.d.ts +31 -0
  403. package/dist/layout/neato/fdp-adjust.d.ts.map +1 -0
  404. package/dist/layout/neato/index.d.ts +58 -0
  405. package/dist/layout/neato/index.d.ts.map +1 -0
  406. package/dist/layout/neato/init.d.ts +207 -0
  407. package/dist/layout/neato/init.d.ts.map +1 -0
  408. package/dist/layout/neato/legal.d.ts +7 -0
  409. package/dist/layout/neato/legal.d.ts.map +1 -0
  410. package/dist/layout/neato/matrix-ops.d.ts +28 -0
  411. package/dist/layout/neato/matrix-ops.d.ts.map +1 -0
  412. package/dist/layout/neato/multispline-router.d.ts +80 -0
  413. package/dist/layout/neato/multispline-router.d.ts.map +1 -0
  414. package/dist/layout/neato/multispline.d.ts +24 -0
  415. package/dist/layout/neato/multispline.d.ts.map +1 -0
  416. package/dist/layout/neato/overlap-prism.d.ts +26 -0
  417. package/dist/layout/neato/overlap-prism.d.ts.map +1 -0
  418. package/dist/layout/neato/overlap.d.ts +85 -0
  419. package/dist/layout/neato/overlap.d.ts.map +1 -0
  420. package/dist/layout/neato/sc-adjust.d.ts +33 -0
  421. package/dist/layout/neato/sc-adjust.d.ts.map +1 -0
  422. package/dist/layout/neato/sep-factor.d.ts +41 -0
  423. package/dist/layout/neato/sep-factor.d.ts.map +1 -0
  424. package/dist/layout/neato/set-aspect.d.ts +33 -0
  425. package/dist/layout/neato/set-aspect.d.ts.map +1 -0
  426. package/dist/layout/neato/sgd.d.ts +166 -0
  427. package/dist/layout/neato/sgd.d.ts.map +1 -0
  428. package/dist/layout/neato/splines.d.ts +153 -0
  429. package/dist/layout/neato/splines.d.ts.map +1 -0
  430. package/dist/layout/neato/stress-kernel.d.ts +53 -0
  431. package/dist/layout/neato/stress-kernel.d.ts.map +1 -0
  432. package/dist/layout/neato/stress.d.ts +158 -0
  433. package/dist/layout/neato/stress.d.ts.map +1 -0
  434. package/dist/layout/osage/index.d.ts +158 -0
  435. package/dist/layout/osage/index.d.ts.map +1 -0
  436. package/dist/layout/osage/layout.d.ts +49 -0
  437. package/dist/layout/osage/layout.d.ts.map +1 -0
  438. package/dist/layout/osage/types.d.ts +28 -0
  439. package/dist/layout/osage/types.d.ts.map +1 -0
  440. package/dist/layout/pack/array-pack.d.ts +114 -0
  441. package/dist/layout/pack/array-pack.d.ts.map +1 -0
  442. package/dist/layout/pack/index.d.ts +157 -0
  443. package/dist/layout/pack/index.d.ts.map +1 -0
  444. package/dist/layout/pack/poly-pack.d.ts +126 -0
  445. package/dist/layout/pack/poly-pack.d.ts.map +1 -0
  446. package/dist/layout/pack/poly-place.d.ts +27 -0
  447. package/dist/layout/pack/poly-place.d.ts.map +1 -0
  448. package/dist/layout/pack/spiral-search.d.ts +18 -0
  449. package/dist/layout/pack/spiral-search.d.ts.map +1 -0
  450. package/dist/layout/pack/test-helpers.d.ts +7 -0
  451. package/dist/layout/pack/test-helpers.d.ts.map +1 -0
  452. package/dist/layout/pack/types.d.ts +74 -0
  453. package/dist/layout/pack/types.d.ts.map +1 -0
  454. package/dist/layout/patchwork/index.d.ts +136 -0
  455. package/dist/layout/patchwork/index.d.ts.map +1 -0
  456. package/dist/layout/patchwork/tree-map.d.ts +32 -0
  457. package/dist/layout/patchwork/tree-map.d.ts.map +1 -0
  458. package/dist/layout/patchwork/tree-node.d.ts +46 -0
  459. package/dist/layout/patchwork/tree-node.d.ts.map +1 -0
  460. package/dist/layout/sfdp/index.d.ts +39 -0
  461. package/dist/layout/sfdp/index.d.ts.map +1 -0
  462. package/dist/layout/sfdp/init.d.ts +61 -0
  463. package/dist/layout/sfdp/init.d.ts.map +1 -0
  464. package/dist/layout/sfdp/multilevel.d.ts +23 -0
  465. package/dist/layout/sfdp/multilevel.d.ts.map +1 -0
  466. package/dist/layout/sfdp/quadtree.d.ts +45 -0
  467. package/dist/layout/sfdp/quadtree.d.ts.map +1 -0
  468. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts +34 -0
  469. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts.map +1 -0
  470. package/dist/layout/sfdp/sparse-matrix.d.ts +101 -0
  471. package/dist/layout/sfdp/sparse-matrix.d.ts.map +1 -0
  472. package/dist/layout/sfdp/sparse-solve.d.ts +14 -0
  473. package/dist/layout/sfdp/sparse-solve.d.ts.map +1 -0
  474. package/dist/layout/sfdp/spring-driver.d.ts +18 -0
  475. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -0
  476. package/dist/layout/sfdp/spring-electrical.d.ts +61 -0
  477. package/dist/layout/sfdp/spring-electrical.d.ts.map +1 -0
  478. package/dist/layout/twopi/circle.d.ts +83 -0
  479. package/dist/layout/twopi/circle.d.ts.map +1 -0
  480. package/dist/layout/twopi/index.d.ts +24 -0
  481. package/dist/layout/twopi/index.d.ts.map +1 -0
  482. package/dist/layout/twopi/init.d.ts +85 -0
  483. package/dist/layout/twopi/init.d.ts.map +1 -0
  484. package/dist/layout/twopi/pipeline.d.ts +37 -0
  485. package/dist/layout/twopi/pipeline.d.ts.map +1 -0
  486. package/dist/layout/twopi/twopi-test-helpers.d.ts +12 -0
  487. package/dist/layout/twopi/twopi-test-helpers.d.ts.map +1 -0
  488. package/dist/model/algData.d.ts +175 -0
  489. package/dist/model/algData.d.ts.map +1 -0
  490. package/dist/model/cgraph-ops.d.ts +86 -0
  491. package/dist/model/cgraph-ops.d.ts.map +1 -0
  492. package/dist/model/edge.d.ts +80 -0
  493. package/dist/model/edge.d.ts.map +1 -0
  494. package/dist/model/edgeInfo.d.ts +299 -0
  495. package/dist/model/edgeInfo.d.ts.map +1 -0
  496. package/dist/model/geom.d.ts +149 -0
  497. package/dist/model/geom.d.ts.map +1 -0
  498. package/dist/model/graph.d.ts +135 -0
  499. package/dist/model/graph.d.ts.map +1 -0
  500. package/dist/model/graphInfo.d.ts +418 -0
  501. package/dist/model/graphInfo.d.ts.map +1 -0
  502. package/dist/model/index.d.ts +10 -0
  503. package/dist/model/index.d.ts.map +1 -0
  504. package/dist/model/layoutParams.d.ts +85 -0
  505. package/dist/model/layoutParams.d.ts.map +1 -0
  506. package/dist/model/node.d.ts +101 -0
  507. package/dist/model/node.d.ts.map +1 -0
  508. package/dist/model/nodeInfo.d.ts +278 -0
  509. package/dist/model/nodeInfo.d.ts.map +1 -0
  510. package/dist/model/rankEntry.d.ts +80 -0
  511. package/dist/model/rankEntry.d.ts.map +1 -0
  512. package/dist/ortho/chan-dict.d.ts +82 -0
  513. package/dist/ortho/chan-dict.d.ts.map +1 -0
  514. package/dist/ortho/fpq.d.ts +54 -0
  515. package/dist/ortho/fpq.d.ts.map +1 -0
  516. package/dist/ortho/index.d.ts +35 -0
  517. package/dist/ortho/index.d.ts.map +1 -0
  518. package/dist/ortho/maze-channels.d.ts +47 -0
  519. package/dist/ortho/maze-channels.d.ts.map +1 -0
  520. package/dist/ortho/maze.d.ts +27 -0
  521. package/dist/ortho/maze.d.ts.map +1 -0
  522. package/dist/ortho/ortho-parallel.d.ts +26 -0
  523. package/dist/ortho/ortho-parallel.d.ts.map +1 -0
  524. package/dist/ortho/ortho-route.d.ts +31 -0
  525. package/dist/ortho/ortho-route.d.ts.map +1 -0
  526. package/dist/ortho/partition.d.ts +34 -0
  527. package/dist/ortho/partition.d.ts.map +1 -0
  528. package/dist/ortho/rawgraph.d.ts +41 -0
  529. package/dist/ortho/rawgraph.d.ts.map +1 -0
  530. package/dist/ortho/sgraph.d.ts +74 -0
  531. package/dist/ortho/sgraph.d.ts.map +1 -0
  532. package/dist/ortho/trap-query.d.ts +32 -0
  533. package/dist/ortho/trap-query.d.ts.map +1 -0
  534. package/dist/ortho/trap-segment.d.ts +23 -0
  535. package/dist/ortho/trap-segment.d.ts.map +1 -0
  536. package/dist/ortho/trap-types.d.ts +91 -0
  537. package/dist/ortho/trap-types.d.ts.map +1 -0
  538. package/dist/ortho/trap-update.d.ts +12 -0
  539. package/dist/ortho/trap-update.d.ts.map +1 -0
  540. package/dist/ortho/trapezoid.d.ts +18 -0
  541. package/dist/ortho/trapezoid.d.ts.map +1 -0
  542. package/dist/ortho/types.d.ts +241 -0
  543. package/dist/ortho/types.d.ts.map +1 -0
  544. package/dist/parser/ast.d.ts +49 -0
  545. package/dist/parser/ast.d.ts.map +1 -0
  546. package/dist/parser/builder.d.ts +75 -0
  547. package/dist/parser/builder.d.ts.map +1 -0
  548. package/dist/parser/index.d.ts +97 -0
  549. package/dist/parser/index.d.ts.map +1 -0
  550. package/dist/pathplan/index.d.ts +8 -0
  551. package/dist/pathplan/index.d.ts.map +1 -0
  552. package/dist/pathplan/route.d.ts +9 -0
  553. package/dist/pathplan/route.d.ts.map +1 -0
  554. package/dist/pathplan/shortest.d.ts +5 -0
  555. package/dist/pathplan/shortest.d.ts.map +1 -0
  556. package/dist/pathplan/solvers.d.ts +5 -0
  557. package/dist/pathplan/solvers.d.ts.map +1 -0
  558. package/dist/pathplan/triang.d.ts +25 -0
  559. package/dist/pathplan/triang.d.ts.map +1 -0
  560. package/dist/pathplan/types.d.ts +22 -0
  561. package/dist/pathplan/types.d.ts.map +1 -0
  562. package/dist/pathplan/visibility.d.ts +13 -0
  563. package/dist/pathplan/visibility.d.ts.map +1 -0
  564. package/dist/pathplan/vispath.d.ts +9 -0
  565. package/dist/pathplan/vispath.d.ts.map +1 -0
  566. package/dist/rbtree/index.d.ts +127 -0
  567. package/dist/rbtree/index.d.ts.map +1 -0
  568. package/dist/render/color-resolve.d.ts +38 -0
  569. package/dist/render/color-resolve.d.ts.map +1 -0
  570. package/dist/render/dot.d.ts +379 -0
  571. package/dist/render/dot.d.ts.map +1 -0
  572. package/dist/render/index.d.ts +24 -0
  573. package/dist/render/index.d.ts.map +1 -0
  574. package/dist/render/json.d.ts +89 -0
  575. package/dist/render/json.d.ts.map +1 -0
  576. package/dist/render/map-test-helpers.d.ts +13 -0
  577. package/dist/render/map-test-helpers.d.ts.map +1 -0
  578. package/dist/render/map.d.ts +197 -0
  579. package/dist/render/map.d.ts.map +1 -0
  580. package/dist/render/public.d.ts +64 -0
  581. package/dist/render/public.d.ts.map +1 -0
  582. package/dist/render/svg-arrow-ops.d.ts +10 -0
  583. package/dist/render/svg-arrow-ops.d.ts.map +1 -0
  584. package/dist/render/svg-cluster.d.ts +9 -0
  585. package/dist/render/svg-cluster.d.ts.map +1 -0
  586. package/dist/render/svg-edge-ortho-radius.d.ts +31 -0
  587. package/dist/render/svg-edge-ortho-radius.d.ts.map +1 -0
  588. package/dist/render/svg-edge-split.d.ts +48 -0
  589. package/dist/render/svg-edge-split.d.ts.map +1 -0
  590. package/dist/render/svg-gradient.d.ts +46 -0
  591. package/dist/render/svg-gradient.d.ts.map +1 -0
  592. package/dist/render/svg-graph.d.ts +97 -0
  593. package/dist/render/svg-graph.d.ts.map +1 -0
  594. package/dist/render/svg-helpers.d.ts +122 -0
  595. package/dist/render/svg-helpers.d.ts.map +1 -0
  596. package/dist/render/svg-id.d.ts +28 -0
  597. package/dist/render/svg-id.d.ts.map +1 -0
  598. package/dist/render/svg-multicolor.d.ts +60 -0
  599. package/dist/render/svg-multicolor.d.ts.map +1 -0
  600. package/dist/render/svg-parallel-edge.d.ts +28 -0
  601. package/dist/render/svg-parallel-edge.d.ts.map +1 -0
  602. package/dist/render/svg-tapered-edge.d.ts +18 -0
  603. package/dist/render/svg-tapered-edge.d.ts.map +1 -0
  604. package/dist/render/svg.d.ts +104 -0
  605. package/dist/render/svg.d.ts.map +1 -0
  606. package/dist/render/xdot-public.d.ts +95 -0
  607. package/dist/render/xdot-public.d.ts.map +1 -0
  608. package/dist/render/xml-escape.d.ts +21 -0
  609. package/dist/render/xml-escape.d.ts.map +1 -0
  610. package/dist/render.js +52556 -0
  611. package/dist/render.js.map +7 -0
  612. package/dist/util/agxbuf.d.ts +72 -0
  613. package/dist/util/agxbuf.d.ts.map +1 -0
  614. package/dist/util/bsd-qsort.d.ts +22 -0
  615. package/dist/util/bsd-qsort.d.ts.map +1 -0
  616. package/dist/util/index.d.ts +11 -0
  617. package/dist/util/index.d.ts.map +1 -0
  618. package/dist/util/list.d.ts +47 -0
  619. package/dist/util/list.d.ts.map +1 -0
  620. package/dist/util/math.d.ts +54 -0
  621. package/dist/util/math.d.ts.map +1 -0
  622. package/dist/util/mt19937.d.ts +40 -0
  623. package/dist/util/mt19937.d.ts.map +1 -0
  624. package/dist/util/printf-round.d.ts +45 -0
  625. package/dist/util/printf-round.d.ts.map +1 -0
  626. package/dist/util/xml.d.ts +24 -0
  627. package/dist/util/xml.d.ts.map +1 -0
  628. package/dist/vpsc/Block.d.ts +116 -0
  629. package/dist/vpsc/Block.d.ts.map +1 -0
  630. package/dist/vpsc/Blocks.d.ts +66 -0
  631. package/dist/vpsc/Blocks.d.ts.map +1 -0
  632. package/dist/vpsc/Constraint.d.ts +51 -0
  633. package/dist/vpsc/Constraint.d.ts.map +1 -0
  634. package/dist/vpsc/HeapUtils.d.ts +37 -0
  635. package/dist/vpsc/HeapUtils.d.ts.map +1 -0
  636. package/dist/vpsc/Solver.d.ts +107 -0
  637. package/dist/vpsc/Solver.d.ts.map +1 -0
  638. package/dist/vpsc/SweepLine.d.ts +38 -0
  639. package/dist/vpsc/SweepLine.d.ts.map +1 -0
  640. package/dist/vpsc/Variable.d.ts +38 -0
  641. package/dist/vpsc/Variable.d.ts.map +1 -0
  642. package/dist/vpsc/index.d.ts +54 -0
  643. package/dist/vpsc/index.d.ts.map +1 -0
  644. package/dist/vpsc/sweepTypes.d.ts +29 -0
  645. package/dist/vpsc/sweepTypes.d.ts.map +1 -0
  646. package/dist/xdot/index.d.ts +6 -0
  647. package/dist/xdot/index.d.ts.map +1 -0
  648. package/dist/xdot/lex.d.ts +22 -0
  649. package/dist/xdot/lex.d.ts.map +1 -0
  650. package/dist/xdot/misc.d.ts +13 -0
  651. package/dist/xdot/misc.d.ts.map +1 -0
  652. package/dist/xdot/parse.d.ts +21 -0
  653. package/dist/xdot/parse.d.ts.map +1 -0
  654. package/dist/xdot/types.d.ts +152 -0
  655. package/dist/xdot/types.d.ts.map +1 -0
  656. package/package.json +113 -0
  657. package/src/api/builder.ts +277 -0
  658. package/src/api/edge-ops.ts +113 -0
  659. package/src/api/geometry.ts +307 -0
  660. package/src/api/index.ts +46 -0
  661. package/src/cdt/bag.ts +196 -0
  662. package/src/cdt/hash-core.ts +84 -0
  663. package/src/cdt/hash.ts +207 -0
  664. package/src/cdt/index.ts +17 -0
  665. package/src/cdt/splay-core.ts +301 -0
  666. package/src/cdt/splay.ts +191 -0
  667. package/src/cdt/strhash.ts +52 -0
  668. package/src/cdt/types.ts +13 -0
  669. package/src/common/arith.ts +39 -0
  670. package/src/common/arm-pow-data.ts +201 -0
  671. package/src/common/arm-pow.ts +296 -0
  672. package/src/common/arrows-constants.ts +175 -0
  673. package/src/common/arrows-geometry.ts +62 -0
  674. package/src/common/arrows-miter.ts +84 -0
  675. package/src/common/arrows-shapes-poly.ts +241 -0
  676. package/src/common/arrows-shapes-util.ts +162 -0
  677. package/src/common/arrows-shapes.ts +360 -0
  678. package/src/common/arrows-types.ts +59 -0
  679. package/src/common/arrows.ts +209 -0
  680. package/src/common/color.ts +340 -0
  681. package/src/common/colorData.ts +264 -0
  682. package/src/common/compass-port.ts +384 -0
  683. package/src/common/crand.ts +79 -0
  684. package/src/common/edge-label-init.ts +310 -0
  685. package/src/common/edge-offset.ts +140 -0
  686. package/src/common/ellipse-wedge.ts +189 -0
  687. package/src/common/emit-types.ts +332 -0
  688. package/src/common/fma.ts +52 -0
  689. package/src/common/graph-init.ts +359 -0
  690. package/src/common/html-entities.ts +299 -0
  691. package/src/common/html-string.ts +22 -0
  692. package/src/common/htmltable-emit-fill.ts +367 -0
  693. package/src/common/htmltable-emit-rules.ts +293 -0
  694. package/src/common/htmltable-emit.ts +345 -0
  695. package/src/common/htmltable-lex.ts +138 -0
  696. package/src/common/htmltable-parse.ts +539 -0
  697. package/src/common/htmltable-port.ts +32 -0
  698. package/src/common/htmltable-pos-runs.ts +313 -0
  699. package/src/common/htmltable-pos.ts +601 -0
  700. package/src/common/htmltable-types.ts +262 -0
  701. package/src/common/htmltable.ts +477 -0
  702. package/src/common/layers.ts +113 -0
  703. package/src/common/make-label.ts +192 -0
  704. package/src/common/multicolor.ts +167 -0
  705. package/src/common/nodeinit.ts +339 -0
  706. package/src/common/poly-gencode.ts +475 -0
  707. package/src/common/poly-init.ts +133 -0
  708. package/src/common/poly-inside.ts +202 -0
  709. package/src/common/poly-shapes-cases.ts +253 -0
  710. package/src/common/poly-shapes-cases2.ts +170 -0
  711. package/src/common/poly-shapes-util.ts +124 -0
  712. package/src/common/poly-shapes.ts +181 -0
  713. package/src/common/poly-sizing.ts +639 -0
  714. package/src/common/poly-vertices.ts +237 -0
  715. package/src/common/postproc.ts +436 -0
  716. package/src/common/ps-fontalias.ts +112 -0
  717. package/src/common/random.ts +37 -0
  718. package/src/common/record-port.ts +89 -0
  719. package/src/common/record.ts +523 -0
  720. package/src/common/shapeData.ts +502 -0
  721. package/src/common/shapes.ts +187 -0
  722. package/src/common/spline-midpoint.ts +105 -0
  723. package/src/common/splines-clip.ts +449 -0
  724. package/src/common/splines-constants.ts +53 -0
  725. package/src/common/splines-geom.ts +194 -0
  726. package/src/common/splines-path-begin.ts +243 -0
  727. package/src/common/splines-path-end.ts +231 -0
  728. package/src/common/splines-path-shared.ts +258 -0
  729. package/src/common/splines-routespl.ts +444 -0
  730. package/src/common/splines-selfedge.ts +403 -0
  731. package/src/common/splines.ts +33 -0
  732. package/src/common/style-resolve.ts +481 -0
  733. package/src/common/subst.ts +126 -0
  734. package/src/common/taper.ts +219 -0
  735. package/src/common/textmeasure-factory.ts +86 -0
  736. package/src/common/textmeasure-lookup.ts +50 -0
  737. package/src/common/textmeasure-lut-data-a.ts +182 -0
  738. package/src/common/textmeasure-lut-data-b.ts +140 -0
  739. package/src/common/textmeasure-lut-data-c.ts +221 -0
  740. package/src/common/textmeasure-lut-data.ts +78 -0
  741. package/src/common/textmeasure.ts +321 -0
  742. package/src/common/types.ts +425 -0
  743. package/src/common/xlabels-place.ts +475 -0
  744. package/src/debug.ts +38 -0
  745. package/src/errors.ts +95 -0
  746. package/src/gvc/anchor.ts +530 -0
  747. package/src/gvc/context.ts +260 -0
  748. package/src/gvc/default-context.ts +70 -0
  749. package/src/gvc/device-cluster.ts +114 -0
  750. package/src/gvc/device.ts +598 -0
  751. package/src/gvc/edge-labels.ts +116 -0
  752. package/src/gvc/emit-walk.ts +98 -0
  753. package/src/gvc/image-resolver.ts +137 -0
  754. package/src/gvc/job.ts +401 -0
  755. package/src/gvc/textlayout.ts +44 -0
  756. package/src/gvc/textspan-emit.ts +100 -0
  757. package/src/gvc/usershape.ts +33 -0
  758. package/src/gvc/viewport.ts +203 -0
  759. package/src/index.ts +165 -0
  760. package/src/label/index.ts +302 -0
  761. package/src/label/node.ts +278 -0
  762. package/src/label/rectangle.ts +123 -0
  763. package/src/label/split-q.ts +237 -0
  764. package/src/label/xlabels-geom.ts +132 -0
  765. package/src/label/xlabels-intersect.ts +421 -0
  766. package/src/label/xlabels.ts +212 -0
  767. package/src/layout/circo/blockpath.ts +560 -0
  768. package/src/layout/circo/blocks.ts +234 -0
  769. package/src/layout/circo/blocktree.ts +246 -0
  770. package/src/layout/circo/circular.ts +227 -0
  771. package/src/layout/circo/index.ts +90 -0
  772. package/src/layout/circo/init.ts +84 -0
  773. package/src/layout/circo/position-helpers.ts +104 -0
  774. package/src/layout/circo/position.ts +196 -0
  775. package/src/layout/dot/__fixtures__/xcoord-pivot-divergence.gv +79 -0
  776. package/src/layout/dot/acyclic.ts +60 -0
  777. package/src/layout/dot/aspect.ts +22 -0
  778. package/src/layout/dot/classify.ts +462 -0
  779. package/src/layout/dot/cluster-path.ts +200 -0
  780. package/src/layout/dot/cluster.ts +480 -0
  781. package/src/layout/dot/compound-clip.ts +224 -0
  782. package/src/layout/dot/compound-geom.ts +282 -0
  783. package/src/layout/dot/compound.ts +294 -0
  784. package/src/layout/dot/conc.ts +433 -0
  785. package/src/layout/dot/decomp.ts +165 -0
  786. package/src/layout/dot/edge-order.ts +62 -0
  787. package/src/layout/dot/edge-route-arrow.ts +87 -0
  788. package/src/layout/dot/edge-route-boxes.ts +99 -0
  789. package/src/layout/dot/edge-route-chain.ts +420 -0
  790. package/src/layout/dot/edge-route-clip.ts +253 -0
  791. package/src/layout/dot/edge-route-faithful.ts +404 -0
  792. package/src/layout/dot/edge-route-geom.ts +90 -0
  793. package/src/layout/dot/edge-route-helpers.ts +170 -0
  794. package/src/layout/dot/edge-route-poly.ts +174 -0
  795. package/src/layout/dot/edge-route-rank.ts +136 -0
  796. package/src/layout/dot/edge-route-routing.ts +219 -0
  797. package/src/layout/dot/edge-route.ts +490 -0
  798. package/src/layout/dot/fastgr.ts +377 -0
  799. package/src/layout/dot/flat-utils.ts +52 -0
  800. package/src/layout/dot/flat.ts +518 -0
  801. package/src/layout/dot/graph-label.ts +114 -0
  802. package/src/layout/dot/index.ts +302 -0
  803. package/src/layout/dot/init.ts +300 -0
  804. package/src/layout/dot/label-order.ts +161 -0
  805. package/src/layout/dot/mincross-build.ts +373 -0
  806. package/src/layout/dot/mincross-cross.ts +409 -0
  807. package/src/layout/dot/mincross-flat.ts +213 -0
  808. package/src/layout/dot/mincross-order.ts +401 -0
  809. package/src/layout/dot/mincross-utils.ts +170 -0
  810. package/src/layout/dot/mincross.ts +386 -0
  811. package/src/layout/dot/ns-core.ts +122 -0
  812. package/src/layout/dot/ns-range.ts +228 -0
  813. package/src/layout/dot/ns-subtree.ts +347 -0
  814. package/src/layout/dot/ns.ts +506 -0
  815. package/src/layout/dot/ortho-adapter.ts +133 -0
  816. package/src/layout/dot/pack-components.ts +433 -0
  817. package/src/layout/dot/position-aux.ts +382 -0
  818. package/src/layout/dot/position-bbox.ts +221 -0
  819. package/src/layout/dot/position-cluster.ts +286 -0
  820. package/src/layout/dot/position-ycoords.ts +287 -0
  821. package/src/layout/dot/position.ts +194 -0
  822. package/src/layout/dot/rank-dot2.ts +528 -0
  823. package/src/layout/dot/rank.ts +547 -0
  824. package/src/layout/dot/sameport.ts +278 -0
  825. package/src/layout/dot/self-loop.ts +147 -0
  826. package/src/layout/dot/splines-clone.ts +121 -0
  827. package/src/layout/dot/splines-flat-labeled.ts +408 -0
  828. package/src/layout/dot/splines-flat-multi.ts +188 -0
  829. package/src/layout/dot/splines-flat.ts +598 -0
  830. package/src/layout/dot/splines-groups.ts +190 -0
  831. package/src/layout/dot/splines-label.ts +432 -0
  832. package/src/layout/dot/splines-route-type.ts +44 -0
  833. package/src/layout/dot/splines-route.ts +478 -0
  834. package/src/layout/dot/splines.ts +538 -0
  835. package/src/layout/dot/straight-edges.ts +332 -0
  836. package/src/layout/fdp/cluster-edges.ts +0 -0
  837. package/src/layout/fdp/comp.ts +160 -0
  838. package/src/layout/fdp/derive.ts +272 -0
  839. package/src/layout/fdp/fdp-model.ts +238 -0
  840. package/src/layout/fdp/grid.ts +77 -0
  841. package/src/layout/fdp/index.ts +113 -0
  842. package/src/layout/fdp/init.ts +116 -0
  843. package/src/layout/fdp/layout.ts +485 -0
  844. package/src/layout/fdp/normalize.ts +100 -0
  845. package/src/layout/fdp/ports.ts +161 -0
  846. package/src/layout/fdp/tlayout-init.ts +230 -0
  847. package/src/layout/fdp/tlayout-parms.ts +234 -0
  848. package/src/layout/fdp/tlayout.ts +317 -0
  849. package/src/layout/fdp/xlayout.ts +350 -0
  850. package/src/layout/neato/bfs.ts +131 -0
  851. package/src/layout/neato/cdt-surface.ts +693 -0
  852. package/src/layout/neato/conjgrad.ts +159 -0
  853. package/src/layout/neato/delaunay.ts +259 -0
  854. package/src/layout/neato/dijkstra.ts +296 -0
  855. package/src/layout/neato/fdp-adjust.ts +124 -0
  856. package/src/layout/neato/index.ts +310 -0
  857. package/src/layout/neato/init.ts +505 -0
  858. package/src/layout/neato/legal.ts +316 -0
  859. package/src/layout/neato/matrix-ops.ts +112 -0
  860. package/src/layout/neato/multispline-router.ts +417 -0
  861. package/src/layout/neato/multispline.ts +427 -0
  862. package/src/layout/neato/overlap-prism.ts +503 -0
  863. package/src/layout/neato/overlap.ts +158 -0
  864. package/src/layout/neato/sc-adjust.ts +206 -0
  865. package/src/layout/neato/sep-factor.ts +118 -0
  866. package/src/layout/neato/set-aspect.ts +178 -0
  867. package/src/layout/neato/sgd.ts +461 -0
  868. package/src/layout/neato/splines.ts +1014 -0
  869. package/src/layout/neato/stress-kernel.ts +362 -0
  870. package/src/layout/neato/stress.ts +420 -0
  871. package/src/layout/osage/index.ts +548 -0
  872. package/src/layout/osage/layout.ts +254 -0
  873. package/src/layout/osage/types.ts +31 -0
  874. package/src/layout/pack/array-pack.ts +254 -0
  875. package/src/layout/pack/index.ts +570 -0
  876. package/src/layout/pack/poly-pack.ts +266 -0
  877. package/src/layout/pack/poly-place.ts +426 -0
  878. package/src/layout/pack/spiral-search.ts +106 -0
  879. package/src/layout/pack/test-helpers.ts +46 -0
  880. package/src/layout/pack/types.ts +85 -0
  881. package/src/layout/patchwork/index.ts +441 -0
  882. package/src/layout/patchwork/tree-map.ts +183 -0
  883. package/src/layout/patchwork/tree-node.ts +120 -0
  884. package/src/layout/sfdp/index.ts +231 -0
  885. package/src/layout/sfdp/init.ts +224 -0
  886. package/src/layout/sfdp/multilevel.ts +262 -0
  887. package/src/layout/sfdp/quadtree.ts +267 -0
  888. package/src/layout/sfdp/sparse-matrix-multiply.ts +160 -0
  889. package/src/layout/sfdp/sparse-matrix.ts +367 -0
  890. package/src/layout/sfdp/sparse-solve.ts +122 -0
  891. package/src/layout/sfdp/spring-driver.ts +209 -0
  892. package/src/layout/sfdp/spring-electrical.ts +431 -0
  893. package/src/layout/twopi/circle.ts +339 -0
  894. package/src/layout/twopi/index.ts +78 -0
  895. package/src/layout/twopi/init.ts +174 -0
  896. package/src/layout/twopi/pipeline.ts +98 -0
  897. package/src/layout/twopi/twopi-test-helpers.ts +44 -0
  898. package/src/model/algData.ts +194 -0
  899. package/src/model/cgraph-ops.ts +175 -0
  900. package/src/model/edge.ts +104 -0
  901. package/src/model/edgeInfo.ts +431 -0
  902. package/src/model/geom.ts +204 -0
  903. package/src/model/graph.ts +172 -0
  904. package/src/model/graphInfo.ts +528 -0
  905. package/src/model/index.ts +10 -0
  906. package/src/model/layoutParams.ts +127 -0
  907. package/src/model/node.ts +138 -0
  908. package/src/model/nodeInfo.ts +424 -0
  909. package/src/model/rankEntry.ts +95 -0
  910. package/src/ortho/chan-dict.ts +236 -0
  911. package/src/ortho/fpq.ts +149 -0
  912. package/src/ortho/index.ts +206 -0
  913. package/src/ortho/maze-channels.ts +196 -0
  914. package/src/ortho/maze.ts +311 -0
  915. package/src/ortho/ortho-parallel.ts +254 -0
  916. package/src/ortho/ortho-route.ts +349 -0
  917. package/src/ortho/partition.ts +303 -0
  918. package/src/ortho/rawgraph.ts +119 -0
  919. package/src/ortho/sgraph.ts +283 -0
  920. package/src/ortho/trap-query.ts +174 -0
  921. package/src/ortho/trap-segment.ts +303 -0
  922. package/src/ortho/trap-types.ts +171 -0
  923. package/src/ortho/trap-update.ts +89 -0
  924. package/src/ortho/trapezoid.ts +120 -0
  925. package/src/ortho/types.ts +286 -0
  926. package/src/parser/__fixtures__/directed.dot +10 -0
  927. package/src/parser/__fixtures__/simple.dot +7 -0
  928. package/src/parser/__fixtures__/subgraph.dot +17 -0
  929. package/src/parser/ast.ts +64 -0
  930. package/src/parser/builder.ts +401 -0
  931. package/src/parser/dot.d.ts +208 -0
  932. package/src/parser/dot.js +3321 -0
  933. package/src/parser/dot.pegjs +263 -0
  934. package/src/parser/index.ts +353 -0
  935. package/src/pathplan/index.ts +9 -0
  936. package/src/pathplan/route.ts +284 -0
  937. package/src/pathplan/shortest.ts +268 -0
  938. package/src/pathplan/solvers.ts +65 -0
  939. package/src/pathplan/triang.ts +221 -0
  940. package/src/pathplan/types.ts +16 -0
  941. package/src/pathplan/visibility.ts +170 -0
  942. package/src/pathplan/vispath.ts +118 -0
  943. package/src/rbtree/index.ts +418 -0
  944. package/src/render/color-resolve.ts +171 -0
  945. package/src/render/dot.ts +1514 -0
  946. package/src/render/index.ts +29 -0
  947. package/src/render/json.ts +734 -0
  948. package/src/render/map-test-helpers.ts +61 -0
  949. package/src/render/map.ts +528 -0
  950. package/src/render/public.ts +131 -0
  951. package/src/render/svg-arrow-ops.ts +113 -0
  952. package/src/render/svg-cluster.ts +24 -0
  953. package/src/render/svg-edge-ortho-radius.ts +228 -0
  954. package/src/render/svg-edge-split.ts +180 -0
  955. package/src/render/svg-gradient.ts +185 -0
  956. package/src/render/svg-graph.ts +415 -0
  957. package/src/render/svg-helpers.ts +623 -0
  958. package/src/render/svg-id.ts +76 -0
  959. package/src/render/svg-multicolor.ts +313 -0
  960. package/src/render/svg-parallel-edge.ts +123 -0
  961. package/src/render/svg-tapered-edge.ts +56 -0
  962. package/src/render/svg.ts +307 -0
  963. package/src/render/xdot-public.ts +164 -0
  964. package/src/render/xml-escape.ts +56 -0
  965. package/src/util/agxbuf.ts +138 -0
  966. package/src/util/bsd-qsort.ts +251 -0
  967. package/src/util/index.ts +25 -0
  968. package/src/util/list.ts +122 -0
  969. package/src/util/math.ts +104 -0
  970. package/src/util/mt19937.ts +143 -0
  971. package/src/util/printf-round.ts +163 -0
  972. package/src/util/xml.ts +184 -0
  973. package/src/vpsc/Block.ts +375 -0
  974. package/src/vpsc/Blocks.ts +164 -0
  975. package/src/vpsc/Constraint.ts +94 -0
  976. package/src/vpsc/HeapUtils.ts +88 -0
  977. package/src/vpsc/Solver.ts +274 -0
  978. package/src/vpsc/SweepLine.ts +214 -0
  979. package/src/vpsc/Variable.ts +54 -0
  980. package/src/vpsc/index.ts +122 -0
  981. package/src/vpsc/sweepTypes.ts +31 -0
  982. package/src/xdot/index.ts +7 -0
  983. package/src/xdot/lex.ts +151 -0
  984. package/src/xdot/misc.ts +226 -0
  985. package/src/xdot/parse.ts +349 -0
  986. package/src/xdot/types.ts +158 -0
@@ -0,0 +1,74 @@
1
+ /**
2
+ * R-tree public API: open/close/insert/search.
3
+ * @see label/index.h
4
+ * @see label/index.c
5
+ */
6
+ import { type Rect } from './rectangle.js';
7
+ import { type Node, type SplitQ } from './node.js';
8
+ import './split-q.js';
9
+ /**
10
+ * An R-tree leaf: the bounding rect and the caller-supplied data pointer.
11
+ *
12
+ * In C this is `Leaf_t { Rect_t rect; void *data; }` and a leaf branch is
13
+ * cast directly to Leaf_t* — `branch[i].child` holds the data pointer while
14
+ * `branch[i].rect` is the bounding rectangle. We replicate that layout here.
15
+ *
16
+ * @see label/index.h:Leaf_t
17
+ */
18
+ export interface Leaf {
19
+ rect: Rect;
20
+ /** Caller-supplied opaque data (C: void *). */
21
+ data: unknown;
22
+ }
23
+ /**
24
+ * R-tree: root node plus the SplitQ scratchpad.
25
+ * @see label/index.h:struct RTree
26
+ */
27
+ export interface RTree {
28
+ root: Node | null;
29
+ split: SplitQ;
30
+ }
31
+ /**
32
+ * Allocate and initialise a new R-tree.
33
+ * @see label/index.c:RTreeOpen
34
+ */
35
+ export declare function rTreeOpen(): RTree;
36
+ /**
37
+ * Close (free) the R-tree.
38
+ * In GC'd TS this is a no-op in practice, but we walk and clear the tree
39
+ * faithfully to mirror the C version and release references eagerly.
40
+ * @see label/index.c:RTreeClose
41
+ */
42
+ export declare function rTreeClose(rtp: RTree): void;
43
+ /**
44
+ * Make a new empty index (single leaf node at level 0).
45
+ * @see label/index.c:RTreeNewIndex
46
+ */
47
+ export declare function rTreeNewIndex(): Node;
48
+ /**
49
+ * Search the index for all data rectangles overlapping `r`.
50
+ *
51
+ * Returns a Leaf[] whose iteration order matches C's LeafList_t traversal:
52
+ * within each leaf node hits are in reverse branch-slot order (list-cons
53
+ * prepend); across internal-node children results are in forward slot order.
54
+ *
55
+ * @see label/index.c:RTreeSearch
56
+ */
57
+ export declare function rTreeSearch(rtp: RTree, n: Node, r: Rect): Leaf[];
58
+ /**
59
+ * Insert a data rectangle into the index.
60
+ * Returns 1 if root was split, 0 otherwise. Updates rtp.root on split.
61
+ * @see label/index.c:RTreeInsert
62
+ */
63
+ export declare function rTreeInsert(rtp: RTree, r: Rect, data: unknown): number;
64
+ /**
65
+ * Free a LeafList. In GC'd TypeScript this is a documented no-op stub;
66
+ * the caller may discard the Leaf[] returned by rTreeSearch without calling
67
+ * this function.
68
+ *
69
+ * Kept as a named export so callers ported from C can call it without change.
70
+ *
71
+ * @see label/index.c:RTreeLeafListFree
72
+ */
73
+ export declare function rTreeLeafListFree(_leaves: Leaf[]): void;
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/label/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAiC,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,MAAM,EAOZ,MAAM,WAAW,CAAC;AAInB,OAAO,cAAc,CAAC;AAMtB;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAyDD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,KAAK,CAEjC;AAsBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAK3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AA4CD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,CAGhE;AA8DD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAOtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAEvD"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * R-tree node types and node-level operations.
3
+ * @see label/node.h
4
+ * @see label/node.c
5
+ * @see label/index.h
6
+ */
7
+ import { type Rect } from './rectangle.js';
8
+ /** @see label/index.h:NODECARD */
9
+ export declare const NODECARD = 64;
10
+ /**
11
+ * A single branch in an R-tree node: a bounding rectangle and a child pointer.
12
+ * @see label/node.h:Branch_t
13
+ */
14
+ export interface Branch {
15
+ rect: Rect;
16
+ /** null means this slot is empty; pointer to child Node otherwise */
17
+ child: Node | null;
18
+ }
19
+ /**
20
+ * An R-tree node: up to NODECARD branches.
21
+ * level 0 = leaf, positive = internal.
22
+ * @see label/node.h:Node_t
23
+ */
24
+ export interface Node {
25
+ count: number;
26
+ /** 0 is leaf, others positive */
27
+ level: number;
28
+ branch: Branch[];
29
+ }
30
+ /**
31
+ * Per-split partition bookkeeping.
32
+ * @see label/split.q.h:PartitionVars
33
+ */
34
+ export interface PartitionVars {
35
+ partition: number[];
36
+ taken: boolean[];
37
+ count: [number, number];
38
+ cover: [Rect, Rect];
39
+ area: [number, number];
40
+ }
41
+ /**
42
+ * Quadratic-split scratchpad stored in the RTree.
43
+ * @see label/split.q.h:SplitQ_t / split_q_s
44
+ */
45
+ export interface SplitQ {
46
+ branchBuf: Branch[];
47
+ coverSplit: Rect;
48
+ coverSplitArea: number;
49
+ partitions: PartitionVars[];
50
+ }
51
+ /**
52
+ * Minimal RTree fields touched by node.c and split.q.c.
53
+ * T3 (index.c) will flesh out the full RTree type; this structural
54
+ * base keeps T2 self-contained.
55
+ * @see label/index.h:struct RTree
56
+ */
57
+ export interface RTreeBase {
58
+ root: Node | null;
59
+ split: SplitQ;
60
+ }
61
+ /** Build an empty SplitQ. */
62
+ export declare function makeSplitQ(): SplitQ;
63
+ /**
64
+ * Initialize one branch cell: zeroed rect, null child.
65
+ * @see label/node.c:InitBranch
66
+ */
67
+ export declare function initBranch(b: Branch): void;
68
+ /**
69
+ * Initialize a Node structure: count=0, level=-1, all branches empty.
70
+ * @see label/node.c:InitNode
71
+ */
72
+ export declare function initNode(n: Node): void;
73
+ /**
74
+ * Allocate and initialize a new Node.
75
+ * @see label/node.c:RTreeNewNode
76
+ */
77
+ export declare function rTreeNewNode(): Node;
78
+ /** Smallest rect enclosing all occupied branch rects. @see label/node.c:NodeCover */
79
+ export declare function nodeCover(n: Node): Rect;
80
+ /**
81
+ * Pick the branch that will need the smallest area increase to
82
+ * accommodate rect r. Ties broken by smaller current area.
83
+ * @see label/node.c:PickBranch
84
+ */
85
+ export declare function pickBranch(r: Rect, n: Node): number;
86
+ /**
87
+ * Add a branch to a node. Splits the node if necessary.
88
+ * Returns 0 if no split; old node updated.
89
+ * Returns 1 if split; newNodeOut.value set to the new node.
90
+ *
91
+ * Cycle note: addBranch → splitNode (split-q.ts) → loadNodes → addBranch.
92
+ * Resolved via late-binding shim below; both modules fully initialised
93
+ * before any function executes at runtime.
94
+ * @see label/node.c:AddBranch
95
+ */
96
+ export declare function addBranch(rtp: RTreeBase, b: Branch, n: Node, newNodeOut: {
97
+ value: Node | null;
98
+ }): number;
99
+ /**
100
+ * Disconnect a dependent node (clears branch slot, decrements count).
101
+ * @see label/node.c:DisconBranch
102
+ */
103
+ export declare function disconnectBranch(n: Node, i: number): void;
104
+ /** Register the splitNode implementation. Called by split-q.ts at load time. */
105
+ export declare function registerSplitNode(impl: (rtp: RTreeBase, n: Node, b: Branch, newNodeOut: {
106
+ value: Node | null;
107
+ }) => void): void;
108
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/label/node.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,IAAI,EAA6C,MAAM,gBAAgB,CAAC;AAUtF,kCAAkC;AAClC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAS3B;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,qEAAqE;IACrE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAsBD,6BAA6B;AAC7B,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAMD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAMtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AA4BD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAWvC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAUnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,IAAI,EACP,UAAU,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GACjC,MAAM,CAiBR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGzD;AAiBD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,KAAK,IAAI,GACrF,IAAI,CAEN"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * R-tree rectangle primitives.
3
+ * @see label/rectangle.h
4
+ * @see label/rectangle.c
5
+ * @see label/index.h
6
+ */
7
+ /** @see label/index.h:NUMDIMS */
8
+ export declare const NUMDIMS = 2;
9
+ /** @see label/index.h:NUMSIDES (2*NUMDIMS) */
10
+ export declare const NUMSIDES: number;
11
+ /**
12
+ * Flat boundary array: [lowX, lowY, highX, highY].
13
+ * Indexed via CX/CY/NX/NY helpers matching the C macros.
14
+ * @see label/rectangle.h:Rect_t
15
+ */
16
+ export interface Rect {
17
+ boundary: [number, number, number, number];
18
+ }
19
+ /** @see label/index.h:CX(i) — low side, x-axis offset i */
20
+ export declare function CX(i: number): number;
21
+ /** @see label/index.h:NX(i) — high side, x-axis offset i */
22
+ export declare function NX(i: number): number;
23
+ /** @see label/index.h:CY(i) — low side, y-axis offset i */
24
+ export declare function CY(i: number): number;
25
+ /** @see label/index.h:NY(i) — high side, y-axis offset i */
26
+ export declare function NY(i: number): number;
27
+ /**
28
+ * Initialize a rectangle to have all 0 coordinates.
29
+ * @see label/rectangle.c:InitRect
30
+ */
31
+ export declare function initRect(r: Rect): void;
32
+ /**
33
+ * Return a rect whose first low side is higher than its opposite side —
34
+ * interpreted as an undefined rect.
35
+ * C: boundary[0]=1, boundary[NUMDIMS]=-1, rest 0.
36
+ * @see label/rectangle.c:NullRect
37
+ */
38
+ export declare function nullRect(): Rect;
39
+ /**
40
+ * Calculate the n-dimensional area of a rectangle.
41
+ * Returns 0 for undefined rects or zero-width dimensions.
42
+ * Throws if area overflows Number.MAX_SAFE_INTEGER (browser-safe substitute
43
+ * for C's graphviz_exit on UINT64_MAX overflow).
44
+ * @see label/rectangle.c:RectArea
45
+ */
46
+ export declare function rectArea(r: Rect): number;
47
+ /**
48
+ * Combine two rectangles, making one that includes both.
49
+ * Uses fmin for both low and high sides — faithful to C source.
50
+ * @see label/rectangle.c:CombineRect
51
+ */
52
+ export declare function combineRect(r: Rect, rr: Rect): Rect;
53
+ /**
54
+ * Decide whether two rectangles overlap.
55
+ * C: for each dim i, false if r.lo[i] > s.hi[i] OR s.lo[i] > r.hi[i].
56
+ * Touching edges (equal) are considered overlapping (strict > only).
57
+ * @see label/rectangle.c:Overlap
58
+ */
59
+ export declare function overlap(r: Rect, s: Rect): boolean;
60
+ //# sourceMappingURL=rectangle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rectangle.d.ts","sourceRoot":"","sources":["../../src/label/rectangle.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,iCAAiC;AACjC,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,8CAA8C;AAC9C,eAAO,MAAM,QAAQ,QAAc,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAc;AAEnD,4DAA4D;AAC5D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAwB;AAE7D,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;AAEvD,4DAA4D;AAC5D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAA4B;AAWjE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAItC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAaxC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAWnD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAQjD"}
@@ -0,0 +1,13 @@
1
+ import { type Branch, type Node, type RTreeBase } from './node.js';
2
+ /**
3
+ * Split a node. Divides the node's branches and the extra one between two
4
+ * nodes. Old node is one of the two; a new node is created and returned via
5
+ * nn.value.
6
+ * @see label/split.q.c:SplitNode
7
+ */
8
+ export declare function splitNode(rtp: RTreeBase, n: Node, b: Branch, nn: {
9
+ value: Node | null;
10
+ }): void;
11
+ declare const METHODS = 1;
12
+ export { METHODS };
13
+ //# sourceMappingURL=split-q.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-q.d.ts","sourceRoot":"","sources":["../../src/label/split-q.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EAET,KAAK,SAAS,EAKf,MAAM,WAAW,CAAC;AA4LnB;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,MAAM,EACT,EAAE,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GACzB,IAAI,CAON;AAQD,QAAA,MAAM,OAAO,IAAI,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Geometry helpers for xlabels: Hilbert code, rect conversions, AABB test.
3
+ * Internal — consumed only by xlabels-intersect.ts and xlabels.ts.
4
+ * @see lib/label/xlabels.c
5
+ */
6
+ import { type Rect } from './rectangle.js';
7
+ import { type ObjectT } from './xlabels.js';
8
+ /**
9
+ * Compute Hilbert curve distance from origin to integer point (x,y) on an
10
+ * order-n Hilbert curve. Ported from hackersdelight.org (Henry S. Warren).
11
+ *
12
+ * All arithmetic is 32-bit unsigned:
13
+ * - `>>> 0` coerces to Uint32 (correctly wraps -xi negation).
14
+ * - `>>>` unsigned right shift replaces C `>>` on signed ints.
15
+ * - `& 0xFFFFFFFF` keeps intermediate values in 32-bit range.
16
+ *
17
+ * Precondition: 2^n >= max(px, py).
18
+ * @see lib/label/xlabels.c:hd_hil_s_from_xy
19
+ */
20
+ export declare function hdHilSFromXy(px: number, py: number, n: number): number;
21
+ /**
22
+ * Intersection area of two axis-aligned bounding boxes; 0 when disjoint.
23
+ * @see lib/label/xlabels.c:aabbaabb
24
+ */
25
+ export declare function aabbaabb(r: Rect, s: Rect): number;
26
+ /**
27
+ * Build a Rect from object position + size.
28
+ * @see lib/label/xlabels.c:objp2rect
29
+ */
30
+ export declare function objp2rect(op: ObjectT): Rect;
31
+ /**
32
+ * Build a Rect from the object's attached xlabel position + size.
33
+ * @see lib/label/xlabels.c:objplp2rect
34
+ */
35
+ export declare function objplp2rect(objp: ObjectT): Rect;
36
+ /**
37
+ * Build the bounding Rect enclosing all possible label positions for objp.
38
+ * @see lib/label/xlabels.c:objplpmks
39
+ */
40
+ export declare function objplpmks(objp: ObjectT): Rect;
41
+ /**
42
+ * True if size-zero object objp1 is enclosed within objp's label rectangle.
43
+ * @see lib/label/xlabels.c:lblenclosing
44
+ */
45
+ export declare function lblenclosing(objp: ObjectT, objp1: ObjectT): boolean;
46
+ //# sourceMappingURL=xlabels-geom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlabels-geom.d.ts","sourceRoot":"","sources":["../../src/label/xlabels-geom.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,IAAI,EAAW,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAO1D;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAOjD;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAW3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW/C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAU7C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CASnE"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Neighbour-grid intersection recording and xladjust position search.
3
+ * Internal — consumed only by xlabels.ts.
4
+ * @see lib/label/xlabels.c
5
+ */
6
+ import { type Rect } from './rectangle.js';
7
+ import { type RTree } from './index.js';
8
+ import { type ObjectT } from './xlabels.js';
9
+ /** @see lib/label/xlabels.h:XLXDENOM */
10
+ export declare const XLXDENOM = 8;
11
+ /** @see lib/label/xlabels.h:XLYDENOM */
12
+ export declare const XLYDENOM = 2;
13
+ /** 9-neighbour grid size. @see lib/label/xlabels.h:XLNBR */
14
+ export declare const XLNBR = 9;
15
+ /**
16
+ * Best-position accumulator.
17
+ * @see lib/label/xlabels.h:BestPos_t
18
+ */
19
+ export interface BestPosT {
20
+ n: number;
21
+ area: number;
22
+ pos: {
23
+ x: number;
24
+ y: number;
25
+ };
26
+ }
27
+ /**
28
+ * XLabels state bundle (forward-declared interface; full type in xlabels.ts).
29
+ */
30
+ export interface XLabelsState {
31
+ objs: ObjectT[];
32
+ nObjs: number;
33
+ spdx: RTree;
34
+ }
35
+ /**
36
+ * Record intersecting object in neighbour grid.
37
+ * @see lib/label/xlabels.c:recordointrsx
38
+ */
39
+ export declare function recordointrsx(op: ObjectT, cp: ObjectT, rp: Rect, a: number, intrsx: (ObjectT | null)[]): number;
40
+ /**
41
+ * Record intersecting label in neighbour grid.
42
+ * @see lib/label/xlabels.c:recordlintrsx
43
+ */
44
+ export declare function recordlintrsx(op: ObjectT, cp: ObjectT, rp: Rect, a: number, intrsx: (ObjectT | null)[]): number;
45
+ /**
46
+ * Find all objects/labels intersecting objp's current label position.
47
+ * @see lib/label/xlabels.c:xlintersections
48
+ */
49
+ export declare function xlintersections(xlp: XLabelsState, objp: ObjectT, intrsx: (ObjectT | null)[]): BestPosT;
50
+ /**
51
+ * Top-left sliding pass (along top edge then down left edge).
52
+ * @see lib/label/xlabels.c:xladjust (sliding from top left)
53
+ */
54
+ export declare function slideFromTopLeft(xlp: XLabelsState, objp: ObjectT, xincr: number, yincr: number, bp: BestPosT, intrsx: (ObjectT | null)[]): {
55
+ bp: BestPosT;
56
+ done: boolean;
57
+ };
58
+ /**
59
+ * Bottom-right sliding pass (along bottom edge then up right edge).
60
+ * @see lib/label/xlabels.c:xladjust (sliding from bottom right)
61
+ */
62
+ export declare function slideFromBottomRight(xlp: XLabelsState, objp: ObjectT, xincr: number, yincr: number, bp: BestPosT, intrsx: (ObjectT | null)[]): {
63
+ bp: BestPosT;
64
+ done: boolean;
65
+ };
66
+ /**
67
+ * Try the 7 remaining fixed candidate positions after the initial top-left probe.
68
+ * @see lib/label/xlabels.c:xladjust (fixed position probes)
69
+ */
70
+ export declare function tryFixedPositions(xlp: XLabelsState, objp: ObjectT, bp: BestPosT, intrsx: (ObjectT | null)[]): {
71
+ bp: BestPosT;
72
+ done: boolean;
73
+ };
74
+ /**
75
+ * Find the best label position for objp using the 9-candidate + sliding search.
76
+ * @see lib/label/xlabels.c:xladjust
77
+ */
78
+ export declare function xladjust(xlp: XLabelsState, objp: ObjectT): BestPosT;
79
+ //# sourceMappingURL=xlabels-intersect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlabels-intersect.d.ts","sourceRoot":"","sources":["../../src/label/xlabels-intersect.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAY1D,wCAAwC;AACxC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,wCAAwC;AACxC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,4DAA4D;AAC5D,eAAO,MAAM,KAAK,IAAI,CAAC;AAgBvB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;CACb;AAkFD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAC7C,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAC7C,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,MAAM,CAWR;AAsBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAChC,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,QAAQ,CAcV;AAqFD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC9D,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAUjC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC9D,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAUjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAChC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAkBjC;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAmCnE"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * External-label placement — public types and placeLabels entry point.
3
+ *
4
+ * Internal algorithm is split across:
5
+ * xlabels-geom.ts — Hilbert code, rect helpers
6
+ * xlabels-intersect.ts — neighbour-grid recording, xladjust
7
+ *
8
+ * @see lib/label/xlabels.h
9
+ * @see lib/label/xlabels.c
10
+ */
11
+ import { type Box } from '../model/geom.js';
12
+ /**
13
+ * External label attached to a graph object.
14
+ * @see lib/label/xlabels.h:xlabel_t
15
+ */
16
+ export interface XLabelT {
17
+ /** Size of label (input). @see xlabel_t.sz */
18
+ sz: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ /** Position of lower-left corner (output). @see xlabel_t.pos */
23
+ pos: {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ /** Opaque pointer to label in the graph. @see xlabel_t.lbl */
28
+ lbl: unknown;
29
+ /** Non-zero when position has been set. @see xlabel_t.set */
30
+ set: number;
31
+ }
32
+ /**
33
+ * Graph object that may carry an external label.
34
+ * @see lib/label/xlabels.h:object_t
35
+ */
36
+ export interface ObjectT {
37
+ /** Position of lower-left corner. @see object_t.pos */
38
+ pos: {
39
+ x: number;
40
+ y: number;
41
+ };
42
+ /** Size; may be zero for a point object. @see object_t.sz */
43
+ sz: {
44
+ x: number;
45
+ y: number;
46
+ };
47
+ /** Attached label, or null. @see object_t.lbl */
48
+ lbl: XLabelT | null;
49
+ }
50
+ /**
51
+ * Parameters controlling label placement.
52
+ * @see lib/label/xlabels.h:label_params_t
53
+ */
54
+ export interface LabelParamsT {
55
+ /** Bounding box of all objects. @see label_params_t.bb */
56
+ bb: Box;
57
+ /** When true, all labels must be placed even if overlaps result. */
58
+ force: boolean;
59
+ }
60
+ /**
61
+ * Place external labels near their attached objects, minimising overlaps.
62
+ * Returns 0 when all labels were placed without overlap; non-zero otherwise.
63
+ *
64
+ * @see lib/label/xlabels.c:placeLabels
65
+ */
66
+ export declare function placeLabels(objs: ObjectT[], lbls: XLabelT[], params: LabelParamsT): number;
67
+ //# sourceMappingURL=xlabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlabels.d.ts","sourceRoot":"","sources":["../../src/label/xlabels.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAY5C;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,8CAA8C;IAC9C,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,gEAAgE;IAChE,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,8DAA8D;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,uDAAuD;IACvD,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,6DAA6D;IAC7D,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,iDAAiD;IACjD,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,EAAE,EAAE,GAAG,CAAC;IACR,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;CAChB;AA+HD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,EAAE,EACf,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAaR"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Per-block circle layout: skeleton extraction, spanning tree, longest-path
3
+ * heuristic, crossing reduction, radius and position assignment.
4
+ *
5
+ * Ports lib/circogen/blockpath.c. All functions are exported so lizard
6
+ * counts each one independently.
7
+ *
8
+ * @see lib/circogen/blockpath.c
9
+ */
10
+ import type { Node } from '../../model/node.js';
11
+ import type { Block, SubGraph, CircState, DerivedNode, DerivedEdge } from './blocks.js';
12
+ export type SpanNode = {
13
+ dn: DerivedNode;
14
+ tparent: SpanNode | null;
15
+ visited: boolean;
16
+ distone: number;
17
+ disttwo: number;
18
+ leafone: SpanNode | null;
19
+ leaftwo: SpanNode | null;
20
+ onpath: boolean;
21
+ };
22
+ export declare function blockGraph(allEdges: DerivedEdge[], sn: Block): void;
23
+ export declare function derivedOf(n: Node): DerivedNode | null;
24
+ export declare function closeOpenEdge(e: DerivedEdge, d: DerivedNode, opened: DerivedEdge[]): number;
25
+ export declare function openEdgesAt(d: DerivedNode, edges: DerivedEdge[], opened: DerivedEdge[], order: number): void;
26
+ /**
27
+ * C's count_all_crossings — INCLUDING its load-bearing bug: remove_edge keys
28
+ * the open-edge dict by the half-edge POINTER handed to it, and the closing
29
+ * node's agfstedge always yields the OPPOSITE half from the one stored when
30
+ * the edge was opened, so dtdelete never matches and the list only grows
31
+ * (circogen/edgelist.c:cmpItem on Agedge_t*). Each edge's close therefore
32
+ * counts EVERY edge opened after it (nested as well as interleaved spans),
33
+ * minus edges incident to the closing node — an inflated count that reduce()
34
+ * uses to accept moves. Do not "fix" this to true interleave counting: the
35
+ * final circle order depends on it.
36
+ * @see lib/circogen/blockpath.c:count_all_crossings
37
+ * @see lib/circogen/edgelist.c:remove_edge
38
+ */
39
+ export declare function countCrossings(list: Node[], edges: DerivedEdge[]): number;
40
+ export declare function insertNode(list: Node[], cn: Node, neighbor: Node, pos: number): void;
41
+ /**
42
+ * One reduce pass, mirroring C's reduce (blockpath.c:439): iterate the
43
+ * SUBGRAPH's nodes in agfstnode (root-seq) order — NOT the current list
44
+ * order — and each node's incident edges in agfstedge order; the neighbour
45
+ * is agtail(e) unless that is curnode. The first-improving-move order is
46
+ * load-bearing for the final arrangement.
47
+ */
48
+ export declare function reducePass(list: Node[], edges: DerivedEdge[], cnt: {
49
+ v: number;
50
+ }, nodes: DerivedNode[]): void;
51
+ /** @see lib/circogen/blockpath.c:reduce_edge_crossings */
52
+ export declare function reduceEdgeCrossings(list: Node[], edges: DerivedEdge[], nodes: DerivedNode[]): Node[];
53
+ /**
54
+ * Incident edges of dn in agfstedge order over the (possibly pruned)
55
+ * subgraph edge set: out-edges (by head order, seq) then in-edges (by tail
56
+ * order, seq). `ord`/`seq` maps carry the derived root's node and edge
57
+ * creation orders. @see lib/cgraph/edge.c:agfstedge
58
+ */
59
+ export declare function spanIncident(dn: DerivedNode, edges: DerivedEdge[], ord: Map<DerivedNode, number>, seq: Map<DerivedEdge, number>): DerivedEdge[];
60
+ export declare function dfsSpan(sn: SpanNode, map: Map<DerivedNode, SpanNode>, edges: DerivedEdge[], ord: Map<DerivedNode, number>, seq: Map<DerivedEdge, number>): void;
61
+ export declare function buildSpanTree(nodes: DerivedNode[], edges: DerivedEdge[]): Map<DerivedNode, SpanNode>;
62
+ export declare function measureDist(leaf: SpanNode, anc: SpanNode, dist: number, change: SpanNode | null): void;
63
+ export declare function pathToNode(from: SpanNode, stop: SpanNode): SpanNode[];
64
+ export declare function leafDegree(sn: SpanNode, all: SpanNode[]): number;
65
+ export declare function findCommon(spanNodes: SpanNode[]): SpanNode | null;
66
+ export declare function findLongestPath(spanNodes: SpanNode[]): SpanNode[];
67
+ export declare function largestNodesize(list: Node[]): number;
68
+ export declare function neighborSet(dn: DerivedNode, edges: DerivedEdge[]): Set<DerivedNode>;
69
+ export declare function isNeighbor(n: Node, nbrs: Set<DerivedNode>): boolean;
70
+ export declare function placeNodeBetweenTwo(list: Node[], dn: DerivedNode, nbrs: Set<DerivedNode>): boolean;
71
+ export declare function placeNodeAfterAny(list: Node[], dn: DerivedNode, nbrs: Set<DerivedNode>): boolean;
72
+ export declare function placeNode(dn: DerivedNode, edges: DerivedEdge[], list: Node[]): void;
73
+ export declare function placeResiduals(sn: Block, edges: DerivedEdge[], list: Node[]): void;
74
+ export declare function realignToParent(list: Node[]): void;
75
+ export declare function assignPositions(list: Node[], radius: number): void;
76
+ /** Mutable clone edge (xclone in C's clone_graph). */
77
+ interface XEdge {
78
+ tail: XNode;
79
+ head: XNode;
80
+ /** Original derived edge; null once its deletion from outg is recorded. */
81
+ orige: DerivedEdge | null;
82
+ /** Creation order — cgraph edge seq proxy. */
83
+ seq: number;
84
+ alive: boolean;
85
+ }
86
+ /** Mutable clone node. `idx` is creation order — C compares node POINTERS
87
+ * ((uintptr_t)n1 < n2, allocation order); creation index is the proxy. */
88
+ interface XNode {
89
+ dn: DerivedNode;
90
+ idx: number;
91
+ degree: number;
92
+ out: XEdge[];
93
+ in: XEdge[];
94
+ alive: boolean;
95
+ }
96
+ /** Working state threaded through the find_pair_edges passes. */
97
+ interface PairCtx {
98
+ pruned: Set<DerivedEdge>;
99
+ nextSeq: {
100
+ v: number;
101
+ };
102
+ }
103
+ /**
104
+ * The pair-edge scan for one node: delete "paired" original edges from the
105
+ * skeleton and add synthetic clone edges between unpaired neighbours.
106
+ * @see lib/circogen/blockpath.c:find_pair_edges
107
+ */
108
+ export declare function findPairEdges(n: XNode, ctx: PairCtx): void;
109
+ /**
110
+ * Create the layout skeleton: repeatedly take the minimum-degree clone node,
111
+ * delete paired original edges around it, and remove it. Returns the block's
112
+ * edges minus the pruned ones (C's outg), which the spanning tree runs over.
113
+ * The deglist is qsort-sorted (descending degree, LIST_SORT -> libc qsort) —
114
+ * the equal-degree tie permutation decides the processing order.
115
+ * @see lib/circogen/blockpath.c:remove_pair_edges
116
+ */
117
+ export declare function removePairEdges(nodes: DerivedNode[], edges: DerivedEdge[]): DerivedEdge[];
118
+ export declare function layoutBlock(g: SubGraph, sn: Block, minDist: number, _state: CircState): Node[];
119
+ export {};
120
+ //# sourceMappingURL=blockpath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockpath.d.ts","sourceRoot":"","sources":["../../../src/layout/circo/blockpath.ts"],"names":[],"mappings":"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"}