@knowvah/dot-engine 2.6.0 → 2.6.2
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.
- package/dist/common/bezier-arrows.d.ts +14 -0
- package/dist/common/bezier-arrows.d.ts.map +1 -0
- package/dist/common/pointset.d.ts +35 -0
- package/dist/common/pointset.d.ts.map +1 -0
- package/dist/common/postproc.d.ts.map +1 -1
- package/dist/common/splines-clip.d.ts.map +1 -1
- package/dist/index.js +156 -80
- package/dist/index.js.map +4 -4
- package/dist/layout/dot/splines.d.ts.map +1 -1
- package/dist/layout/pack/index.d.ts.map +1 -1
- package/dist/layout/pack/poly-place.d.ts.map +1 -1
- package/dist/model/geom.d.ts +9 -0
- package/dist/model/geom.d.ts.map +1 -1
- package/dist/render/dot.d.ts.map +1 -1
- package/dist/render/svg-edge-arrows.d.ts +30 -0
- package/dist/render/svg-edge-arrows.d.ts.map +1 -0
- package/dist/render/svg-helpers.d.ts.map +1 -1
- package/dist/render.js +156 -80
- package/dist/render.js.map +4 -4
- package/package.json +2 -2
- package/src/common/bezier-arrows.ts +58 -0
- package/src/common/pointset.ts +73 -0
- package/src/common/postproc.ts +9 -13
- package/src/common/splines-clip.ts +12 -8
- package/src/layout/dot/splines.ts +4 -0
- package/src/layout/pack/index.ts +4 -0
- package/src/layout/pack/poly-place.ts +42 -47
- package/src/model/geom.ts +10 -0
- package/src/render/dot.ts +6 -0
- package/src/render/svg-edge-arrows.ts +54 -0
- package/src/render/svg-helpers.ts +10 -44
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splines.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"splines.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/index.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,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAOtD,OAAO,EACL,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAClD,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAC3D,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EACzD,YAAY,EAAE,YAAY,EAAE,cAAc,GAC3C,CAAC;AACF,YAAY,EAAE,QAAQ,EAAE,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM9C;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAAI,CAMhF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAYzE;AAMD,sCAAsC;AACtC,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1C;AACD,sCAAsC;AACtC,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1C;AACD,6CAA6C;AAC7C,wBAAgB,YAAY,CAC1B,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzD,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GACtB,IAAI,CAUN;AA0ED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,UAAQ,GAAG,GAAG,CAOtF;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAE9D;AAMD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,IAAI,CAkB/F;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAIxF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAI3F;AAMD,+EAA+E;AAC/E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAiBpE;AAED;;;;;+CAK+C;AAC/C,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poly-place.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/poly-place.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"poly-place.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/poly-place.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgC3C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgB9D;AA2RD;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GACpD,KAAK,EAAE,GAAG,IAAI,CAkEhB"}
|
package/dist/model/geom.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @see lib/common/types.h
|
|
6
6
|
* @see lib/common/const.h
|
|
7
7
|
*/
|
|
8
|
+
import type { ArrowDrawOp } from '../common/arrows-types.js';
|
|
8
9
|
/**
|
|
9
10
|
* Floating-point 2-D point.
|
|
10
11
|
*
|
|
@@ -45,6 +46,14 @@ export type Bezier = {
|
|
|
45
46
|
sp: Point;
|
|
46
47
|
/** @see lib/common/types.h: pointf ep */
|
|
47
48
|
ep: Point;
|
|
49
|
+
/**
|
|
50
|
+
* TS-only: the arrow drawn at `sp` (paired with `sflag`). C regenerates it
|
|
51
|
+
* per bezier at render time (emit.c arrow_gen); the port computes it at clip
|
|
52
|
+
* time, so it is stored per bezier for splines with several flagged beziers.
|
|
53
|
+
*/
|
|
54
|
+
sArrowOps?: ArrowDrawOp[];
|
|
55
|
+
/** TS-only: the arrow drawn at `ep` (paired with `eflag`); see `sArrowOps`. */
|
|
56
|
+
eArrowOps?: ArrowDrawOp[];
|
|
48
57
|
};
|
|
49
58
|
/**
|
|
50
59
|
* A collection of Bezier curves that form an edge spline, together with
|
package/dist/model/geom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geom.d.ts","sourceRoot":"","sources":["../../src/model/geom.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"geom.d.ts","sourceRoot":"","sources":["../../src/model/geom.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAM7D;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAM7C;;;;;;;;GAQG;AACH,MAAM,MAAM,GAAG,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAM3C;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,4CAA4C;IAC5C,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,EAAE,EAAE,KAAK,CAAC;IACV,yCAAyC;IACzC,EAAE,EAAE,KAAK,CAAC;IACV;;;;OAIG;IACH,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,EAAE,EAAE,GAAG,CAAC;CACT,CAAC;AAMF;;;;GAIG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,8EAA8E;IAC9E,CAAC,EAAE,KAAK,CAAC;IACT,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC;IACf,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;IACjB,4FAA4F;IAC5F,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,IAAI,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAQ3D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAQzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAOrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAOpD;AAMD;;;;GAIG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,WAAW,MAAO,CAAC"}
|
package/dist/render/dot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/render/dot.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,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,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AASxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/render/dot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Edge } from '../model/edge.js';
|
|
2
|
+
import type { Bezier } from '../model/geom.js';
|
|
3
|
+
import type { RenderJob } from '../gvc/job.js';
|
|
4
|
+
/** The edge pen an arrow is drawn with. */
|
|
5
|
+
export interface ArrowPaint {
|
|
6
|
+
job: RenderJob;
|
|
7
|
+
penColor: string;
|
|
8
|
+
opacity: string | null;
|
|
9
|
+
pw: number;
|
|
10
|
+
}
|
|
11
|
+
/** Which ends have drawn their edge-level arrow. */
|
|
12
|
+
export interface ArrowsDone {
|
|
13
|
+
tailDone: boolean;
|
|
14
|
+
headDone: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* One end's arrow after bezier `bz`. With several beziers flagged at that end
|
|
18
|
+
* each draws its own arrow (bezierEndOps); otherwise the edge-level ops are
|
|
19
|
+
* drawn once, at the first flagged bezier.
|
|
20
|
+
*/
|
|
21
|
+
export declare function emitBezierEndArrow(e: Edge, bz: Bezier, end: 'head' | 'tail', st: ArrowsDone, p: ArrowPaint): void;
|
|
22
|
+
/**
|
|
23
|
+
* Arrow ops whose bezier carried no s/eflag (a port-model seam: ops are stored
|
|
24
|
+
* per edge end, flags per bezier). C cannot reach this state — an arrow is only
|
|
25
|
+
* generated where a flag is set — so this emits at the old position (group
|
|
26
|
+
* end) purely to keep behavior identical if a router ever stashes ops without
|
|
27
|
+
* setting the flag.
|
|
28
|
+
*/
|
|
29
|
+
export declare function emitRemainingArrows(e: Edge, st: ArrowsDone, p: ArrowPaint): void;
|
|
30
|
+
//# sourceMappingURL=svg-edge-arrows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-edge-arrows.d.ts","sourceRoot":"","sources":["../../src/render/svg-edge-arrows.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,2CAA2C;AAC3C,MAAM,WAAW,UAAU;IAAG,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AAEpG,oDAAoD;AACpD,MAAM,WAAW,UAAU;IAAG,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAEpE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GACvE,IAAI,CAWN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAOhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg-helpers.d.ts","sourceRoot":"","sources":["../../src/render/svg-helpers.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AAetD;;;;GAIG;AACH,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAI5B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"svg-helpers.d.ts","sourceRoot":"","sources":["../../src/render/svg-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/render.js
CHANGED
|
@@ -18191,6 +18191,47 @@ function orthoRoundedPolylines(pts, radius) {
|
|
|
18191
18191
|
return [...segmentPolylines(pts, corners), ...cornerArcPolylines(corners, radius)];
|
|
18192
18192
|
}
|
|
18193
18193
|
|
|
18194
|
+
// src/common/bezier-arrows.ts
|
|
18195
|
+
var flagOf = (bz, end) => end === "head" ? bz.eflag : bz.sflag;
|
|
18196
|
+
var ownOps = (bz, end) => end === "head" ? bz.eArrowOps : bz.sArrowOps;
|
|
18197
|
+
var edgeOps = (e, end) => end === "head" ? e.info.headArrowOps : e.info.tailArrowOps;
|
|
18198
|
+
function flaggedBeziers(e, end) {
|
|
18199
|
+
const list = e.info.spl?.list ?? [];
|
|
18200
|
+
return list.filter((bz) => bz !== void 0 && flagOf(bz, end) !== 0);
|
|
18201
|
+
}
|
|
18202
|
+
function multiFlagged(e, end) {
|
|
18203
|
+
return flaggedBeziers(e, end).length > 1;
|
|
18204
|
+
}
|
|
18205
|
+
function bezierEndOps(e, bz, end) {
|
|
18206
|
+
if (flagOf(bz, end) === 0 || !multiFlagged(e, end)) return void 0;
|
|
18207
|
+
return ownOps(bz, end) ?? edgeOps(e, end);
|
|
18208
|
+
}
|
|
18209
|
+
function endArrowOps(e, end) {
|
|
18210
|
+
const lists = multiFlagged(e, end) ? flaggedBeziers(e, end).map((bz) => ownOps(bz, end) ?? edgeOps(e, end)) : [edgeOps(e, end)];
|
|
18211
|
+
return lists.filter((ops) => ops !== void 0 && ops.length > 0);
|
|
18212
|
+
}
|
|
18213
|
+
|
|
18214
|
+
// src/render/svg-edge-arrows.ts
|
|
18215
|
+
function emitBezierEndArrow(e, bz, end, st, p) {
|
|
18216
|
+
const tail = end === "tail";
|
|
18217
|
+
const flag = tail ? bz.sflag : bz.eflag;
|
|
18218
|
+
const done = tail ? st.tailDone : st.headDone;
|
|
18219
|
+
const edgeOps2 = tail ? e.info.tailArrowOps : e.info.headArrowOps;
|
|
18220
|
+
const ops = bezierEndOps(e, bz, end) ?? (flag !== 0 && !done && edgeOps2?.length ? edgeOps2 : void 0);
|
|
18221
|
+
if (ops === void 0) return;
|
|
18222
|
+
emitArrowOps(ops, p.penColor, p.job, p.pw, p.opacity);
|
|
18223
|
+
if (tail) st.tailDone = true;
|
|
18224
|
+
else st.headDone = true;
|
|
18225
|
+
}
|
|
18226
|
+
function emitRemainingArrows(e, st, p) {
|
|
18227
|
+
if (!st.tailDone && e.info.tailArrowOps?.length) {
|
|
18228
|
+
emitArrowOps(e.info.tailArrowOps, p.penColor, p.job, p.pw, p.opacity);
|
|
18229
|
+
}
|
|
18230
|
+
if (!st.headDone && e.info.headArrowOps?.length) {
|
|
18231
|
+
emitArrowOps(e.info.headArrowOps, p.penColor, p.job, p.pw, p.opacity);
|
|
18232
|
+
}
|
|
18233
|
+
}
|
|
18234
|
+
|
|
18194
18235
|
// src/render/svg-graph.ts
|
|
18195
18236
|
var SVG_XML_DECL = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n';
|
|
18196
18237
|
var SVG_DOCTYPE = '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n';
|
|
@@ -18722,40 +18763,21 @@ function svgEdgePath(e, job) {
|
|
|
18722
18763
|
if (spl === void 0 || spl.size === 0) return;
|
|
18723
18764
|
const obj = job.obj;
|
|
18724
18765
|
const stroke = obj !== null ? paintStr(obj, false) : "black";
|
|
18766
|
+
const paint = {
|
|
18767
|
+
job,
|
|
18768
|
+
penColor: stroke,
|
|
18769
|
+
opacity: obj !== null ? colorOpacity(obj.penColor) : null,
|
|
18770
|
+
pw: obj !== null ? obj.penWidth : 1
|
|
18771
|
+
};
|
|
18725
18772
|
const st = { tailDone: false, headDone: false };
|
|
18726
18773
|
for (let si = 0; si < spl.size; si++) {
|
|
18727
18774
|
const bz = spl.list[si];
|
|
18728
18775
|
if (bz === void 0 || bz.size < 4) continue;
|
|
18729
18776
|
emitOneBezierPath(bz, stroke, job);
|
|
18730
|
-
|
|
18731
|
-
|
|
18732
|
-
emitRemainingArrows(e, job, st);
|
|
18733
|
-
}
|
|
18734
|
-
function emitBezierArrows(e, bz, job, st) {
|
|
18735
|
-
const obj = job.obj;
|
|
18736
|
-
const penColor = obj !== null ? paintStr(obj, false) : "black";
|
|
18737
|
-
const opacity = obj !== null ? colorOpacity(obj.penColor) : null;
|
|
18738
|
-
const pw = obj !== null ? obj.penWidth : 1;
|
|
18739
|
-
if (bz.sflag !== 0 && !st.tailDone && e.info.tailArrowOps?.length) {
|
|
18740
|
-
emitArrowOps(e.info.tailArrowOps, penColor, job, pw, opacity);
|
|
18741
|
-
st.tailDone = true;
|
|
18742
|
-
}
|
|
18743
|
-
if (bz.eflag !== 0 && !st.headDone && e.info.headArrowOps?.length) {
|
|
18744
|
-
emitArrowOps(e.info.headArrowOps, penColor, job, pw, opacity);
|
|
18745
|
-
st.headDone = true;
|
|
18746
|
-
}
|
|
18747
|
-
}
|
|
18748
|
-
function emitRemainingArrows(e, job, st) {
|
|
18749
|
-
const obj = job.obj;
|
|
18750
|
-
const penColor = obj !== null ? paintStr(obj, false) : "black";
|
|
18751
|
-
const opacity = obj !== null ? colorOpacity(obj.penColor) : null;
|
|
18752
|
-
const pw = obj !== null ? obj.penWidth : 1;
|
|
18753
|
-
if (!st.tailDone && e.info.tailArrowOps?.length) {
|
|
18754
|
-
emitArrowOps(e.info.tailArrowOps, penColor, job, pw, opacity);
|
|
18755
|
-
}
|
|
18756
|
-
if (!st.headDone && e.info.headArrowOps?.length) {
|
|
18757
|
-
emitArrowOps(e.info.headArrowOps, penColor, job, pw, opacity);
|
|
18777
|
+
emitBezierEndArrow(e, bz, "tail", st, paint);
|
|
18778
|
+
emitBezierEndArrow(e, bz, "head", st, paint);
|
|
18758
18779
|
}
|
|
18780
|
+
emitRemainingArrows(e, st, paint);
|
|
18759
18781
|
}
|
|
18760
18782
|
function emitOneBezierPath(bz, stroke, job) {
|
|
18761
18783
|
const obj = job.obj;
|
|
@@ -20234,8 +20256,8 @@ var SplineClipHelper = class _SplineClipHelper {
|
|
|
20234
20256
|
sflag,
|
|
20235
20257
|
eflag
|
|
20236
20258
|
);
|
|
20237
|
-
if (sflag) _SplineClipHelper.stashArrow(orig, newspl.sp, ps[bounds.start], true, startEnd);
|
|
20238
|
-
if (eflag) _SplineClipHelper.stashArrow(orig, newspl.ep, ps[bounds.end + 3], false, endEnd);
|
|
20259
|
+
if (sflag) _SplineClipHelper.stashArrow(orig, newspl, newspl.sp, ps[bounds.start], true, startEnd);
|
|
20260
|
+
if (eflag) _SplineClipHelper.stashArrow(orig, newspl, newspl.ep, ps[bounds.end + 3], false, endEnd);
|
|
20239
20261
|
}
|
|
20240
20262
|
return;
|
|
20241
20263
|
}
|
|
@@ -20249,7 +20271,7 @@ var SplineClipHelper = class _SplineClipHelper {
|
|
|
20249
20271
|
sflag,
|
|
20250
20272
|
startEnd
|
|
20251
20273
|
);
|
|
20252
|
-
_SplineClipHelper.stashArrow(orig, newspl.sp, ps[bounds.start], true, startEnd);
|
|
20274
|
+
_SplineClipHelper.stashArrow(orig, newspl, newspl.sp, ps[bounds.start], true, startEnd);
|
|
20253
20275
|
}
|
|
20254
20276
|
if (eflag) {
|
|
20255
20277
|
bounds.end = _SplineClipHelper.arrowEndClip(
|
|
@@ -20261,7 +20283,7 @@ var SplineClipHelper = class _SplineClipHelper {
|
|
|
20261
20283
|
eflag,
|
|
20262
20284
|
endEnd
|
|
20263
20285
|
);
|
|
20264
|
-
_SplineClipHelper.stashArrow(orig, newspl.ep, ps[bounds.end + 3], false, endEnd);
|
|
20286
|
+
_SplineClipHelper.stashArrow(orig, newspl, newspl.ep, ps[bounds.end + 3], false, endEnd);
|
|
20265
20287
|
}
|
|
20266
20288
|
}
|
|
20267
20289
|
/**
|
|
@@ -20359,13 +20381,22 @@ var SplineClipHelper = class _SplineClipHelper {
|
|
|
20359
20381
|
spl.sp = p;
|
|
20360
20382
|
}
|
|
20361
20383
|
}
|
|
20362
|
-
/**
|
|
20363
|
-
|
|
20384
|
+
/**
|
|
20385
|
+
* Record an arrow on the edge end and on the bezier being installed. The
|
|
20386
|
+
* edge slot holds the latest arrow; the bezier keeps its own, since C draws
|
|
20387
|
+
* one per flagged bezier (see common/bezier-arrows.ts).
|
|
20388
|
+
*/
|
|
20389
|
+
static stashArrow(e, bz, tip2, base, isTail, attrEnd) {
|
|
20364
20390
|
const dir = { x: base.x - tip2.x, y: base.y - tip2.y };
|
|
20365
20391
|
const end = attrEnd ?? (isTail ? "tail" : "head");
|
|
20366
20392
|
const ops = arrowDrawOpsForEnd(e, end, tip2, dir, _SplineClipHelper.renderPenwidth(e));
|
|
20367
|
-
if (isTail)
|
|
20368
|
-
|
|
20393
|
+
if (isTail) {
|
|
20394
|
+
e.info.tailArrowOps = ops;
|
|
20395
|
+
bz.sArrowOps = ops;
|
|
20396
|
+
} else {
|
|
20397
|
+
e.info.headArrowOps = ops;
|
|
20398
|
+
bz.eArrowOps = ops;
|
|
20399
|
+
}
|
|
20369
20400
|
}
|
|
20370
20401
|
static clipSide(n, box, ps, pn, tail) {
|
|
20371
20402
|
const fn = _SplineClipHelper.getInsideFn(n);
|
|
@@ -29424,6 +29455,10 @@ function mapEdge(e) {
|
|
|
29424
29455
|
mapLabelPos(e.info.tail_label);
|
|
29425
29456
|
e.info.headArrowOps = mapArrowOps(e.info.headArrowOps);
|
|
29426
29457
|
e.info.tailArrowOps = mapArrowOps(e.info.tailArrowOps);
|
|
29458
|
+
for (const bz of spl.list) {
|
|
29459
|
+
if (bz.sArrowOps) bz.sArrowOps = mapArrowOps(bz.sArrowOps);
|
|
29460
|
+
if (bz.eArrowOps) bz.eArrowOps = mapArrowOps(bz.eArrowOps);
|
|
29461
|
+
}
|
|
29427
29462
|
}
|
|
29428
29463
|
function rotateBb(bb, rankdir) {
|
|
29429
29464
|
if (rankdir === RANKDIR_LR || rankdir === RANKDIR_BT) {
|
|
@@ -33349,6 +33384,11 @@ function swapBezier(b) {
|
|
|
33349
33384
|
const sp = b.sp;
|
|
33350
33385
|
b.sp = b.ep;
|
|
33351
33386
|
b.ep = sp;
|
|
33387
|
+
if (b.sArrowOps !== void 0 || b.eArrowOps !== void 0) {
|
|
33388
|
+
const so = b.sArrowOps;
|
|
33389
|
+
b.sArrowOps = b.eArrowOps;
|
|
33390
|
+
b.eArrowOps = so;
|
|
33391
|
+
}
|
|
33352
33392
|
}
|
|
33353
33393
|
function swapSpline(s) {
|
|
33354
33394
|
s.list.reverse();
|
|
@@ -34052,6 +34092,57 @@ function polyRects(ng, bbs, pinfo) {
|
|
|
34052
34092
|
return places;
|
|
34053
34093
|
}
|
|
34054
34094
|
|
|
34095
|
+
// src/common/pointset.ts
|
|
34096
|
+
function cmpPair(a, b) {
|
|
34097
|
+
if (a.x > b.x) return 1;
|
|
34098
|
+
if (a.x < b.x) return -1;
|
|
34099
|
+
if (a.y > b.y) return 1;
|
|
34100
|
+
if (a.y < b.y) return -1;
|
|
34101
|
+
return 0;
|
|
34102
|
+
}
|
|
34103
|
+
var PointSet = class {
|
|
34104
|
+
byX = /* @__PURE__ */ new Map();
|
|
34105
|
+
n = 0;
|
|
34106
|
+
/**
|
|
34107
|
+
* Insert (x, y). A duplicate keeps the point inserted first, as `dtinsert`
|
|
34108
|
+
* returns the existing object and the new one is freed.
|
|
34109
|
+
* @see lib/common/pointset.c:addPS
|
|
34110
|
+
*/
|
|
34111
|
+
addPS(x, y) {
|
|
34112
|
+
let col = this.byX.get(x);
|
|
34113
|
+
if (col === void 0) {
|
|
34114
|
+
col = /* @__PURE__ */ new Map();
|
|
34115
|
+
this.byX.set(x, col);
|
|
34116
|
+
}
|
|
34117
|
+
if (col.has(y)) return;
|
|
34118
|
+
col.set(y, { x, y });
|
|
34119
|
+
this.n++;
|
|
34120
|
+
}
|
|
34121
|
+
/** @see lib/common/pointset.c:inPS */
|
|
34122
|
+
inPS(pt) {
|
|
34123
|
+
return this.byX.get(pt.x)?.has(pt.y) ?? false;
|
|
34124
|
+
}
|
|
34125
|
+
/** @see lib/common/pointset.c:isInPS */
|
|
34126
|
+
isInPS(x, y) {
|
|
34127
|
+
return this.byX.get(x)?.has(y) ?? false;
|
|
34128
|
+
}
|
|
34129
|
+
/** @see lib/common/pointset.c:sizeOf */
|
|
34130
|
+
sizeOf() {
|
|
34131
|
+
return this.n;
|
|
34132
|
+
}
|
|
34133
|
+
/**
|
|
34134
|
+
* The points in dictionary order (`dtflatten` walks the ordered set).
|
|
34135
|
+
* @see lib/common/pointset.c:pointsOf
|
|
34136
|
+
*/
|
|
34137
|
+
pointsOf() {
|
|
34138
|
+
const pts = [];
|
|
34139
|
+
for (const col of this.byX.values()) {
|
|
34140
|
+
for (const p of col.values()) pts.push({ x: p.x, y: p.y });
|
|
34141
|
+
}
|
|
34142
|
+
return pts.sort(cmpPair);
|
|
34143
|
+
}
|
|
34144
|
+
};
|
|
34145
|
+
|
|
34055
34146
|
// src/layout/pack/poly-place.ts
|
|
34056
34147
|
var C_AVG = 100;
|
|
34057
34148
|
function grid(x, s) {
|
|
@@ -34063,21 +34154,6 @@ function cval2(v, s) {
|
|
|
34063
34154
|
function cell(p, s) {
|
|
34064
34155
|
return { x: cval2(p.x, s), y: cval2(p.y, s) };
|
|
34065
34156
|
}
|
|
34066
|
-
var PointSet = class {
|
|
34067
|
-
m = /* @__PURE__ */ new Map();
|
|
34068
|
-
add(x, y) {
|
|
34069
|
-
this.m.set(`${x},${y}`, { x, y });
|
|
34070
|
-
}
|
|
34071
|
-
has(p) {
|
|
34072
|
-
return this.m.has(`${p.x},${p.y}`);
|
|
34073
|
-
}
|
|
34074
|
-
points() {
|
|
34075
|
-
return [...this.m.values()];
|
|
34076
|
-
}
|
|
34077
|
-
get size() {
|
|
34078
|
-
return this.m.size;
|
|
34079
|
-
}
|
|
34080
|
-
};
|
|
34081
34157
|
function computeStep2(bbs, margin) {
|
|
34082
34158
|
const a = C_AVG * bbs.length - 1;
|
|
34083
34159
|
let b = 0;
|
|
@@ -34095,7 +34171,7 @@ function computeStep2(bbs, margin) {
|
|
|
34095
34171
|
function lineXDominant(st, ps) {
|
|
34096
34172
|
let d = st.ay - (st.ax >> 1);
|
|
34097
34173
|
for (; ; ) {
|
|
34098
|
-
ps.
|
|
34174
|
+
ps.addPS(st.x, st.y);
|
|
34099
34175
|
if (st.x === st.x2) return;
|
|
34100
34176
|
if (d >= 0) {
|
|
34101
34177
|
st.y += st.sy;
|
|
@@ -34108,7 +34184,7 @@ function lineXDominant(st, ps) {
|
|
|
34108
34184
|
function lineYDominant(st, ps) {
|
|
34109
34185
|
let d = st.ax - (st.ay >> 1);
|
|
34110
34186
|
for (; ; ) {
|
|
34111
|
-
ps.
|
|
34187
|
+
ps.addPS(st.x, st.y);
|
|
34112
34188
|
if (st.y === st.y2) return;
|
|
34113
34189
|
if (d >= 0) {
|
|
34114
34190
|
st.x += st.sx;
|
|
@@ -34140,7 +34216,7 @@ function fillLine(p, q, ps) {
|
|
|
34140
34216
|
}
|
|
34141
34217
|
function fillRect(LL, UR, ps) {
|
|
34142
34218
|
for (let x = LL.x; x <= UR.x; x++) {
|
|
34143
|
-
for (let y = LL.y; y <= UR.y; y++) ps.
|
|
34219
|
+
for (let y = LL.y; y <= UR.y; y++) ps.addPS(x, y);
|
|
34144
34220
|
}
|
|
34145
34221
|
}
|
|
34146
34222
|
function roundedCell(p, ssize) {
|
|
@@ -34192,7 +34268,7 @@ function genBox3(bb0, ssize, margin, center) {
|
|
|
34192
34268
|
const UR = roundedCell({ x: center.x + bbW + margin, y: center.y + bbH + margin }, ssize);
|
|
34193
34269
|
fillRect(LL, UR, ps);
|
|
34194
34270
|
return {
|
|
34195
|
-
cells: ps.
|
|
34271
|
+
cells: ps.pointsOf(),
|
|
34196
34272
|
perim: grid(bb0.ur.x - bb0.ll.x + 2 * margin, ssize) + grid(bb0.ur.y - bb0.ll.y + 2 * margin, ssize),
|
|
34197
34273
|
index: 0
|
|
34198
34274
|
};
|
|
@@ -34224,42 +34300,38 @@ function genPoly(root, g, bb, ssize, pinfo, center) {
|
|
|
34224
34300
|
};
|
|
34225
34301
|
for (const n of g.nodes.values()) coverNode(n, ctx);
|
|
34226
34302
|
return {
|
|
34227
|
-
cells: ps.
|
|
34303
|
+
cells: ps.pointsOf(),
|
|
34228
34304
|
perim: grid(bb.ur.x - bb.ll.x + 2 * pinfo.margin, ssize) + grid(bb.ur.y - bb.ll.y + 2 * pinfo.margin, ssize),
|
|
34229
34305
|
index: 0
|
|
34230
34306
|
};
|
|
34231
34307
|
}
|
|
34232
34308
|
function fits2(x, y, info, ctx) {
|
|
34233
34309
|
for (const c of info.cells) {
|
|
34234
|
-
if (ctx.ps.
|
|
34310
|
+
if (ctx.ps.isInPS(c.x + x, c.y + y)) return false;
|
|
34235
34311
|
}
|
|
34236
34312
|
const bb = ctx.bbs[info.index];
|
|
34237
34313
|
const LL = { x: cround(bb.ll.x), y: cround(bb.ll.y) };
|
|
34238
34314
|
ctx.places[info.index] = { x: Math.imul(ctx.step, x) - LL.x, y: Math.imul(ctx.step, y) - LL.y };
|
|
34239
|
-
for (const c of info.cells) ctx.ps.
|
|
34315
|
+
for (const c of info.cells) ctx.ps.addPS(c.x + x, c.y + y);
|
|
34240
34316
|
return true;
|
|
34241
34317
|
}
|
|
34242
|
-
function
|
|
34243
|
-
|
|
34244
|
-
|
|
34245
|
-
|
|
34246
|
-
|
|
34247
|
-
|
|
34248
|
-
|
|
34249
|
-
|
|
34250
|
-
|
|
34251
|
-
|
|
34252
|
-
|
|
34253
|
-
|
|
34254
|
-
|
|
34255
|
-
for (; x < bnd; x++) yield [x, y];
|
|
34256
|
-
for (; y < bnd; y++) yield [x, y];
|
|
34257
|
-
for (; x > -bnd; x--) yield [x, y];
|
|
34258
|
-
for (; y > 0; y--) yield [x, y];
|
|
34318
|
+
function leg(c, dx, dy, end, info, ctx) {
|
|
34319
|
+
for (; (dx !== 0 ? c.x : c.y) !== end; c.x += dx, c.y += dy) {
|
|
34320
|
+
if (fits2(c.x, c.y, info, ctx)) return true;
|
|
34321
|
+
}
|
|
34322
|
+
return false;
|
|
34323
|
+
}
|
|
34324
|
+
function ringWide(bnd, info, ctx) {
|
|
34325
|
+
const c = { x: 0, y: -bnd };
|
|
34326
|
+
return leg(c, 1, 0, bnd, info, ctx) || leg(c, 0, 1, bnd, info, ctx) || leg(c, -1, 0, -bnd, info, ctx) || leg(c, 0, -1, -bnd, info, ctx) || leg(c, 1, 0, 0, info, ctx);
|
|
34327
|
+
}
|
|
34328
|
+
function ringTall(bnd, info, ctx) {
|
|
34329
|
+
const c = { x: -bnd, y: 0 };
|
|
34330
|
+
return leg(c, 0, -1, -bnd, info, ctx) || leg(c, 1, 0, bnd, info, ctx) || leg(c, 0, 1, bnd, info, ctx) || leg(c, -1, 0, -bnd, info, ctx) || leg(c, 0, -1, 0, info, ctx);
|
|
34259
34331
|
}
|
|
34260
34332
|
function placeFixed(info, ctx, center) {
|
|
34261
34333
|
ctx.places[info.index] = { x: -center.x, y: -center.y };
|
|
34262
|
-
for (const c of info.cells) ctx.ps.
|
|
34334
|
+
for (const c of info.cells) ctx.ps.addPS(c.x, c.y);
|
|
34263
34335
|
}
|
|
34264
34336
|
function placeGraph2(i, info, ctx) {
|
|
34265
34337
|
const bb = ctx.bbs[info.index];
|
|
@@ -34271,10 +34343,7 @@ function placeGraph2(i, info, ctx) {
|
|
|
34271
34343
|
if (fits2(0, 0, info, ctx)) return;
|
|
34272
34344
|
const wide = Math.ceil(bb.ur.x - bb.ll.x) >= Math.ceil(bb.ur.y - bb.ll.y);
|
|
34273
34345
|
for (let bnd = 1; ; bnd++) {
|
|
34274
|
-
|
|
34275
|
-
for (const [x, y] of ring) {
|
|
34276
|
-
if (fits2(x, y, info, ctx)) return;
|
|
34277
|
-
}
|
|
34346
|
+
if (wide ? ringWide(bnd, info, ctx) : ringTall(bnd, info, ctx)) return;
|
|
34278
34347
|
}
|
|
34279
34348
|
}
|
|
34280
34349
|
function polyGraphs(gs, root, pinfo, bbs) {
|
|
@@ -34475,6 +34544,10 @@ function shiftEdgePoints(e, dx, dy) {
|
|
|
34475
34544
|
const shiftOps = (ops) => ops?.map((op) => mapArrowOpPoints(op, (p) => ({ x: p.x + dx, y: p.y + dy })));
|
|
34476
34545
|
e.info.headArrowOps = shiftOps(e.info.headArrowOps);
|
|
34477
34546
|
e.info.tailArrowOps = shiftOps(e.info.tailArrowOps);
|
|
34547
|
+
for (const bz of spl.list) {
|
|
34548
|
+
if (bz.sArrowOps) bz.sArrowOps = shiftOps(bz.sArrowOps);
|
|
34549
|
+
if (bz.eArrowOps) bz.eArrowOps = shiftOps(bz.eArrowOps);
|
|
34550
|
+
}
|
|
34478
34551
|
}
|
|
34479
34552
|
function shiftOneGraph(g, dx, dy) {
|
|
34480
34553
|
for (const n of g.nodes.values()) {
|
|
@@ -50117,6 +50190,9 @@ var XdotRenderer = class extends EdgeDrawBase {
|
|
|
50117
50190
|
headArrowColor = c.headColor;
|
|
50118
50191
|
} else {
|
|
50119
50192
|
this.emitPlainSpline(e, spl.list, edraw, job);
|
|
50193
|
+
for (const ops of endArrowOps(e, "tail")) this.emitArrows(this.bufs[2 /* TDraw */], ops, job, 2 /* TDraw */);
|
|
50194
|
+
for (const ops of endArrowOps(e, "head")) this.emitArrows(this.bufs[3 /* HDraw */], ops, job, 3 /* HDraw */);
|
|
50195
|
+
return;
|
|
50120
50196
|
}
|
|
50121
50197
|
this.emitArrows(this.bufs[2 /* TDraw */], e.info.tailArrowOps, job, 2 /* TDraw */, tailArrowColor);
|
|
50122
50198
|
this.emitArrows(this.bufs[3 /* HDraw */], e.info.headArrowOps, job, 3 /* HDraw */, headArrowColor);
|