@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,101 @@
1
+ /**
2
+ * TypeScript port of Agnode_t from lib/cgraph/cgraph.h.
3
+ *
4
+ * @see lib/cgraph/cgraph.h:Agnode_s
5
+ */
6
+ import type { Edge } from './edge.js';
7
+ import type { Graph } from './graph.js';
8
+ import { type NodeInfo } from './nodeInfo.js';
9
+ /**
10
+ * Represents an Agnode_t — a graph node.
11
+ *
12
+ * In the C implementation, Agnode_t embeds Agobj_t (tag + data), holds a
13
+ * pointer to its root graph, and contains an embedded Agsubnode_t for the
14
+ * main graph. Per-graph membership is tracked via Agsubnode_t records in
15
+ * libcdt dicts. Here node identity is object identity (pointer comparison
16
+ * in C maps to reference equality in TypeScript).
17
+ *
18
+ * The `info` field replaces the agbindrec / ND_* mechanism (AD-1).
19
+ *
20
+ * @see lib/cgraph/cgraph.h:Agnode_s
21
+ * @see lib/cgraph/cgraph.h:Agsubnode_s
22
+ */
23
+ export declare class Node {
24
+ /**
25
+ * Unique integer ID per root graph; maps to AGID in the C implementation.
26
+ * @see lib/cgraph/cgraph.h:AGID
27
+ */
28
+ readonly id: number;
29
+ /** Node name; agnameof equivalent. @see lib/cgraph/cgraph.h:agnameof */
30
+ readonly name: string;
31
+ /**
32
+ * String attributes (agget/agset equivalents).
33
+ * @see lib/cgraph/cgraph.h:Agattr_s
34
+ */
35
+ attrs: Map<string, string>;
36
+ /**
37
+ * Layout-engine info; replaces ND_* macros via agbindrec (AD-1).
38
+ * @see lib/cgraph/cgraph.h:agbindrec
39
+ */
40
+ info: NodeInfo;
41
+ /**
42
+ * Root graph that owns this node.
43
+ * @see lib/cgraph/cgraph.h:Agnode_s
44
+ */
45
+ readonly root: Graph;
46
+ /**
47
+ * Frozen snapshot of the node-attribute defaults (`node [...]`) in effect —
48
+ * from the declaring subgraph up through its ancestors — at the moment this
49
+ * node was first created. Captured at creation (not read live at render) so
50
+ * that a `node [...]` declared *after* this node in the same or an ancestor
51
+ * scope does not retroactively apply, matching DOT semantics. Present on
52
+ * parser-built nodes (even when empty); undefined on programmatically created
53
+ * nodes, which fall back to live graph defaults in `nodeAttr`.
54
+ */
55
+ nodeDefaultsSnapshot?: Map<string, string>;
56
+ /** @see lib/cgraph/node.c:agnode */
57
+ constructor(id: number, name: string, root: Graph);
58
+ /**
59
+ * Returns out-edges of this node in graph g (where this node is the tail).
60
+ *
61
+ * ORDER: cgraph's per-node out-edge dict sorts by the SEQ of the edge's
62
+ * out-half node — the HEAD — then by edge seq (edge.c:agedgeseqcmpf,
63
+ * Ag_mainedge_seq_disc). Iteration is therefore by (head creation order,
64
+ * edge creation order), NOT by plain edge insertion order. This ordering
65
+ * is load-bearing for emission order and for force-accumulation order in
66
+ * the iterative engines.
67
+ *
68
+ * INVARIANT: In the C cgraph library, the adjacency list for a node begins
69
+ * with the node's own self-loop (index 0), and neighbor traversal MUST start
70
+ * at index 1. This convention originates from lib/cgraph/edge.c and
71
+ * agfstedge/agnxtedge. In this TypeScript implementation, self-loops are
72
+ * included in outEdges() but are excluded from inEdges() — matching the
73
+ * agnxtedge behavior that skips self-loops as in-edges. Callers iterating
74
+ * over neighbors must account for self-loop edges appearing in outEdges().
75
+ *
76
+ * @see lib/cgraph/edge.c:agfstout
77
+ * @see lib/cgraph/edge.c:agnxtout
78
+ * @see lib/cgraph/edge.c:agedgeseqcmpf
79
+ */
80
+ outEdges(g: Graph): Edge[];
81
+ /**
82
+ * Returns in-edges of this node in graph g (where this node is the head).
83
+ * Self-loops are excluded per C agnxtedge semantics. Ordered by the SEQ
84
+ * of the in-half node — the TAIL — then edge seq (agedgeseqcmpf).
85
+ *
86
+ * @see lib/cgraph/edge.c:agfstin
87
+ * @see lib/cgraph/edge.c:agnxtin
88
+ * @see lib/cgraph/edge.c:agnxtedge (skips self-loops as in-edges)
89
+ * @see lib/cgraph/edge.c:agedgeseqcmpf
90
+ */
91
+ inEdges(g: Graph): Edge[];
92
+ }
93
+ /**
94
+ * Build a tail→out-edges index for graph `g`. Each list is identical to
95
+ * `node.outEdges(g)` (tail === node, self-loops included, sorted by head.id then
96
+ * seq), but the whole index is O(E log E) instead of O(N·E log E) from calling
97
+ * outEdges once per node. Use at sites that loop every node's out-edges and do
98
+ * not mutate `g.edges` during the loop. @see Node.outEdges
99
+ */
100
+ export declare function buildOutEdgeIndex(g: Graph): Map<Node, Edge[]>;
101
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/model/node.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,eAAe,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,qBAAa,IAAI;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE3C,oCAAoC;gBACxB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;IAQjD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE;IAM1B;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE;CAK1B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAW7D"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * TypeScript port of Agnodeinfo_t from lib/common/types.h.
3
+ *
4
+ * All ND_* macros in the C source expand into this struct via AGDATA().
5
+ * In TypeScript, ND_* accesses become direct property reads/writes on NodeInfo.
6
+ *
7
+ * @see lib/common/types.h:Agnodeinfo_t
8
+ * @see lib/common/types.h:ND_* macros
9
+ */
10
+ import type { Point, Box } from './geom.js';
11
+ import type { Edge } from './edge.js';
12
+ import type { Graph } from './graph.js';
13
+ import type { Node } from './node.js';
14
+ import type { NodeAlgData } from './algData.js';
15
+ export type { DotAlgData, NeatoAlgData, FdpAlgData, FdpDndata, CircoNData, CircoCData, TwopiAlgData, OsageAlgData, PatchworkAlgData, NodeAlgData, } from './algData.js';
16
+ export { THETA_UNSET } from './algData.js';
17
+ /**
18
+ * Dynamic edge list, ported from the C `elist` struct.
19
+ *
20
+ * @see lib/common/types.h: typedef struct elist { edge_t **list; size_t size; }
21
+ */
22
+ export interface EdgeList {
23
+ list: Edge[];
24
+ size: number;
25
+ }
26
+ /**
27
+ * Node-level layout info record, ported from Agnodeinfo_t in lib/common/types.h.
28
+ *
29
+ * This interface replaces all ND_* macro accesses in the C source. Required
30
+ * (always-present) fields mirror the non-pointer, non-conditional fields of
31
+ * Agnodeinfo_t. Optional fields correspond to pointer fields and to fields
32
+ * gated by #ifndef DOT_ONLY / #ifndef NEATO_ONLY.
33
+ *
34
+ * @see lib/common/types.h:Agnodeinfo_t
35
+ * @see lib/common/types.h:ND_* macros
36
+ */
37
+ export interface NodeInfo {
38
+ /** Final layout coordinate (node center). @see lib/common/types.h:ND_coord */
39
+ coord: Point;
40
+ /** Node width in inches. @see lib/common/types.h:ND_width */
41
+ width: number;
42
+ /** Node height in inches. @see lib/common/types.h:ND_height */
43
+ height: number;
44
+ /** Bounding box. @see lib/common/types.h:ND_bb */
45
+ bb: Box;
46
+ /** Total height in points. @see lib/common/types.h:ND_ht */
47
+ ht: number;
48
+ /** Left half-width in points. @see lib/common/types.h:ND_lw */
49
+ lw: number;
50
+ /** Right half-width in points. @see lib/common/types.h:ND_rw */
51
+ rw: number;
52
+ /**
53
+ * Width in points with penwidth taken into account.
54
+ * @see lib/common/types.h:ND_outline_width
55
+ */
56
+ outline_width: number;
57
+ /**
58
+ * Height in points with penwidth taken into account.
59
+ * @see lib/common/types.h:ND_outline_height
60
+ */
61
+ outline_height: number;
62
+ /**
63
+ * Pre-periphery-growth node width in inches: the box the innermost
64
+ * vertex ring is scaled to before peripheries step outward. Only set
65
+ * by the measurer sizing path; consumed by multi-periphery vertex
66
+ * generation. (C keeps the equivalent implicitly — poly_init builds
67
+ * vertices and bb in one pass.)
68
+ * @see lib/common/shapes.c:poly_init
69
+ */
70
+ base_width?: number;
71
+ /** Pre-periphery-growth node height in inches. @see base_width */
72
+ base_height?: number;
73
+ /**
74
+ * Layout state (char in C). @see lib/common/types.h:ND_state
75
+ */
76
+ state: number;
77
+ /**
78
+ * Node state for GUI ops (unsigned char in C).
79
+ * Bitfield values: GUI_STATE_ACTIVE, GUI_STATE_SELECTED,
80
+ * GUI_STATE_VISITED, GUI_STATE_DELETED.
81
+ * @see lib/common/types.h:ND_gui_state
82
+ */
83
+ gui_state: number;
84
+ /** True if node represents a cluster. @see lib/common/types.h:ND_clustnode */
85
+ clustnode: boolean;
86
+ /**
87
+ * Main node label (textlabel_t* in C).
88
+ * Typed as unknown until textlabel_t is ported in Batch 5b.
89
+ * @see lib/common/types.h:ND_label
90
+ */
91
+ label?: unknown;
92
+ /**
93
+ * External node label (textlabel_t* in C).
94
+ * Typed as unknown until textlabel_t is ported in Batch 5b.
95
+ * @see lib/common/types.h:ND_xlabel
96
+ */
97
+ xlabel?: unknown;
98
+ /**
99
+ * Node shape descriptor (shape_desc* in C).
100
+ * Typed as unknown until shape_desc is ported.
101
+ * @see lib/common/types.h:ND_shape
102
+ */
103
+ shape?: unknown;
104
+ /**
105
+ * Shape-specific data (polygon_t*, field_t*, or engine struct in C).
106
+ * Typed as unknown until the concrete shape types are ported.
107
+ * @see lib/common/types.h:ND_shape_info
108
+ */
109
+ shape_info?: unknown;
110
+ /**
111
+ * During the dot rank-assignment phase this field holds the assigned rank
112
+ * (integer row in the layered graph).
113
+ *
114
+ * DUAL-USE WARNING: During the dot position phase (x-coordinate assignment),
115
+ * `rank` is REPURPOSED as the x-coordinate by network simplex. Do not read
116
+ * this field as a rank value while the position phase is active. The field
117
+ * is restored to its rank value by `set_xcoords` at the end of the position
118
+ * phase. See lib/dotgen/position.c and AD-8.
119
+ *
120
+ * @see lib/common/types.h:ND_rank
121
+ */
122
+ rank?: number;
123
+ /**
124
+ * Initial order for ordered edges; also used in crossing-minimization.
125
+ * @see lib/common/types.h:ND_order
126
+ */
127
+ order?: number;
128
+ /**
129
+ * AD-8: True while the position phase is active and `rank` holds an
130
+ * x-coordinate instead of a rank index. Set before rank(g,2,…) is called;
131
+ * cleared by setXcoords after ND_coord.x is populated.
132
+ * @see lib/dotgen/position.c:set_xcoords
133
+ */
134
+ rankIsXCoord?: boolean;
135
+ /** @see lib/common/types.h:ND_mval */
136
+ mval?: number;
137
+ /**
138
+ * Fast-graph / spanning-tree node type (char in C).
139
+ * @see lib/common/types.h:ND_node_type
140
+ */
141
+ node_type?: number;
142
+ /**
143
+ * Rank type classification (char in C).
144
+ * @see lib/common/types.h:ND_ranktype
145
+ */
146
+ ranktype?: number;
147
+ /**
148
+ * Weight class (char in C).
149
+ * @see lib/common/types.h:ND_weight_class
150
+ */
151
+ weight_class?: number;
152
+ /**
153
+ * Visited / traversal mark (size_t in C).
154
+ * @see lib/common/types.h:ND_mark
155
+ */
156
+ mark?: number;
157
+ /**
158
+ * On-stack flag for DFS (char in C).
159
+ * @see lib/common/types.h:ND_onstack
160
+ */
161
+ onstack?: number;
162
+ /**
163
+ * True if edge has port info. @see lib/common/types.h:ND_has_port
164
+ */
165
+ has_port?: boolean;
166
+ /**
167
+ * Showboxes flag (unsigned char in C).
168
+ * @see lib/common/types.h:ND_showboxes
169
+ */
170
+ showboxes?: number;
171
+ /** In-edges. @see lib/common/types.h:ND_in */
172
+ in?: EdgeList;
173
+ /** Out-edges. @see lib/common/types.h:ND_out */
174
+ out?: EdgeList;
175
+ /** Flat in-edges (same-rank). @see lib/common/types.h:ND_flat_in */
176
+ flat_in?: EdgeList;
177
+ /** Flat out-edges (same-rank). @see lib/common/types.h:ND_flat_out */
178
+ flat_out?: EdgeList;
179
+ /** Other (non-tree, non-flat) edges. @see lib/common/types.h:ND_other */
180
+ other?: EdgeList;
181
+ /** Saved in-edges (for virtual node removal). @see lib/common/types.h:ND_save_in */
182
+ save_in?: EdgeList;
183
+ /** Saved out-edges (for virtual node removal). @see lib/common/types.h:ND_save_out */
184
+ save_out?: EdgeList;
185
+ /** Network-simplex tree in-edges. @see lib/common/types.h:ND_tree_in */
186
+ tree_in?: EdgeList;
187
+ /** Network-simplex tree out-edges. @see lib/common/types.h:ND_tree_out */
188
+ tree_out?: EdgeList;
189
+ /** Next node in doubly-linked fast-graph list. @see lib/common/types.h:ND_next */
190
+ next?: Node;
191
+ /** Previous node in doubly-linked fast-graph list. @see lib/common/types.h:ND_prev */
192
+ prev?: Node;
193
+ /**
194
+ * Network-simplex spanning-tree parent edge.
195
+ * @see lib/common/types.h:ND_par
196
+ */
197
+ par?: Edge;
198
+ /** Low limit for network simplex. @see lib/common/types.h:ND_low */
199
+ low?: number;
200
+ /** Limit for network simplex subtree. @see lib/common/types.h:ND_lim */
201
+ lim?: number;
202
+ /** Priority for network simplex edge selection. @see lib/common/types.h:ND_priority */
203
+ priority?: number;
204
+ /** Union-find tree size. @see lib/common/types.h:ND_UF_size */
205
+ UF_size?: number;
206
+ /** Union-find parent node. @see lib/common/types.h:ND_UF_parent */
207
+ UF_parent?: Node;
208
+ /** Representative node for a collapsed set. @see lib/common/types.h:ND_rep */
209
+ rep?: Node;
210
+ /** Set leader for min/max rank. @see lib/common/types.h:ND_set */
211
+ set?: Node;
212
+ /** Cluster subgraph that this node belongs to. @see lib/common/types.h:ND_clust */
213
+ clust?: Graph;
214
+ /**
215
+ * Flat-edge label constraint edge stored in ND_alg during dot position phase.
216
+ * Set by flat.c when a virtual node hosts a flat-edge label; read by
217
+ * make_LR_constraints and dotsplines.c.
218
+ * @see lib/dotgen/flat.c:ND_alg (flat edge label usage)
219
+ */
220
+ posAlg?: Edge;
221
+ /**
222
+ * True if the node's position is pinned (pos attribute with !).
223
+ * @see lib/common/types.h:ND_pinned
224
+ */
225
+ pinned?: boolean;
226
+ /**
227
+ * True if the node has a user-supplied `pos=` (C's ND_pinned >= P_SET, i.e.
228
+ * hasPos). Distinct from {@link pinned} (P_PIN, isFixed): a plain `pos=`
229
+ * seeds the initial layout without fixing the node. neato uses it to start
230
+ * majorization from the input positions (user_pos + hasPos).
231
+ * @see lib/neatogen/neatoinit.c:user_pos; lib/common/macros.h:hasPos
232
+ */
233
+ posSet?: boolean;
234
+ /**
235
+ * Internal integer node ID used by neato/fdp.
236
+ * @see lib/common/types.h:ND_id
237
+ */
238
+ id?: number;
239
+ /**
240
+ * Index into the priority queue heap (neato/fdp).
241
+ * @see lib/common/types.h:ND_heapindex
242
+ */
243
+ heapindex?: number;
244
+ /**
245
+ * BFS hop count from the starting node (neato/fdp).
246
+ * @see lib/common/types.h:ND_hops
247
+ */
248
+ hops?: number;
249
+ /**
250
+ * N-dimensional position vector (length = ndim).
251
+ * @see lib/common/types.h:ND_pos
252
+ */
253
+ pos?: number[];
254
+ /**
255
+ * Distance value used by neato stress majorization.
256
+ * @see lib/common/types.h:ND_dist
257
+ */
258
+ dist?: number;
259
+ /**
260
+ * Per-engine algorithm data. Each layout engine stores a different struct
261
+ * in ND_alg; the `kind` discriminant identifies which engine's data is
262
+ * active without unsafe casting (AD-7).
263
+ *
264
+ * @see lib/common/types.h:ND_alg
265
+ */
266
+ alg?: NodeAlgData;
267
+ }
268
+ /**
269
+ * Constructs a zero-valued NodeInfo with all required fields set to their
270
+ * zero/false initial state and all optional fields absent (undefined).
271
+ *
272
+ * Mirrors the effect of calloc-initializing an Agnodeinfo_t in C.
273
+ *
274
+ * @see lib/common/types.h:Agnodeinfo_t
275
+ * @see lib/cgraph/node.c:agnode (initial record allocation via agbindrec)
276
+ */
277
+ export declare function makeNodeInfo(): NodeInfo;
278
+ //# sourceMappingURL=nodeInfo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeInfo.d.ts","sourceRoot":"","sources":["../../src/model/nodeInfo.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,YAAY,EACV,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EACvE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,GAC1D,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ;IAKvB,8EAA8E;IAC9E,KAAK,EAAE,KAAK,CAAC;IAEb,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IAEd,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,EAAE,EAAE,GAAG,CAAC;IAER,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IAMnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,8CAA8C;IAC9C,EAAE,CAAC,EAAE,QAAQ,CAAC;IAEd,gDAAgD;IAChD,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf,oEAAoE;IACpE,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,yEAAyE;IACzE,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB,oFAAoF;IACpF,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,wEAAwE;IACxE,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAIpB,kFAAkF;IAClF,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ,sFAAsF;IACtF,IAAI,CAAC,EAAE,IAAI,CAAC;IAIZ;;;OAGG;IACH,GAAG,CAAC,EAAE,IAAI,CAAC;IAEX,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,IAAI,CAAC;IAEX,kEAAkE;IAClE,GAAG,CAAC,EAAE,IAAI,CAAC;IAEX,mFAAmF;IACnF,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAMd;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,WAAW,CAAC;CACnB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAqCvC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * RankEntry and RankTable — one rank in a dot-layout ranked graph.
3
+ * Ported from lib/common/types.h:rank_t.
4
+ *
5
+ * @see lib/common/types.h:rank_t
6
+ */
7
+ import type { Node } from './node.js';
8
+ /**
9
+ * Bit-packed flat-edge adjacency matrix for one rank.
10
+ * Bit (r,c) = data[(r*ncols+c)>>3] >> ((r*ncols+c)&7) & 1.
11
+ * Dynamically expands on matrixSet.
12
+ * @see lib/dotgen/mincross.c:adjmatrix_t
13
+ */
14
+ export interface AdjMatrix {
15
+ nrows: number;
16
+ ncols: number;
17
+ data: Uint8Array;
18
+ }
19
+ /**
20
+ * One rank in a dot-layout ranked graph.
21
+ *
22
+ * @see lib/common/types.h:rank_t
23
+ */
24
+ export interface RankEntry {
25
+ /** Number of nodes in this rank. @see lib/common/types.h:rank_t.n */
26
+ n: number;
27
+ /** Ordered list of nodes in rank. @see lib/common/types.h:rank_t.v */
28
+ v: Node[];
29
+ /**
30
+ * Globally allocated number of nodes.
31
+ * @see lib/common/types.h:rank_t.an
32
+ */
33
+ an: number;
34
+ /** Allocated list of nodes in rank. @see lib/common/types.h:rank_t.av */
35
+ av: Node[];
36
+ /** Height below centerline. @see lib/common/types.h:rank_t.ht1 */
37
+ ht1: number;
38
+ /** Height above centerline. @see lib/common/types.h:rank_t.ht2 */
39
+ ht2: number;
40
+ /**
41
+ * Height below centerline (primitive nodes only).
42
+ * @see lib/common/types.h:rank_t.pht1
43
+ */
44
+ pht1: number;
45
+ /**
46
+ * Height above centerline (primitive nodes only).
47
+ * @see lib/common/types.h:rank_t.pht2
48
+ */
49
+ pht2: number;
50
+ /** For transpose(). @see lib/common/types.h:rank_t.candidate */
51
+ candidate: boolean;
52
+ /** Whether rank is valid. @see lib/common/types.h:rank_t.valid */
53
+ valid: boolean;
54
+ /**
55
+ * Cached crossing count.
56
+ * C type is int64_t; JS number is safe up to 2^53.
57
+ * @see lib/common/types.h:rank_t.cache_nc
58
+ */
59
+ cache_nc: number;
60
+ /**
61
+ * Flat-edge adjacency matrix for cycle-breaking. Allocated per-rank by
62
+ * flatBreakcycles when any flat edges exist; freed in cleanup2.
63
+ * @see lib/dotgen/mincross.c:GD_rank(g)[r].flat
64
+ */
65
+ flat?: AdjMatrix;
66
+ /**
67
+ * Offset into av[] for the current connected component's slice.
68
+ * Simulates C pointer arithmetic: C's `rank[r].v = rank[r].av + offset`
69
+ * becomes TypeScript's `vStart`.
70
+ * @see lib/dotgen/mincross.c:init_mccomp
71
+ */
72
+ vStart?: number;
73
+ }
74
+ /**
75
+ * Array of rank entries for a ranked (dot) graph layout.
76
+ *
77
+ * @see lib/common/types.h:rank_t
78
+ */
79
+ export type RankTable = RankEntry[];
80
+ //# sourceMappingURL=rankEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankEntry.d.ts","sourceRoot":"","sources":["../../src/model/rankEntry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMtC;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB;AAMD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,CAAC,EAAE,MAAM,CAAC;IACV,sEAAsE;IACtE,CAAC,EAAE,IAAI,EAAE,CAAC;IACV;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,EAAE,EAAE,IAAI,EAAE,CAAC;IACX,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * C-exact cdt Dtoset for the ortho channel dictionaries.
3
+ *
4
+ * The ortho maze keeps its channels in two-level cdt Dtoset splay trees and
5
+ * walks them with `dtflatten` + `dtlink` (following raw `->right` pointers).
6
+ * Crucially, `add_p_edges` calls `chanSearch` (a `dtmatch`) WHILE walking the
7
+ * flattened dicts: the first search UNFLATTENs the dict (the sorted right-
8
+ * spine chain simply becomes the tree again) and every search top-down-splays
9
+ * the tree, rewriting the very `->right` pointers the walker is following.
10
+ * The walk therefore silently skips every channel that a splay rotation moves
11
+ * into a left subtree — under 1447_1/osage C visits only 157 of 294 channels
12
+ * in the parallel pass. This behavior is deterministic and LOAD-BEARING: the
13
+ * final precedence graphs (and thus track assignments) depend on exactly
14
+ * which channels the corrupted walk reaches.
15
+ *
16
+ * The repo's generic DtSplay deliberately deviates from dttree.c in the
17
+ * not-found reassembly and insert attachment (documented in splay-core.ts),
18
+ * which changes tree SHAPE — harmless for its users, fatal here where shape
19
+ * drives the walk. Hence this separate byte-faithful implementation.
20
+ *
21
+ * Ports exactly:
22
+ * - dttree.c do_search loop + found (has_root) and not-found (no_root)
23
+ * reassembly, DT_MATCH and DT_INSERT flavours (DT_OSET only).
24
+ * - dtflatten.c right-linearisation (RROTATE loop) + DT_FLATTEN flag.
25
+ * - dthdr.h UNFLATTEN: any tree op clears the flag; for DT_OSET the
26
+ * flattened chain IS a valid (degenerate) tree, so no restructuring.
27
+ *
28
+ * @see lib/cdt/dttree.c:dttree
29
+ * @see lib/cdt/dtflatten.c:dtflatten
30
+ * @see lib/cdt/dtrestore.c:dtrestore
31
+ * @see lib/ortho/ortho.c:chanSearch, assignTracks (dtflatten walks)
32
+ */
33
+ /** Dtlink_t analogue. Walkers follow `.right` live, exactly like dtlink(). */
34
+ export interface CdtNode<T> {
35
+ left: CdtNode<T> | null;
36
+ right: CdtNode<T> | null;
37
+ obj: T;
38
+ }
39
+ /**
40
+ * Ordered set (DT_OSET) with C-exact splay + flatten semantics.
41
+ * K is the search-key type; the comparator receives (searchKey, nodeKey).
42
+ */
43
+ export declare class CdtOset<T, K> {
44
+ private readonly keyOf;
45
+ private readonly cmp;
46
+ /** dt->data.here — current root (or flattened-list head). */
47
+ here: CdtNode<T> | null;
48
+ /** DT_FLATTEN flag. */
49
+ private flattened;
50
+ constructor(keyOf: (obj: T) => K, cmp: (a: K, b: K) => number);
51
+ /** UNFLATTEN(dt): clear the flag. For DT_OSET dtrestore leaves `here`
52
+ * pointing at the chain head — the right-spine chain IS the tree. */
53
+ private unflatten;
54
+ /**
55
+ * The dttree.c do_search loop. Returns the stopped-at node (`root` in C,
56
+ * null when the key fell off the tree) plus the partition state.
57
+ * link.right = LEFT partition head, link.left = RIGHT partition head
58
+ * (names inverted in C — preserved). l/r are the partition tails.
59
+ * @see lib/cdt/dttree.c:dttree (do_search)
60
+ */
61
+ private search;
62
+ /**
63
+ * dtmatch: search by key, splaying. Returns the object or null.
64
+ * Found: has_root reassembly. Not found: no_root reassembly.
65
+ * @see lib/cdt/dttree.c:dttree (DT_MATCH)
66
+ */
67
+ match(key: K): T | null;
68
+ /**
69
+ * dtinsert (DT_OSET): if an equal object exists, splay it to root and
70
+ * return IT (the caller must discard its own copy — C frees it). Otherwise
71
+ * the new node becomes root with the raw partitions as its subtrees.
72
+ * @see lib/cdt/dttree.c:dttree (DT_INSERT)
73
+ */
74
+ insert(obj: T): T;
75
+ /**
76
+ * dtflatten: right-linearise the tree into a sorted chain (returns head).
77
+ * Early-returns the existing chain when already flattened.
78
+ * @see lib/cdt/dtflatten.c:dtflatten
79
+ */
80
+ flatten(): CdtNode<T> | null;
81
+ }
82
+ //# sourceMappingURL=chan-dict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chan-dict.d.ts","sourceRoot":"","sources":["../../src/ortho/chan-dict.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,CAAC,CAAC;CACR;AAcD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,EAAE,CAAC;IAOrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPtB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAQ;IAC/B,uBAAuB;IACvB,OAAO,CAAC,SAAS,CAAS;gBAGP,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EACpB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM;IAG9C;0EACsE;IACtE,OAAO,CAAC,SAAS;IAIjB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAmEd;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAuBvB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAyBjB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;CAuB7B"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Max-heap priority queue for Dijkstra shortest path.
3
+ *
4
+ * Faithful port of lib/ortho/fPQ.c.
5
+ * Values stored NEGATED — larger negative = lower priority.
6
+ * The guard node at index 0 has nVal = 0, so upheap stops at root.
7
+ *
8
+ * @see lib/ortho/fPQ.c
9
+ * @see lib/ortho/fPQ.h
10
+ */
11
+ import type { SNode } from "./types.js";
12
+ /**
13
+ * Priority queue state.
14
+ * @see lib/ortho/fPQ.c:struct pq
15
+ */
16
+ export interface Pq {
17
+ pq: (SNode | null)[];
18
+ cnt: number;
19
+ guard: SNode;
20
+ size: number;
21
+ }
22
+ /**
23
+ * Allocate a priority queue for up to sz nodes.
24
+ * @see lib/ortho/fPQ.c:PQgen
25
+ */
26
+ export declare function pqGen(sz: number): Pq;
27
+ /**
28
+ * Free the priority queue. (No-op in TS.)
29
+ * @see lib/ortho/fPQ.c:PQfree
30
+ */
31
+ export declare function pqFree(_pq: Pq): void;
32
+ /**
33
+ * Reset the priority queue to empty.
34
+ * @see lib/ortho/fPQ.c:PQinit
35
+ */
36
+ export declare function pqInit(pq: Pq): void;
37
+ /**
38
+ * Insert node np into the queue.
39
+ * Returns 1 on overflow, 0 on success.
40
+ * @see lib/ortho/fPQ.c:PQ_insert
41
+ */
42
+ export declare function pqInsert(pq: Pq, np: SNode): number;
43
+ /**
44
+ * Remove and return the node with the highest nVal (most-negative distance).
45
+ * Returns null when queue is empty.
46
+ * @see lib/ortho/fPQ.c:PQremove
47
+ */
48
+ export declare function pqRemove(pq: Pq): SNode | null;
49
+ /**
50
+ * Update the priority of node n to d and restore heap.
51
+ * @see lib/ortho/fPQ.c:PQupdate
52
+ */
53
+ export declare function pqUpdate(pq: Pq, n: SNode, d: number): void;
54
+ //# sourceMappingURL=fpq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fpq.d.ts","sourceRoot":"","sources":["../../src/ortho/fpq.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,EAAE;IACjB,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,CAkBpC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAEpC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAEnC;AAoBD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,MAAM,CAQlD;AA2BD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,IAAI,CAW7C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1D"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Public entry point for orthogonal edge routing.
3
+ *
4
+ * Faithful port of lib/ortho/ortho.c:orthoEdges.
5
+ *
6
+ * @see lib/ortho/ortho.c:orthoEdges
7
+ */
8
+ import type { OrthoGraph, OrthoEdge, OrthoNode, OrthoPoint } from "./types.js";
9
+ import type { ClipAndInstallFn } from "./types.js";
10
+ export type { OrthoGraph, OrthoEdge, OrthoNode, OrthoPoint, ClipAndInstallFn };
11
+ export { SEED } from "./partition.js";
12
+ /**
13
+ * Squared distance between the two endpoints' CENTERS — used only to order
14
+ * edges for routing. C uses `DIST2(ND_coord(tail), ND_coord(head))`, i.e. the
15
+ * node centres, NOT the bb corners: for nodes of differing width the corner-to-
16
+ * corner length reorders near-equal-length edges, and routing order drives maze
17
+ * channel occupancy (and thus corridor selection). Squared vs sqrt is immaterial
18
+ * to the ordering but kept squared to match C exactly.
19
+ *
20
+ * Read `coord` directly when the caller plumbed it (same fallback pattern as
21
+ * mkMaze's gcell derivation, maze.ts:267-268) rather than re-deriving the
22
+ * centre from `bb` — the bb round-trip ((c-lw)+(c+rw))/2 loses low bits versus
23
+ * C's raw ND_coord read and can flip a qsort tie-order on other graphs. Falls
24
+ * back to the bb centre only for port-less callers that don't model coord.
25
+ * @see lib/ortho/ortho.c:1124 (edgeLen)
26
+ */
27
+ export declare function edgeLen(e: OrthoEdge): number;
28
+ /**
29
+ * For edges without position information, construct an orthogonal routing.
30
+ * If useLbls is true, issues a warning and sets useLbls=false.
31
+ *
32
+ * @see lib/ortho/ortho.c:orthoEdges
33
+ */
34
+ export declare function orthoEdges(g: OrthoGraph, useLbls: boolean, clipAndInstall?: ClipAndInstallFn): void;
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ortho/index.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAE7C,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAUnD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAQ5C;AAgED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,UAAU,EACb,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,gBAAgB,GAChC,IAAI,CA2EN"}