@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,33 @@
1
+ /**
2
+ * cloneNode / cloneEdge for the flat-adj recursive pipeline.
3
+ *
4
+ * @see lib/dotgen/dotsplines.c:cloneNode, cloneEdge, cleanupCloneGraph
5
+ */
6
+ import type { Graph } from '../../model/graph.js';
7
+ import type { Node } from '../../model/node.js';
8
+ import type { Edge } from '../../model/edge.js';
9
+ import type { Point } from '../../model/geom.js';
10
+ /**
11
+ * Map a point from the flat-adj auxiliary frame back to the original frame:
12
+ * un-rotate when the original graph is flipped, then translate by del.
13
+ * @see lib/dotgen/dotsplines.c:transformf
14
+ */
15
+ export declare function transformf(p: Point, del: Point, flip: boolean): Point;
16
+ /**
17
+ * Create a copy of orign in graph g, carrying geometry from NodeInfo.
18
+ * @see lib/dotgen/dotsplines.c:cloneNode
19
+ */
20
+ export declare function cloneNode(g: Graph, orign: Node): Node;
21
+ /**
22
+ * Create a copy of orig between tn→hn in graph g.
23
+ * @see lib/dotgen/dotsplines.c:cloneEdge
24
+ */
25
+ export declare function cloneEdge(g: Graph, tn: Node, hn: Node, orig: Edge): Edge;
26
+ /**
27
+ * Release all resources held by the auxiliary clone graph.
28
+ * In the C implementation this restores global Agsyms and calls dot_cleanup.
29
+ * In TypeScript, clearing node and edge collections is sufficient.
30
+ * @see lib/dotgen/dotsplines.c:cleanupCloneGraph
31
+ */
32
+ export declare function cleanupCloneGraph(auxg: Graph): void;
33
+ //# sourceMappingURL=splines-clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-clone.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-clone.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAGrE;AAOD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CA0CrD;AAOD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAexE;AAOD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAInD"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * make_flat_labeled_edge — route a non-adjacent same-rank (flat) edge that
3
+ * carries a center label, around the label virtual node created by flat_node
4
+ * (flat.ts:flatNode, T1). Sets the label position and installs the spline.
5
+ *
6
+ * Split out of splines-flat.ts (which is at the file-size cap) and reuses its
7
+ * makeFlatEndBox / flatBboxCtx / freshFlatPath helpers. Dispatched from the
8
+ * live router (edge-route.ts:routeForwardEdge) — see decisions.md#ad-3.
9
+ *
10
+ * @see lib/dotgen/dotsplines.c:make_flat_labeled_edge
11
+ */
12
+ import type { Graph } from '../../model/graph.js';
13
+ import type { Edge } from '../../model/edge.js';
14
+ import type { Node } from '../../model/node.js';
15
+ import type { Box, Point } from '../../model/geom.js';
16
+ /**
17
+ * Walk `ED_to_virt(e)` to the end of the chain; the tail of the last edge is the
18
+ * label virtual node `ln`. @see lib/dotgen/dotsplines.c:make_flat_labeled_edge 1328-1330
19
+ */
20
+ export declare function findLabelNode(e: Edge): Node | null;
21
+ /**
22
+ * The label box `lb` straddling the label node, with the C `ydelta`/6 clamp.
23
+ * @see lib/dotgen/dotsplines.c:make_flat_labeled_edge 1349-1355
24
+ */
25
+ export declare function flatLabelBox(g: Graph, ln: Node, tn: Node): Box;
26
+ /**
27
+ * The three connector boxes between the tail end, label box, and head end.
28
+ * @see lib/dotgen/dotsplines.c:make_flat_labeled_edge 1360-1393
29
+ */
30
+ export declare function flatLabeledBoxes(tlast: Box, hlast: Box, lb: Box): Box[];
31
+ /**
32
+ * EDGETYPE_LINE 7-point polyline: start, label (lowered by half label height),
33
+ * end. @see lib/dotgen/dotsplines.c:make_flat_labeled_edge 1335-1347
34
+ */
35
+ export declare function flatLabeledLinePoints(tn: Node, hn: Node, e: Edge): Point[];
36
+ /**
37
+ * Build the tail/label/head box channel and route a spline (or polyline)
38
+ * through it. @see lib/dotgen/dotsplines.c:make_flat_labeled_edge 1349-1411
39
+ */
40
+ export declare function routeFlatLabeledChannel(g: Graph, e: Edge, ln: Node, et: number): Point[] | null;
41
+ /**
42
+ * Decline unless `e` is a non-adjacent, same-rank, labeled flat edge with a
43
+ * label vnode reachable via its to_virt chain; otherwise return that vnode.
44
+ */
45
+ export declare function flatLabelTarget(e: Edge): Node | null;
46
+ /**
47
+ * Route a non-adjacent labeled flat edge around its label vnode and install the
48
+ * spline. Sets `ED_label(e).pos` / `.set` so the label `<text>` is emitted.
49
+ * Returns false (declining) when `e` is not such an edge so the caller falls
50
+ * back to its normal routing. @see lib/dotgen/dotsplines.c:make_flat_labeled_edge
51
+ */
52
+ export declare function makeFlatLabeledEdge(g: Graph, e: Edge): boolean;
53
+ /**
54
+ * True when `e` is an adjacent, same-rank flat edge with no declared ports —
55
+ * C's make_flat_adj_edges no-port dispatch (makeSimpleFlat / makeSimpleFlatLabels).
56
+ * Port-bearing adjacent flats route via the rotated aux graph instead.
57
+ *
58
+ * `adjacent` is read from the flat representative — the end of the `to_virt`
59
+ * chain — not from `e` directly. C's `dot_splines_` routes the `flat_out`/`other`
60
+ * edge that `checkFlatAdjacent` marked; the port instead routes the cgraph
61
+ * out-edge, which for a nonconstraint cross-cluster flat (e.g. 258 `B->D`) is a
62
+ * *different* object linked to the marked representative through `to_virt`
63
+ * (R -> v -> M, with `adjacent` set on M). Following the chain reunites the
64
+ * routed edge with its flag. For an ordinary adjacent flat the chain is empty,
65
+ * so the rep is `e` itself. @see lib/dotgen/dotsplines.c:dot_splines_ (flat gather)
66
+ */
67
+ export declare function isAdjFlatCandidate(e: Edge): boolean;
68
+ /**
69
+ * Group: every no-port adjacent flat edge between e's two endpoints, in BOTH
70
+ * directions (the UNORDERED {tail,head} set). C's make_flat_adj_edges groups by
71
+ * the unordered pair — opposing legs (a->b and b->a) and parallel siblings route
72
+ * as one call (dotsplines.c:1122; the dispatch loop's "all flat adjacent edges
73
+ * at once" at dotsplines.c:357). Keying on the ordered (tail,head) split the
74
+ * opposing leg into its own cnt=1 group, drawn straight instead of as the
75
+ * earray[1] arc. @see lib/dotgen/flat.c:flat_edges (ND_other)
76
+ */
77
+ export declare function collectAdjFlatGroup(g: Graph, e: Edge): Edge[];
78
+ /** edgelblcmpfn: labeled first; among labeled, larger dimen (x then y) first. */
79
+ export declare function edgeLblCmp(a: Edge, b: Edge): number;
80
+ /**
81
+ * Route a parallel group of adjacent (no-port) flat edges: the first goes
82
+ * straight with its label above; the rest stack up/down around the rank, each
83
+ * routed via simpleSplineRoute. @see lib/dotgen/dotsplines.c:makeSimpleFlatLabels
84
+ */
85
+ export declare function makeSimpleFlatLabels(group: Edge[], et: number): void;
86
+ /**
87
+ * Spindle of splines for a no-port, no-label adjacent flat group: fan the cnt
88
+ * edges vertically across the tail node's height (stepy = ht/(cnt-1), centred
89
+ * on tp.y). cnt == 1 yields a single straight line.
90
+ * @see lib/dotgen/dotsplines.c:makeSimpleFlat (1075)
91
+ */
92
+ export declare function makeSimpleFlat(group: Edge[], et: number): void;
93
+ /**
94
+ * Dispatch an adjacent no-port flat edge group (C's `make_flat_adj_edges`
95
+ * no-port branch): a group with any label routes via makeSimpleFlatLabels, a
96
+ * group with none via makeSimpleFlat. Both route the whole parallel group at
97
+ * once. Declines only when `e` is not a no-port adjacent flat.
98
+ * @see lib/dotgen/dotsplines.c:make_flat_adj_edges 1156-1166
99
+ */
100
+ export declare function makeAdjFlatNoPortEdge(g: Graph, e: Edge): boolean;
101
+ //# sourceMappingURL=splines-flat-labeled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-flat-labeled.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-flat-labeled.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAetD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAKlD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,CAQ9D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,CAMvE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAa1E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAa/F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAIpD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAgC9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAgBnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,CAS7D;AAcD,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAOnD;AA4FD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAyBpE;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAa9D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAWhE"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Faithful cnt>=2 non-adjacent flat multi-edge routing.
3
+ *
4
+ * C make_flat_edge (top branch, dotsplines.c:1502) and make_flat_bottom_edges
5
+ * (bottom branch, 1418) group every non-labeled, identical-port, non-adjacent
6
+ * flat edge between a same-rank node pair into ONE call and NEST their splines:
7
+ * `stepx = Multisep/(cnt+1)`, `stepy = vspace/(cnt+1)`; ONE shared makeFlatEnd
8
+ * tail+head; then edge `i` is offset by `(i+1)*step` on the two END boxes while
9
+ * the MIDDLE box keeps plain `stepy`. cnt=1 reduces to routeFlatEdgeFaithful
10
+ * (`Multisep/2 = nodesep/2`, `(0+1)*step = step`) — identical (AD-1).
11
+ *
12
+ * The port routes each non-adjacent flat independently at `nodesep/2`, so cnt>=2
13
+ * edges come out identical/overlapping; this module restores the nesting.
14
+ *
15
+ * @see lib/dotgen/dotsplines.c:make_flat_edge, make_flat_bottom_edges, dot_splines_
16
+ */
17
+ import type { Graph } from '../../model/graph.js';
18
+ import type { Edge } from '../../model/edge.js';
19
+ /**
20
+ * Collect all unrouted non-adjacent same-rank side-port flat edges between e's
21
+ * endpoints that share e's tail/head ports (C portcmp), ordered so group[0].tail
22
+ * is the lower-order (left) node, ties by seq (AD-3). Mirrors edge-route.ts:
23
+ * collectAdjacentFlatGroup with the non-adjacent + identical-port group key.
24
+ * @see lib/dotgen/dotsplines.c:dot_splines_ (portcmp 370-373), make_flat_edge
25
+ */
26
+ export declare function collectNonAdjacentFlatGroup(e: Edge, g: Graph): Edge[];
27
+ /**
28
+ * Faithful make_flat_edge / make_flat_bottom_edges cnt-loop: ONE shared
29
+ * makeFlatEnd tail+head; for i in 0..cnt-1 route edge i nested by (i+1)*step.
30
+ * Installs spl on every edges[i]; returns true iff all installed. cnt=1 reduces
31
+ * to routeFlatEdgeFaithful (AD-1). `edges` must be group-ordered (collect...).
32
+ * @see lib/dotgen/dotsplines.c:make_flat_edge, make_flat_bottom_edges
33
+ */
34
+ export declare function routeFlatEdgeGroupFaithful(g: Graph, edges: Edge[], cnt: number): boolean;
35
+ //# sourceMappingURL=splines-flat-multi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-flat-multi.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-flat-multi.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAgEhD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,CAcrE;AAyCD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAkCxF"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * make_flat_edge, make_flat_adj_edges and helpers — flat edge spline routing.
3
+ *
4
+ * Flat edges connect nodes on the same rank. The adjacent-node case
5
+ * (make_flat_adj_edges) recursively invokes the full dot pipeline on a
6
+ * cloned subgraph. Full pathplan routing is deferred until pathplan.ts
7
+ * is ported.
8
+ *
9
+ * @see lib/dotgen/dotsplines.c:make_flat_edge, make_flat_adj_edges
10
+ */
11
+ import { Graph } from '../../model/graph.js';
12
+ import type { Edge } from '../../model/edge.js';
13
+ import type { Node } from '../../model/node.js';
14
+ import type { Box, Point } from '../../model/geom.js';
15
+ import type { Path, PathendT } from '../../common/types.js';
16
+ import type { SplineInfo } from './splines-route.js';
17
+ import { type BboxCtx } from './edge-route-faithful.js';
18
+ /** Bundled args for makeFlatEndBox (keeps params <= 5). Declared here (not
19
+ * between functions) so lizard's TS parser doesn't fold it into a neighbor. */
20
+ export interface FlatEndParts {
21
+ ctx: BboxCtx;
22
+ P: Path;
23
+ e: Edge;
24
+ n: Node;
25
+ side: number;
26
+ ranksep: number;
27
+ isBegin: boolean;
28
+ }
29
+ /**
30
+ * Create a minimal clone of g for flat-adj routing.
31
+ * @see lib/dotgen/dotsplines.c:cloneGraph
32
+ */
33
+ export declare function cloneGraph(g: Graph): Graph;
34
+ /** Run rank, mincross, position on auxg; return non-zero on failure. */
35
+ export declare function runAuxPipeline(auxg: Graph): number;
36
+ /** Run sameports + splines (no normalize) on auxg; return non-zero on failure. */
37
+ export declare function runAuxSplines(auxg: Graph): number;
38
+ /**
39
+ * Route adjacent flat edges (with ports) via a rotated auxiliary layout, then
40
+ * transform the resulting splines back onto the original edges. Installs splines
41
+ * directly on the originals (returns 0 on success). Records and the no-port
42
+ * makeSimpleFlat branch are out of scope (callers gate on a side port).
43
+ * @see lib/dotgen/dotsplines.c:make_flat_adj_edges
44
+ */
45
+ export declare function makeFlatAdjEdges(g: Graph, edges: Edge[], cnt: number, _et: number): number;
46
+ /**
47
+ * True when a same-rank edge's endpoints are adjacent in rank order (no NORMAL
48
+ * or labeled-virtual node between them) — the make_flat_adj_edges case.
49
+ * @see lib/dotgen/flat.c:checkFlatAdjacent
50
+ */
51
+ export declare function isFlatAdjacent(g: Graph, e: Edge): boolean;
52
+ /**
53
+ * Route a group of flat (same-rank) edges.
54
+ * @see lib/dotgen/dotsplines.c:make_flat_edge
55
+ */
56
+ export declare function makeFlatEdge(g: Graph, _sp: SplineInfo, edges: Edge[], cnt: number, et: number): number;
57
+ /**
58
+ * makeFlatEnd (side=TOP) / makeBottomFlatEnd (side=BOTTOM): seed the endpoint
59
+ * box from maximal_bbox, set the side mask, run begin/endpath (FLATEDGE feeds
60
+ * BeginFlatSide/EndFlatSide), then append the makeregularend box up to (TOP) or
61
+ * down from (BOTTOM) the node's rank extent.
62
+ * @see lib/dotgen/dotsplines.c:makeFlatEnd, makeBottomFlatEnd
63
+ */
64
+ export declare function makeFlatEndBox(parts: FlatEndParts): PathendT;
65
+ /**
66
+ * The three connecting boxes for the top-routing branch (loop over the top).
67
+ * END boxes offset by `endStepX`/`endStepY` (C `(i+1)·step`); MIDDLE box keeps
68
+ * height `midStepY` (C plain `stepy`). cnt=1 ⇒ all three = step (original).
69
+ * @see lib/dotgen/dotsplines.c:make_flat_edge (boxes[], loop body)
70
+ */
71
+ export declare function topBoxes(tlast: Box, hlast: Box, endStepX: number, endStepY: number, midStepY: number): Box[];
72
+ /**
73
+ * The three connecting boxes for the bottom-routing branch (loop under).
74
+ * END/MIDDLE step semantics mirror `topBoxes`; cnt=1 ⇒ all = step (original).
75
+ * @see lib/dotgen/dotsplines.c:make_flat_bottom_edges (boxes[], loop body)
76
+ */
77
+ export declare function bottomBoxes(tlast: Box, hlast: Box, endStepX: number, endStepY: number, midStepY: number): Box[];
78
+ /**
79
+ * Vertical space available for the loop. Top routing reads the rank above;
80
+ * bottom routing reads the rank below; either way a node at the graph
81
+ * boundary falls back to ranksep.
82
+ * @see lib/dotgen/dotsplines.c:make_flat_edge / make_flat_bottom_edges (vspace)
83
+ */
84
+ export declare function flatVspace(g: Graph, tn: Node, top: boolean): number;
85
+ /** A fresh empty path for begin/route/end assembly. */
86
+ export declare function freshFlatPath(): Path;
87
+ /** Per-caller spline_info bounds (C builds its own `sd` per orchestrator).
88
+ * Splinesep = GD_nodesep(g) / 4 with INTEGER division (C's GD_nodesep is an
89
+ * `int`, types.h:334; dotsplines.c:267 builds one sd shared by regular + flat
90
+ * routing). A float divide here (nodesep/2 = 9) over-widens the VIRTUAL-
91
+ * neighbor gap in maximal_bbox; truncate to nodesep/4 to mirror C. */
92
+ export declare function flatBboxCtx(g: Graph): BboxCtx;
93
+ /**
94
+ * Routing-side decision: bottom routing fires when a BOTTOM port faces away
95
+ * from a non-TOP opposite end, exactly as C's
96
+ * `(tside==BOTTOM && hside!=TOP) || (hside==BOTTOM && tside!=TOP)`.
97
+ * @see lib/dotgen/dotsplines.c:make_flat_edge (tside/hside test)
98
+ */
99
+ export declare function flatSide(e: Edge): {
100
+ bottom: boolean;
101
+ side: number;
102
+ };
103
+ /** Concatenate tail boxes (fwd), the 3 connecting boxes, head boxes (rev). */
104
+ export declare function assembleFlatPath(P: Path, tend: PathendT, hend: PathendT, mid: Box[]): void;
105
+ /**
106
+ * Route a single same-rank (flat) edge carrying a side-mask port through the
107
+ * faithful `beginPath → routeSplines → endPath → clipAndInstall` pipeline.
108
+ * Returns spline control points in graphviz-internal (y-up) coordinates, or
109
+ * null when the edge is not a same-rank edge. Does NOT clip or install — the
110
+ * caller (routeOneEdge) does that via clipAndInstall, mirroring how SR3 wires
111
+ * the regular faithful path.
112
+ *
113
+ * @see lib/dotgen/dotsplines.c:make_flat_edge (cnt=1, non-adjacent spline)
114
+ */
115
+ export declare function routeFlatEdgeFaithful(g: Graph, e: Edge): Point[] | null;
116
+ //# sourceMappingURL=splines-flat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-flat.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-flat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Edge-group formation and dispatch for the dot_splines_ routing loop —
3
+ * C's inner group loop (groupSize) and the per-group router selection.
4
+ *
5
+ * @see lib/dotgen/dotsplines.c:dot_splines_ (343-419)
6
+ */
7
+ import type { Graph } from '../../model/graph.js';
8
+ import type { Edge } from '../../model/edge.js';
9
+ /** Per-loop routing context: separations, edge type, per-run orig record. */
10
+ export interface GroupRouteCtx {
11
+ multisep: number;
12
+ et: number;
13
+ /** Originals that received per-run bezier appends (normalized post-loop). */
14
+ runOrigs: Set<Edge>;
15
+ }
16
+ /**
17
+ * Collapse a main-edge group to one representative per distinct original edge.
18
+ * The opposing `a->b`/`b->a` case collects three entries but two distinct
19
+ * originals; dedup by `resolveOrigEdge` yields one per original (parallels
20
+ * untouched). Pushes the RESOLVED original `o`, not the raw group member `e`:
21
+ * a raw member can be a swapped internal proxy (e.g. a same-rank flat edge
22
+ * whose canonical orientation is tail/head-swapped) whose endpoints don't
23
+ * match the edge actually rendered — routing against the proxy leaves the
24
+ * real edge's geometry unset. C's `edges` list carries no such proxy object
25
+ * (its group members are already the real/virtual edges), so this recovers
26
+ * C's outcome for the TS-specific proxy representation. Distinct originals
27
+ * (genuine parallels, or a multi-rank edge's own per-hop virtual segments)
28
+ * each resolve to their OWN root, so this dedup never merges or renames them.
29
+ * @see dotsplines.c:make_regular_edge (one clip_and_install per orig)
30
+ */
31
+ export declare function dedupByOrig(group: Edge[]): Edge[];
32
+ /**
33
+ * Run the whole group-routing loop over the sorted edge list; returns the set
34
+ * of originals that received per-run bezier appends, for the caller's
35
+ * post-loop normalize pass. @see lib/dotgen/dotsplines.c:dot_splines_ (343-419)
36
+ */
37
+ export declare function routeEdgeGroups(g: Graph, edges: Edge[], multisep: number, et: number): Set<Edge>;
38
+ //# sourceMappingURL=splines-groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-groups.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-groups.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAahD,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;CACrB;AAqCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAUjD;AAyFD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAIhG"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Label placement for edge virtual nodes and port labels.
3
+ *
4
+ * @see lib/dotgen/dotsplines.c:place_vnlabel, setEdgeLabelPos
5
+ * @see lib/common/splines.c:place_portlabel (lines 1316-1360)
6
+ * @see lib/dotgen/dotsplines.c:440-458 (port-label placement loop)
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ import type { Node } from '../../model/node.js';
10
+ import type { Edge } from '../../model/edge.js';
11
+ import type { TextlabelT } from '../../common/types.js';
12
+ /** Minimal label shape sufficient for placement. */
13
+ export interface TextLabel {
14
+ pos: {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ dimen: {
19
+ x: number;
20
+ y: number;
21
+ };
22
+ set: boolean;
23
+ }
24
+ /** Cast an unknown label to TextLabel if it has the required shape. */
25
+ export declare function asTextLabel(label: unknown): TextLabel | undefined;
26
+ /** Walk to_orig until edge_type is NORMAL (0). */
27
+ export declare function findNormalOutEdge(first: Edge): Edge | undefined;
28
+ /** Compute label x-position from node coord, dimen, and flip flag. */
29
+ export declare function labelXPos(n: Node, l: TextLabel): number;
30
+ /**
31
+ * Assign position of an edge label from its virtual node.
32
+ * @see lib/dotgen/dotsplines.c:place_vnlabel
33
+ */
34
+ export declare function placeVnlabel(n: Node): void;
35
+ /** Set label pos from posAlg edge for virtual label nodes. */
36
+ export declare function setAlgLabelPos(n: Node): void;
37
+ /**
38
+ * Set edge label position information for regular and non-adjacent flat edges.
39
+ * @see lib/dotgen/dotsplines.c:setEdgeLabelPos
40
+ */
41
+ export declare function setEdgeLabelPos(g: Graph): void;
42
+ /** Default port-label distance in points. @see lib/common/const.h:PORT_LABEL_DISTANCE */
43
+ export declare const PORT_LABEL_DISTANCE = 10;
44
+ /** Default port-label angle in degrees (CW negative). @see lib/common/const.h:PORT_LABEL_ANGLE */
45
+ export declare const PORT_LABEL_ANGLE = -25;
46
+ /**
47
+ * Place the head or tail port label for edge e.
48
+ *
49
+ * Returns true on success, false when:
50
+ * - edge_type is IGNORED, or
51
+ * - neither labelangle nor labeldistance attrs are set (labels are then
52
+ * treated as external xlabel-style labels, not placed here), or
53
+ * - the spline is not yet computed.
54
+ *
55
+ * NOTE: The C code only places port labels when at least one of
56
+ * E_labelangle / E_labeldistance has a non-empty value. When both are
57
+ * absent (the common case), it returns 0 and the labels remain unpositioned.
58
+ * In the C pipeline the renderer then falls back to xlabel-style placement.
59
+ * For the quarantine reference, the labels *are* placed — meaning one of
60
+ * the two attrs has an implicit value in the C attr-symbol table. We
61
+ * replicate the C condition faithfully: check whether the edge's own
62
+ * attrs contain a non-empty value for either key.
63
+ *
64
+ * @see lib/common/splines.c:place_portlabel
65
+ */
66
+ export declare function placePortlabel(e: Edge, headP: boolean): boolean;
67
+ /** Expand g.info.bb to include the label's bounding box. */
68
+ export declare function updateBB(g: Graph, l: TextlabelT): void;
69
+ /**
70
+ * After edge routing completes, place regular edge labels from virtual nodes
71
+ * and expand the graph bounding box to include each label.
72
+ *
73
+ * Called once per graph after the parallel-edge routing loop and before
74
+ * edge_normalize. Mirrors the C post-routing place_vnlabel + updateBB loop
75
+ * at dotsplines.c:422-430. Flat-edge virtual nodes (in.size == 0) are
76
+ * skipped inside placeVnlabel as in C.
77
+ *
78
+ * @see lib/dotgen/dotsplines.c:422-430
79
+ */
80
+ export declare function placeRegularEdgeLabels(g: Graph): void;
81
+ /**
82
+ * Walk all nodes and edges; call placePortlabel for head/tail labels.
83
+ *
84
+ * C's gates are on the attribute DECLARATIONS, not on `GD_has_labels`:
85
+ *
86
+ * if ((E_headlabel || E_taillabel) && (E_labelangle || E_labeldistance)) {
87
+ * for (n = agfstnode(g); ...) {
88
+ * if (E_headlabel) { ...place_portlabel(e, true)... }
89
+ * if (E_taillabel) { ...place_portlabel(e, false)... }
90
+ * }
91
+ * }
92
+ *
93
+ * The port previously gated the two inner branches on
94
+ * `GD_has_labels & HEAD_LABEL/TAIL_LABEL`. That is NOT C, and it broke under
95
+ * `pack`: `has_labels` is OR'd onto the true cgraph root (`common_init_edge`,
96
+ * utils.c:521), so a projected component's own flag is 0 and BOTH branches were
97
+ * skipped — the head/tail labels kept their unplaced default position instead
98
+ * of being offset by labelangle/labeldistance. The per-edge
99
+ * `ED_head_label == NULL` checks inside the loops already do the real filtering,
100
+ * exactly as in C.
101
+ *
102
+ * @see lib/dotgen/dotsplines.c:440-458
103
+ */
104
+ export declare function placePortLabels(g: Graph): void;
105
+ //# sourceMappingURL=splines-label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-label.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAUxD,oDAAoD;AACpD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,GAAG,EAAE,OAAO,CAAC;CACd;AAMD,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAMjE;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAI/D;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,MAAM,CAIvD;AAOD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAW1C;AAOD,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAO5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAe9C;AAOD,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,MAAM,CAAC;AA8EpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/D;AAyED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CActD;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAQrD;AAiCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAK9C"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Edge-type dispatch for regular (cross-rank) edge routing.
3
+ *
4
+ * `make_regular_edge` routes the box corridor through `routesplines` for
5
+ * `EDGETYPE_SPLINE` and `routepolylines` otherwise; for `EDGETYPE_LINE` it
6
+ * additionally straightens a polyline of more than 4 points down to a 4-point
7
+ * line (first/last control points only). This module is the single home for
8
+ * that dispatch + straighten, called by every box-corridor emit point.
9
+ *
10
+ * @see lib/dotgen/dotsplines.c:make_regular_edge (1799-1808, 1849-1861)
11
+ */
12
+ import type { Point } from '../../model/geom.js';
13
+ import type { Path } from '../../common/types.js';
14
+ /**
15
+ * Route the box corridor in `P` according to the edge type `et`.
16
+ *
17
+ * - `EDGETYPE_SPLINE` → `routeSplines` (the default; identical to before).
18
+ * - any other type → `routePolylines`.
19
+ * - `EDGETYPE_LINE` with a result of more than 4 points → straighten to the
20
+ * 4-point line `[p0, p0, pLast, pLast]`.
21
+ *
22
+ * Returns the control points, or `null`/empty exactly as the underlying
23
+ * `routeSplines`/`routePolylines` do (the caller treats that as a decline).
24
+ *
25
+ * @see lib/dotgen/dotsplines.c:make_regular_edge
26
+ */
27
+ export declare function routeRegularByType(P: Path, et: number): Point[] | null;
28
+ //# sourceMappingURL=splines-route-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-route-type.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-route-type.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAWtE"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * make_regular_edge and helpers — regular (non-flat) edge spline routing.
3
+ *
4
+ * Full pathplan routing is deferred until pathplan.ts is ported.
5
+ *
6
+ * @see lib/dotgen/dotsplines.c:make_regular_edge
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ import type { Node } from '../../model/node.js';
10
+ import type { Edge } from '../../model/edge.js';
11
+ import type { Box, Point } from '../../model/geom.js';
12
+ import { splineMerge } from './splines.js';
13
+ /**
14
+ * Per-call spline routing state (mirrors spline_info_t in C).
15
+ * @see lib/dotgen/dotsplines.c:spline_info_t
16
+ */
17
+ export interface SplineInfo {
18
+ leftBound: number;
19
+ rightBound: number;
20
+ splinesep: number;
21
+ multisep: number;
22
+ rankBox: Box[];
23
+ }
24
+ export declare function nodeOutSize(n: Node): number;
25
+ export declare function nodeInSize(n: Node): number;
26
+ export declare function nodeType(n: Node): number;
27
+ /** @see lib/dotgen/dotsplines.c:top_bound */
28
+ export declare function topBound(e: Edge, side: number): Edge | undefined;
29
+ /** @see lib/dotgen/dotsplines.c:bot_bound */
30
+ export declare function botBound(e: Edge, side: number): Edge | undefined;
31
+ /** True if v can continue a straight run from anchor n. */
32
+ export declare function isStraightContinuation(v: Node, n: Node): boolean;
33
+ /** Advance one step along the straight chain; return undefined if done. */
34
+ export declare function straightNext(v: Node): Node | undefined;
35
+ /** @see lib/dotgen/dotsplines.c:straight_len */
36
+ export declare function straightLen(n: Node): number;
37
+ /**
38
+ * Advance `cnt` head-out hops along the straight run from `e`, then append two
39
+ * copies of `pts`'s last point — emitting the straight middle of a smode
40
+ * segment as a degenerate (collinear) bezier piece. Mutates `pts` (+2 entries,
41
+ * each a value-copy of the prior last point, matching C's pointf-by-value
42
+ * appends); returns the edge `cnt` hops downstream.
43
+ * @see lib/dotgen/dotsplines.c:straight_path
44
+ */
45
+ export declare function straightPath(e: Edge, cnt: number, pts: Point[]): Edge;
46
+ /** @see lib/dotgen/dotsplines.c:resize_vn */
47
+ export declare function resizeVn(vn: Node, lx: number, cx: number, rx: number): void;
48
+ /** True if na/nb ordering contradicts expected crossing order. */
49
+ export declare function orderContradicts(na: Node, nb: Node, order: boolean): boolean;
50
+ /** Advance one step along out-edges of na and nb simultaneously. */
51
+ export declare function advanceOutPair(e0: Edge | undefined, ef: Edge | undefined): [Edge | undefined, Edge | undefined];
52
+ /** Advance one step along in-edges of na and nb simultaneously. */
53
+ export declare function advanceInPair(e0: Edge | undefined, ef: Edge | undefined): [Edge | undefined, Edge | undefined];
54
+ /** Check one out-step for a crossing. Returns true if crossing found. */
55
+ export declare function outStepCrosses(e0: Edge, ef: Edge, order: boolean): boolean;
56
+ /** Check one in-step for a crossing. Returns true if crossing found. */
57
+ export declare function inStepCrosses(e0: Edge, ef: Edge, order: boolean): boolean;
58
+ /** @see lib/dotgen/dotsplines.c:pathscross (out direction) */
59
+ export declare function checkOutCross(n0: Node, order: boolean, e1: Edge | undefined): boolean;
60
+ /** @see lib/dotgen/dotsplines.c:pathscross (in direction) */
61
+ export declare function checkInCross(n0: Node, order: boolean, e1: Edge | undefined): boolean;
62
+ /** @see lib/dotgen/dotsplines.c:pathscross */
63
+ export declare function pathscross(n0: Node, n1: Node, ie1: Edge | undefined, oe1: Edge | undefined): boolean;
64
+ /** True if n should be returned as a neighbor candidate. */
65
+ export declare function isNeighborCandidate(n: Node): boolean;
66
+ /** @see lib/dotgen/dotsplines.c:neighbor */
67
+ export declare function neighbor(g: Graph, vn: Node, ie: Edge | undefined, oe: Edge | undefined, dir: number): Node | undefined;
68
+ /**
69
+ * Apply x-offset to interior control points of a bezier (any length).
70
+ * C shifts only k=1..size-2 (interior control points).
71
+ * Endpoints (index 0 and index length-1) are fixed.
72
+ *
73
+ * @see lib/dotgen/dotsplines.c:make_regular_edge (pointfs interior shift)
74
+ */
75
+ export declare function shiftInteriorPts(pts: Point[], dx: number): Point[];
76
+ /**
77
+ * Route a group of cnt >= 1 parallel regular edges with C-faithful x-offsets.
78
+ *
79
+ * Algorithm (mirrors make_regular_edge cnt > 1 section in dotsplines.c):
80
+ * 1. Route one base path via rank-corridor spline.
81
+ * 2. dx = Multisep * (cnt - 1) / 2
82
+ * 3. edge[0]: interior points shifted left by dx
83
+ * 4. edge[j] (j=1..cnt-1): shift right by Multisep per step
84
+ * Each shifted path is clipped to node boundaries independently.
85
+ *
86
+ * @see lib/dotgen/dotsplines.c:make_regular_edge
87
+ */
88
+ export declare function routeParallelEdgeGroup(g: Graph, edges: Edge[], multisep: number): void;
89
+ export { splineMerge };
90
+ /**
91
+ * Direct tail→head line for a multi-rank `EDGETYPE_LINE` edge: a 4-point line
92
+ * (or 7-point through the edge label). Returns null to decline — `delr === 1`,
93
+ * or `delr === 2` when the graph carries edge labels — so the box-corridor path
94
+ * (which straightens its polyline) handles those cases instead.
95
+ *
96
+ * @see lib/dotgen/dotsplines.c:makeLineEdge (1636)
97
+ */
98
+ export declare function makeLineEdge(g: Graph, fe: Edge): Point[] | null;
99
+ //# sourceMappingURL=splines-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines-route.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines-route.ts"],"names":[],"mappings":"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"}