@knowvah/dot-engine 2.3.0 → 2.4.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 (118) hide show
  1. package/dist/common/arith.d.ts +12 -0
  2. package/dist/common/arith.d.ts.map +1 -1
  3. package/dist/common/edge-in-box.d.ts +31 -0
  4. package/dist/common/edge-in-box.d.ts.map +1 -0
  5. package/dist/common/htmltable-emit.d.ts +1 -1
  6. package/dist/common/htmltable-emit.d.ts.map +1 -1
  7. package/dist/common/make-label.d.ts +3 -1
  8. package/dist/common/make-label.d.ts.map +1 -1
  9. package/dist/common/poly-gencode.d.ts +12 -1
  10. package/dist/common/poly-gencode.d.ts.map +1 -1
  11. package/dist/gvc/device.d.ts.map +1 -1
  12. package/dist/gvc/emit-gates.d.ts +35 -0
  13. package/dist/gvc/emit-gates.d.ts.map +1 -0
  14. package/dist/gvc/job.d.ts +4 -0
  15. package/dist/gvc/job.d.ts.map +1 -1
  16. package/dist/gvc/viewport.d.ts +13 -0
  17. package/dist/gvc/viewport.d.ts.map +1 -1
  18. package/dist/index.js +1030 -742
  19. package/dist/index.js.map +4 -4
  20. package/dist/layout/circo/blockpath.d.ts +1 -38
  21. package/dist/layout/circo/blockpath.d.ts.map +1 -1
  22. package/dist/layout/circo/crossings.d.ts +59 -0
  23. package/dist/layout/circo/crossings.d.ts.map +1 -0
  24. package/dist/layout/dot/edge-route-chain.d.ts +5 -3
  25. package/dist/layout/dot/edge-route-chain.d.ts.map +1 -1
  26. package/dist/layout/dot/edge-route.d.ts.map +1 -1
  27. package/dist/layout/dot/index.d.ts +10 -2
  28. package/dist/layout/dot/index.d.ts.map +1 -1
  29. package/dist/layout/dot/ortho-adapter.d.ts +7 -3
  30. package/dist/layout/dot/ortho-adapter.d.ts.map +1 -1
  31. package/dist/layout/dot/pack-components.d.ts +4 -1
  32. package/dist/layout/dot/pack-components.d.ts.map +1 -1
  33. package/dist/layout/dot/splines-flat-multi.d.ts +7 -5
  34. package/dist/layout/dot/splines-flat-multi.d.ts.map +1 -1
  35. package/dist/layout/dot/splines-flat.d.ts +2 -13
  36. package/dist/layout/dot/splines-flat.d.ts.map +1 -1
  37. package/dist/layout/dot/splines-route.d.ts.map +1 -1
  38. package/dist/layout/neato/constraint-adjust.d.ts +32 -0
  39. package/dist/layout/neato/constraint-adjust.d.ts.map +1 -1
  40. package/dist/layout/neato/multispline.d.ts.map +1 -1
  41. package/dist/layout/neato/splines.d.ts.map +1 -1
  42. package/dist/layout/pack/poly-place.d.ts.map +1 -1
  43. package/dist/layout/sfdp/__fixtures__/pcp-rotate-native.d.ts +23 -0
  44. package/dist/layout/sfdp/__fixtures__/pcp-rotate-native.d.ts.map +1 -0
  45. package/dist/layout/sfdp/spring-driver.d.ts +6 -0
  46. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -1
  47. package/dist/ortho/index.d.ts +4 -1
  48. package/dist/ortho/index.d.ts.map +1 -1
  49. package/dist/ortho/maze.d.ts +5 -2
  50. package/dist/ortho/maze.d.ts.map +1 -1
  51. package/dist/ortho/partition.d.ts +8 -1
  52. package/dist/ortho/partition.d.ts.map +1 -1
  53. package/dist/ortho/trap-segment.d.ts +2 -1
  54. package/dist/ortho/trap-segment.d.ts.map +1 -1
  55. package/dist/ortho/trapezoid.d.ts.map +1 -1
  56. package/dist/parser/index.d.ts +0 -7
  57. package/dist/parser/index.d.ts.map +1 -1
  58. package/dist/parser/number-scan.d.ts +31 -0
  59. package/dist/parser/number-scan.d.ts.map +1 -0
  60. package/dist/pathplan/route.d.ts.map +1 -1
  61. package/dist/pathplan/solvers.d.ts +15 -3
  62. package/dist/pathplan/solvers.d.ts.map +1 -1
  63. package/dist/render/dot/edge-draw.d.ts +12 -0
  64. package/dist/render/dot/edge-draw.d.ts.map +1 -1
  65. package/dist/render/svg-graph.d.ts +6 -5
  66. package/dist/render/svg-graph.d.ts.map +1 -1
  67. package/dist/render/svg.d.ts +2 -21
  68. package/dist/render/svg.d.ts.map +1 -1
  69. package/dist/render.js +1030 -742
  70. package/dist/render.js.map +4 -4
  71. package/dist/xdot/parse.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/src/common/arith.ts +25 -0
  74. package/src/common/edge-in-box.ts +54 -0
  75. package/src/common/graph-init.ts +3 -3
  76. package/src/common/htmltable-emit.ts +4 -2
  77. package/src/common/make-label.ts +3 -1
  78. package/src/common/poly-gencode.ts +18 -4
  79. package/src/gvc/device.ts +8 -41
  80. package/src/gvc/edge-labels.ts +30 -13
  81. package/src/gvc/emit-gates.ts +89 -0
  82. package/src/gvc/job.ts +4 -0
  83. package/src/gvc/viewport.ts +29 -0
  84. package/src/layout/circo/blockpath.ts +6 -125
  85. package/src/layout/circo/crossings.ts +171 -0
  86. package/src/layout/dot/__fixtures__/2784.dot +1 -0
  87. package/src/layout/dot/__fixtures__/2784.native-16.1.svg +48 -0
  88. package/src/layout/dot/edge-route-chain.ts +11 -5
  89. package/src/layout/dot/edge-route.ts +19 -8
  90. package/src/layout/dot/index.ts +14 -4
  91. package/src/layout/dot/ortho-adapter.ts +11 -6
  92. package/src/layout/dot/pack-components.ts +11 -4
  93. package/src/layout/dot/splines-flat-multi.ts +21 -8
  94. package/src/layout/dot/splines-flat.ts +8 -35
  95. package/src/layout/dot/splines-route.ts +10 -2
  96. package/src/layout/dot/splines.ts +6 -6
  97. package/src/layout/neato/constraint-adjust.ts +10 -4
  98. package/src/layout/neato/multispline.ts +26 -9
  99. package/src/layout/neato/splines.ts +7 -7
  100. package/src/layout/pack/poly-place.ts +9 -2
  101. package/src/layout/sfdp/__fixtures__/pcp-rotate-native.ts +94 -0
  102. package/src/layout/sfdp/spring-driver.ts +45 -13
  103. package/src/ortho/index.ts +22 -13
  104. package/src/ortho/maze.ts +8 -2
  105. package/src/ortho/partition.ts +17 -2
  106. package/src/ortho/trap-segment.ts +47 -24
  107. package/src/ortho/trapezoid.ts +24 -15
  108. package/src/parser/dot.js +345 -380
  109. package/src/parser/dot.pegjs +25 -10
  110. package/src/parser/index.ts +15 -0
  111. package/src/parser/number-scan.ts +118 -0
  112. package/src/pathplan/route.ts +79 -34
  113. package/src/pathplan/solvers.ts +78 -50
  114. package/src/render/dot/edge-draw.ts +25 -0
  115. package/src/render/svg-graph.ts +77 -47
  116. package/src/render/svg-helpers.ts +2 -2
  117. package/src/render/svg.ts +4 -41
  118. package/src/xdot/parse.ts +19 -5
@@ -32,6 +32,18 @@
32
32
  * @see C99 7.12.9.6 (round)
33
33
  */
34
34
  export declare function cround(v: number): number;
35
+ /**
36
+ * `ROUND(f)` as the native arm64 build computes it where clang vectorises the
37
+ * conversion: `fcvtzs.2d` (double → int64, saturating, NaN → 0) followed by
38
+ * `xtn.2s` / `uzp1.4s`, which keep the LOW 32 bits. The `(int)` cast of an
39
+ * out-of-range double is undefined in C; this is the oracle binary's
40
+ * behaviour (objdump of libgvc `_gvRenderJobs`, the inlined
41
+ * init_job_pagination: job->width/height and pageBoundingBox). Identical to
42
+ * {@link cround} whenever the result fits in an int; only these vectorised
43
+ * sites use it — scalar ROUND sites compile to `fcvtzs w` (saturate at int32).
44
+ * @see lib/common/emit.c:init_job_pagination (job->width, pageBoundingBox)
45
+ */
46
+ export declare function croundNarrow32(v: number): number;
35
47
  /**
36
48
  * Degrees to radians in C's operation order, `(deg)/180.0 * M_PI`.
37
49
  * `deg * Math.PI / 180` rounds differently for some angles (e.g. 33°).
@@ -1 +1 @@
1
- {"version":3,"file":"arith.d.ts","sourceRoot":"","sources":["../../src/common/arith.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C"}
1
+ {"version":3,"file":"arith.d.ts","sourceRoot":"","sources":["../../src/common/arith.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * emit_edge's edge_in_box gate, shared by the device walk (edge comments) and
3
+ * the SVG / xdot renderers (edge group and draw ops). Moved out of
4
+ * render/svg.ts unchanged.
5
+ *
6
+ * @see lib/common/emit.c:edge_in_box, lib/common/utils.c:overlap_label
7
+ */
8
+ import type { Box } from '../model/geom.js';
9
+ import type { Edge } from '../model/edge.js';
10
+ /**
11
+ * Faithful-to-outcome `edge_in_box`: true when the edge has something to draw.
12
+ * C's gvrender defers the `<g>` until a draw op, so an edge whose content falls
13
+ * entirely outside the clip emits no group (emit.c:edge_in_box tests each piece
14
+ * vs job->clip via boxf_overlap/overlap_label).
15
+ *
16
+ * The only piece that can legitimately fall OUTSIDE the clip on this corpus is a
17
+ * degenerate labeled-flat label: it is spline-less, so map_edge leaves it at its
18
+ * internal (un-normalized) x-frame position while the clip is the final frame.
19
+ * The `overlapLabel` test on the main label reproduces C's draw-iff-overlap for
20
+ * exactly that case — on-canvas (2368) → drawn; off-canvas (2368_1, negative
21
+ * un-normalized x) → suppressed. A present spline always lies within the clip
22
+ * (GD_bb contains it), and head/tail/xlabels are positioned at on-canvas
23
+ * endpoints, so those keep their existing unconditional triggers — adding an
24
+ * overlap test there only risks suppressing legitimately-drawn content (it
25
+ * regressed neato/circo edges whose spl.bb is computed differently). The `set`
26
+ * guard on the main label is kept: the port retains an unplaced (`pos=0,0`,
27
+ * `set=false`) label on merged back-edges where C has none.
28
+ * @see lib/common/emit.c:edge_in_box, lib/common/utils.c:overlap_label
29
+ */
30
+ export declare function edgeHasDrawableContent(e: Edge, clip: Box): boolean;
31
+ //# sourceMappingURL=edge-in-box.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-in-box.d.ts","sourceRoot":"","sources":["../../src/common/edge-in-box.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAe7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAMlE"}
@@ -47,7 +47,7 @@ export declare function emitHtmlCell(cell: PlacedCell, pos: Point, renderer: Ren
47
47
  * Emit a fully positioned HTML table label.
48
48
  *
49
49
  * Draw order mirrors C emit_html_tbl:
50
- * 1. Open anchor 2. Table BGCOLOR 3. Cells 4. Rules 5. Border 6. Close anchor
50
+ * 1. Open anchor 2. Table BGCOLOR 3. Rules 4. Border 5. Cells 6. Close anchor
51
51
  *
52
52
  * @see lib/common/htmltable.c:emit_html_tbl
53
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"htmltable-emit.d.ts","sourceRoot":"","sources":["../../src/common/htmltable-emit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAW1F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAgBhE,6DAA6D;AAC7D,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAQN;AAmBD,qEAAqE;AACrE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GACrE,IAAI,CAEN;AAqHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAqBN;AA2BD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAsBN;AAwBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CA+BN"}
1
+ {"version":3,"file":"htmltable-emit.d.ts","sourceRoot":"","sources":["../../src/common/htmltable-emit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAW1F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAgBhE,6DAA6D;AAC7D,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAQN;AAmBD,qEAAqE;AACrE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GACrE,IAAI,CAEN;AAqHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAqBN;AA2BD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAsBN;AAwBD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAiCN"}
@@ -11,7 +11,9 @@ import type { TextMeasurer } from './textmeasure.js';
11
11
  import { type GraphObj } from './subst.js';
12
12
  import { htmlEntityUTF8 } from './html-entities.js';
13
13
  export declare const DEFAULT_FONTSIZE = 14;
14
- export declare const DEFAULT_FONTNAME = "Times,serif";
14
+ /** C's default fontname (non-Windows); renderers alias it, e.g. SVG
15
+ * font-family="Times,serif". @see lib/common/const.h:67 */
16
+ export declare const DEFAULT_FONTNAME = "Times-Roman";
15
17
  export declare const DEFAULT_COLOR = "black";
16
18
  export { htmlEntityUTF8 };
17
19
  /** Font attributes bundle — mirrors C fontinfo_t fields used in label init. */
@@ -1 +1 @@
1
- {"version":3,"file":"make-label.d.ts","sourceRoot":"","sources":["../../src/common/make-label.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,KAAO,CAAC;AACrC,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,aAAa,UAAU,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,CAAC;AAqB1B,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAoBD,wEAAwE;AACxE,UAAU,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAAE;AAK5D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAsBzD;AAoCD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,GACrB,UAAU,CAEZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,QAAQ,GACb,UAAU,CAkBZ"}
1
+ {"version":3,"file":"make-label.d.ts","sourceRoot":"","sources":["../../src/common/make-label.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,gBAAgB,KAAO,CAAC;AACrC;2DAC2D;AAC3D,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,aAAa,UAAU,CAAC;AAKrC,OAAO,EAAE,cAAc,EAAE,CAAC;AAqB1B,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAoBD,wEAAwE;AACxE,UAAU,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CAAE;AAK5D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAsBzD;AAoCD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,GACrB,UAAU,CAEZ;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,QAAQ,GACb,UAAU,CAkBZ"}
@@ -9,7 +9,18 @@ import type { RenderJob } from '../gvc/job.js';
9
9
  import type { RendererPlugin } from '../gvc/context.js';
10
10
  import type { TextlabelT } from './types.js';
11
11
  import type { ObjState } from '../gvc/job.js';
12
- /** Render one ellipse periphery ring for a node. */
12
+ /**
13
+ * Render one ellipse periphery ring for a node. poly_gencode hands
14
+ * gvrender_ellipse the two ABSOLUTE corners AF = vertex + ND_coord; it passes
15
+ * the renderer the centre mid_pointf(AF[0], AF[1]) and the corner AF[1], and
16
+ * the renderer prints rx/ry as corner - centre. Computing the radii in that
17
+ * order (not from the relative vertices) keeps C's rounding: at |coord| where
18
+ * the double spacing exceeds the radius, coord ± r rounds back to coord and the
19
+ * radius collapses to 0 (corpus 2784, y = 1.08e18).
20
+ * @see lib/common/shapes.c:poly_gencode (AF[i] = P + ND_coord, gvrender_ellipse)
21
+ * @see lib/gvc/gvrender.c:gvrender_ellipse (af[0] = mid_pointf, af[1] = pf[1])
22
+ * @see plugin/core/gvrender_core_svg.c:svg_ellipse (rx = A[1].x - A[0].x)
23
+ */
13
24
  export declare function renderEllipse(ring: Point[], coord: Point, renderer: RendererPlugin, job: RenderJob, filled: boolean): void;
14
25
  /** Render one polygon periphery ring for a node. */
15
26
  export declare function renderPolygon(ring: Point[], coord: Point, renderer: RendererPlugin, job: RenderJob, filled: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"poly-gencode.d.ts","sourceRoot":"","sources":["../../src/common/poly-gencode.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAY,UAAU,EAAmC,MAAM,YAAY,CAAC;AAKxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqC9C,oDAAoD;AACpD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,EACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,OAAO,GACd,IAAI,CAKN;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GACrF,IAAI,CAGN;AA2FD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAqBN;AAgFD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE5C;AA2DD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAU9E;AAoFD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BnE"}
1
+ {"version":3,"file":"poly-gencode.d.ts","sourceRoot":"","sources":["../../src/common/poly-gencode.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAY,UAAU,EAAmC,MAAM,YAAY,CAAC;AAKxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAqC9C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,EACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,OAAO,GACd,IAAI,CAQN;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GACrF,IAAI,CAGN;AA2FD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,SAAS,GACb,IAAI,CAqBN;AAgFD,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE5C;AA2DD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAU9E;AAoFD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/gvc/device.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAW,MAAM,cAAc,CAAC;AAKnD,OAAO,EAAE,SAAS,EAA0D,MAAM,UAAU,CAAC;AAuB7F,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAa1F,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,SAAS;QACjB,0EAA0E;QAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB;CACF;AAuED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CA4BnG;AA2BD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CA8BlF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAIzF;AAkFD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAQvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAyBtF;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,MAAM,CA8E9F"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/gvc/device.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAW,MAAM,cAAc,CAAC;AAKnD,OAAO,EAAE,SAAS,EAA0D,MAAM,UAAU,CAAC;AAuB7F,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAc1F,OAAO,QAAQ,UAAU,CAAC;IACxB,UAAU,SAAS;QACjB,0EAA0E;QAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB;CACF;AAkCD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CA6BnG;AA2BD,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CA+BlF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAIzF;AAkFD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAQvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAyBtF;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,MAAM,CAgF9F"}
@@ -0,0 +1,35 @@
1
+ import type { Node } from '../model/node.js';
2
+ import type { Edge } from '../model/edge.js';
3
+ import type { RendererPlugin } from './context.js';
4
+ import type { RenderJob } from './job.js';
5
+ /**
6
+ * node_in_box: is the node's own bbox within job's page/view clip?
7
+ *
8
+ * C's `job->clip` is derived from `job->bb` (= `GD_bb(g)`) expanded by
9
+ * `job->pad` on every side (init_job_viewport's `job->bb = gvc->bb ±
10
+ * job->pad`, feeding `job->view`/`job->focus`, which setup_page's `job->clip`
11
+ * algebraically reduces back to for the single-page, unpaginated case this
12
+ * port implements — Z and rotation cancel out of that derivation). This port
13
+ * has no separate `page=` pagination model, so `job.bb` padded by `job.pad`
14
+ * IS `job->clip` here.
15
+ *
16
+ * @see lib/common/emit.c:1636-1639 node_in_box
17
+ * @see lib/common/emit.c:1808 emit_node gate
18
+ * @see lib/common/emit.c:3356 init_job_viewport (job->bb = gvc->bb ± pad)
19
+ * @see lib/common/emit.c:1553-1564 setup_page (job->clip from focus/view)
20
+ */
21
+ export declare function nodeInBox(n: Node, job: RenderJob): boolean;
22
+ /**
23
+ * The node's name and `comment` attribute, emitted after node_in_box and
24
+ * before the invis shortcircuit (an invisible node still gets its comments).
25
+ * @see lib/common/emit.c:emit_node (gvrender_comment x2)
26
+ */
27
+ export declare function emitNodeComments(n: Node, renderer: RendererPlugin, job: RenderJob): void;
28
+ /**
29
+ * When edge_in_box passes: the `tail->head` name (`--` when the head's graph
30
+ * is undirected) and the `comment` attribute, before the invis shortcircuit.
31
+ * The renderers re-test the same gate for the edge group.
32
+ * @see lib/common/emit.c:emit_edge (gvrender_comment x2)
33
+ */
34
+ export declare function emitEdgeComments(e: Edge, renderer: RendererPlugin, job: RenderJob): void;
35
+ //# sourceMappingURL=emit-gates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-gates.d.ts","sourceRoot":"","sources":["../../src/gvc/emit-gates.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAiB1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAM1D;AAYD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAGxF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAMxF"}
package/dist/gvc/job.d.ts CHANGED
@@ -144,6 +144,10 @@ export declare class RenderJob {
144
144
  readonly format: string;
145
145
  bb: Box;
146
146
  pad: Point;
147
+ /** Current page clip in graph units, as setup_page computes it from the
148
+ * viewport focus/view (see setupPageClip). Read by the SVG page translate and
149
+ * background. @see lib/gvc/gvcjob.h:GVJ_s.clip; lib/common/emit.c:setup_page */
150
+ clip: Box;
147
151
  /** Graph-level `margin=` (init_job_margin); page-pagination margin, distinct
148
152
  * from node/cluster label margin. @see lib/common/emit.c:3309-3331 */
149
153
  margin: Point;
@@ -1 +1 @@
1
- {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/gvc/job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../src/gvc/job.ts"],"names":[],"mappings":"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"}
@@ -68,4 +68,17 @@ export declare function parseLandscape(g: Graph): boolean;
68
68
  * @see lib/common/emit.c:3356 init_job_viewport
69
69
  */
70
70
  export declare function initJobViewportZoom(bb: Box, size: DrawingSize | null, pad: Point): number;
71
+ /**
72
+ * job->clip for the single-page devices this port drives, evaluated in C's
73
+ * order: init_job_viewport pads the bb (job->bb = bb ± pad, sz = job->bb.UR -
74
+ * job->bb.LL, size= substituting a degenerate sz axis), takes the focus as the
75
+ * centre of the UNPADDED bb and view = Z * sz; init_job_pagination sets
76
+ * pageSize = imageSize / zoom (imageSize = view, rotated to page orientation
77
+ * and back); setup_page sets clip.LL = focus + pageSize * (elem - size / 2.)
78
+ * with pagesArrayElem 0 / pagesArraySize 1 and clip.UR = clip.LL + pageSize.
79
+ * Algebraically bb ± pad, but not in floating point: where the pad is below the
80
+ * double spacing (corpus 2784, y = 2.16e18) clip.LL.y is 0, not -pad.
81
+ * @see lib/common/emit.c:init_job_viewport, init_job_pagination, setup_page
82
+ */
83
+ export declare function setupPageClip(bb: Box, size: DrawingSize | null, pad: Point, z: number): Box;
71
84
  //# sourceMappingURL=viewport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../src/gvc/viewport.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAc5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAa5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAa/D;AAeD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAUhD;AAYD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,CASzF"}
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../src/gvc/viewport.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG/C,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,CAc5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAa5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAa/D;AAeD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAUhD;AAYD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,MAAM,CASzF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CAe3F"}