@shumoku/renderer 0.2.14 → 0.2.16
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/cli.d.ts +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +39 -15
- package/dist/cli.js.map +1 -1
- package/dist/svg.d.ts +6 -3
- package/dist/svg.d.ts.map +1 -1
- package/dist/svg.js +77 -27
- package/dist/svg.js.map +1 -1
- package/package.json +4 -2
- package/src/cli.ts +43 -15
- package/src/svg.ts +96 -29
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAGH,OAAO,gBAAgB,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Shumoku CLI - Render NetworkGraph JSON to SVG/HTML
|
|
3
|
+
* Shumoku CLI - Render NetworkGraph YAML/JSON to SVG/HTML
|
|
4
4
|
*/
|
|
5
|
+
// Import @shumoku/icons to auto-register vendor icons
|
|
6
|
+
import '@shumoku/icons';
|
|
5
7
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
6
|
-
import { dirname, resolve } from 'node:path';
|
|
8
|
+
import { dirname, extname, resolve } from 'node:path';
|
|
7
9
|
import { parseArgs } from 'node:util';
|
|
8
10
|
import { buildHierarchicalSheets, HierarchicalLayout } from '@shumoku/core';
|
|
11
|
+
import { parser } from '@shumoku/parser-yaml';
|
|
9
12
|
import pkg from '../package.json' with { type: 'json' };
|
|
10
13
|
import * as html from './html/index.js';
|
|
11
14
|
import { INTERACTIVE_IIFE } from './iife-string.js';
|
|
12
15
|
import * as svg from './svg.js';
|
|
13
16
|
const VERSION = pkg.version;
|
|
14
17
|
const HELP = `
|
|
15
|
-
shumoku v${VERSION} - Render NetworkGraph JSON to SVG/HTML
|
|
18
|
+
shumoku v${VERSION} - Render NetworkGraph YAML/JSON to SVG/HTML
|
|
16
19
|
|
|
17
|
-
Usage: shumoku render [options] <input
|
|
20
|
+
Usage: shumoku render [options] <input>
|
|
18
21
|
|
|
19
22
|
Input:
|
|
20
|
-
<input
|
|
23
|
+
<input> NetworkGraph YAML or JSON file (use - for stdin)
|
|
24
|
+
Format auto-detected from extension (.yaml, .yml, .json)
|
|
21
25
|
|
|
22
26
|
Output:
|
|
23
27
|
-f, --format <type> Output format: svg|html (default: auto from extension)
|
|
@@ -29,10 +33,10 @@ Other:
|
|
|
29
33
|
-v, --version Show version
|
|
30
34
|
|
|
31
35
|
Examples:
|
|
36
|
+
shumoku render network.yaml -o diagram.svg
|
|
37
|
+
shumoku render network.yaml -f html -o diagram.html
|
|
32
38
|
shumoku render topology.json -o diagram.svg
|
|
33
|
-
shumoku render
|
|
34
|
-
cat topology.json | shumoku render - -o diagram.svg
|
|
35
|
-
netbox-to-shumoku -f json -o netbox.json && shumoku render netbox.json -o netbox.svg
|
|
39
|
+
cat network.yaml | shumoku render - -o diagram.svg
|
|
36
40
|
`;
|
|
37
41
|
function cli() {
|
|
38
42
|
const args = process.argv.slice(2);
|
|
@@ -62,32 +66,52 @@ function cli() {
|
|
|
62
66
|
}
|
|
63
67
|
return { values, inputFile: positionals[0] };
|
|
64
68
|
}
|
|
69
|
+
function parseInput(content, filename) {
|
|
70
|
+
const ext = extname(filename).toLowerCase();
|
|
71
|
+
if (ext === '.json') {
|
|
72
|
+
return JSON.parse(content);
|
|
73
|
+
}
|
|
74
|
+
// Default to YAML (for .yaml, .yml, or stdin)
|
|
75
|
+
const result = parser.parse(content);
|
|
76
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
77
|
+
for (const warning of result.warnings) {
|
|
78
|
+
if (warning.severity === 'error') {
|
|
79
|
+
throw new Error(`YAML parse error: ${warning.message}`);
|
|
80
|
+
}
|
|
81
|
+
console.warn(`Warning: ${warning.message}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return result.graph;
|
|
85
|
+
}
|
|
65
86
|
async function main() {
|
|
66
87
|
const { values, inputFile } = cli();
|
|
67
88
|
if (!inputFile) {
|
|
68
89
|
console.error('Error: Input file required.');
|
|
69
|
-
console.error('Usage: shumoku render <input.json>');
|
|
90
|
+
console.error('Usage: shumoku render <input.yaml|json>');
|
|
70
91
|
console.error('Use --help for more information.');
|
|
71
92
|
process.exit(1);
|
|
72
93
|
}
|
|
73
94
|
try {
|
|
74
95
|
// Read input
|
|
75
|
-
let
|
|
96
|
+
let content;
|
|
97
|
+
let filename;
|
|
76
98
|
if (inputFile === '-') {
|
|
77
|
-
// Read from stdin
|
|
99
|
+
// Read from stdin (assume YAML)
|
|
78
100
|
console.log('Reading from stdin...');
|
|
79
101
|
const chunks = [];
|
|
80
102
|
for await (const chunk of process.stdin) {
|
|
81
103
|
chunks.push(chunk);
|
|
82
104
|
}
|
|
83
|
-
|
|
105
|
+
content = Buffer.concat(chunks).toString('utf-8');
|
|
106
|
+
filename = 'stdin.yaml';
|
|
84
107
|
}
|
|
85
108
|
else {
|
|
86
109
|
console.log(`Reading ${inputFile}...`);
|
|
87
|
-
|
|
110
|
+
content = readFileSync(resolve(process.cwd(), inputFile), 'utf-8');
|
|
111
|
+
filename = inputFile;
|
|
88
112
|
}
|
|
89
|
-
// Parse
|
|
90
|
-
const graph =
|
|
113
|
+
// Parse input
|
|
114
|
+
const graph = parseInput(content, filename);
|
|
91
115
|
console.log(`Loaded graph: ${graph.nodes.length} nodes, ${graph.links.length} links`);
|
|
92
116
|
if (graph.subgraphs) {
|
|
93
117
|
console.log(` ${graph.subgraphs.length} subgraphs`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/svg.d.ts
CHANGED
|
@@ -49,8 +49,6 @@ export declare class SVGRenderer {
|
|
|
49
49
|
private get dataAttrs();
|
|
50
50
|
/** Get unique ID suffix for this sheet */
|
|
51
51
|
private get idSuffix();
|
|
52
|
-
/** Get shadow filter ID */
|
|
53
|
-
private get shadowId();
|
|
54
52
|
/** Get arrow marker ID */
|
|
55
53
|
private get arrowId();
|
|
56
54
|
/** Get red arrow marker ID */
|
|
@@ -137,6 +135,7 @@ export declare class SVGRenderer {
|
|
|
137
135
|
private renderBandwidthLines;
|
|
138
136
|
/**
|
|
139
137
|
* Generate SVG path string from points with rounded corners
|
|
138
|
+
* For parallel lines, adjusts corner radius based on offset and turn direction
|
|
140
139
|
*/
|
|
141
140
|
private generatePath;
|
|
142
141
|
/**
|
|
@@ -145,9 +144,13 @@ export declare class SVGRenderer {
|
|
|
145
144
|
private calculateLineOffsets;
|
|
146
145
|
/**
|
|
147
146
|
* Offset points perpendicular to line direction, handling each segment properly
|
|
148
|
-
* For orthogonal paths,
|
|
147
|
+
* For orthogonal paths, calculates intersection point at bends for clean corners
|
|
149
148
|
*/
|
|
150
149
|
private offsetPoints;
|
|
150
|
+
/**
|
|
151
|
+
* Calculate intersection point of two offset lines at a bend
|
|
152
|
+
*/
|
|
153
|
+
private getOffsetIntersection;
|
|
151
154
|
/**
|
|
152
155
|
* Get perpendicular unit vector for a line segment
|
|
153
156
|
*/
|
package/dist/svg.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAKV,YAAY,EAKZ,YAAY,EAIb,MAAM,eAAe,CAAA;AAUtB,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAgElE,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CACvD;AAeD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA8B;gBAEnC,OAAO,CAAC,EAAE,kBAAkB;IAIxC,2CAA2C;IAC3C,OAAO,KAAK,aAAa,GAExB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,GAMpB;IAED,0CAA0C;IAC1C,OAAO,KAAK,QAAQ,GAEnB;IAED,
|
|
1
|
+
{"version":3,"file":"svg.d.ts","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAKV,YAAY,EAKZ,YAAY,EAIb,MAAM,eAAe,CAAA;AAUtB,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAgElE,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CACvD;AAeD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA8B;gBAEnC,OAAO,CAAC,EAAE,kBAAkB;IAIxC,2CAA2C;IAC3C,OAAO,KAAK,aAAa,GAExB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,GAMpB;IAED,0CAA0C;IAC1C,OAAO,KAAK,QAAQ,GAEnB;IAED,0BAA0B;IAC1B,OAAO,KAAK,OAAO,GAElB;IAED,8BAA8B;IAC9B,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAyEzD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmFpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,cAAc;IAkJtB,0CAA0C;IAC1C,iDAAiD;IACjD,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,oBAAoB;IAwC5B,+DAA+D;IAC/D,OAAO,CAAC,uBAAuB;IA6B/B,uEAAuE;IACvE,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,WAAW;IAgFnB,OAAO,CAAC,eAAe;IAmEvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+EzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6CzB,gDAAgD;IAChD,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,UAAU;IA2ElB,+DAA+D;IAC/D,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAmFhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuD5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAyEpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAalC;IAED;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,WAAW;IAsCnB,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,UAAU;CASnB;AAGD,MAAM,WAAW,aAAc,SAAQ,kBAAkB;CAAG;AAE5D;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAGjG"}
|
package/dist/svg.js
CHANGED
|
@@ -71,10 +71,6 @@ export class SVGRenderer {
|
|
|
71
71
|
get idSuffix() {
|
|
72
72
|
return this.options.sheetId ? `-${this.options.sheetId}` : '';
|
|
73
73
|
}
|
|
74
|
-
/** Get shadow filter ID */
|
|
75
|
-
get shadowId() {
|
|
76
|
-
return `shadow${this.idSuffix}`;
|
|
77
|
-
}
|
|
78
74
|
/** Get arrow marker ID */
|
|
79
75
|
get arrowId() {
|
|
80
76
|
return `arrow${this.idSuffix}`;
|
|
@@ -306,10 +302,6 @@ export class SVGRenderer {
|
|
|
306
302
|
<polygon points="0 0, 10 3.5, 0 7" fill="#dc2626" />
|
|
307
303
|
</marker>
|
|
308
304
|
|
|
309
|
-
<!-- Filters -->
|
|
310
|
-
<filter id="${this.shadowId}" x="-20%" y="-20%" width="140%" height="140%">
|
|
311
|
-
<feDropShadow dx="2" dy="2" stdDeviation="3" flood-opacity="0.15"/>
|
|
312
|
-
</filter>
|
|
313
305
|
</defs>`;
|
|
314
306
|
}
|
|
315
307
|
renderStyles() {
|
|
@@ -615,22 +607,22 @@ ${fg}
|
|
|
615
607
|
switch (shape) {
|
|
616
608
|
case 'rect':
|
|
617
609
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}"
|
|
618
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
610
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
619
611
|
case 'rounded':
|
|
620
612
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="8" ry="8"
|
|
621
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
613
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
622
614
|
case 'circle': {
|
|
623
615
|
const r = Math.min(halfW, halfH);
|
|
624
616
|
return `<circle cx="${x}" cy="${y}" r="${r}"
|
|
625
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
617
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
626
618
|
}
|
|
627
619
|
case 'diamond':
|
|
628
620
|
return `<polygon points="${x},${y - halfH} ${x + halfW},${y} ${x},${y + halfH} ${x - halfW},${y}"
|
|
629
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
621
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
630
622
|
case 'hexagon': {
|
|
631
623
|
const hx = halfW * 0.866;
|
|
632
624
|
return `<polygon points="${x - halfW},${y} ${x - hx},${y - halfH} ${x + hx},${y - halfH} ${x + halfW},${y} ${x + hx},${y + halfH} ${x - hx},${y + halfH}"
|
|
633
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
625
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
634
626
|
}
|
|
635
627
|
case 'cylinder': {
|
|
636
628
|
const ellipseH = h * 0.15;
|
|
@@ -639,20 +631,20 @@ ${fg}
|
|
|
639
631
|
<rect x="${x - halfW}" y="${y - halfH + ellipseH}" width="${w}" height="${h - ellipseH * 2}" fill="${fill}" stroke="none" />
|
|
640
632
|
<line x1="${x - halfW}" y1="${y - halfH + ellipseH}" x2="${x - halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
|
|
641
633
|
<line x1="${x + halfW}" y1="${y - halfH + ellipseH}" x2="${x + halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
|
|
642
|
-
<ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
634
|
+
<ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />
|
|
643
635
|
</g>`;
|
|
644
636
|
}
|
|
645
637
|
case 'stadium':
|
|
646
638
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="${halfH}" ry="${halfH}"
|
|
647
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
639
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
648
640
|
case 'trapezoid': {
|
|
649
641
|
const indent = w * 0.15;
|
|
650
642
|
return `<polygon points="${x - halfW + indent},${y - halfH} ${x + halfW - indent},${y - halfH} ${x + halfW},${y + halfH} ${x - halfW},${y + halfH}"
|
|
651
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
643
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
652
644
|
}
|
|
653
645
|
default:
|
|
654
646
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="4" ry="4"
|
|
655
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
647
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`;
|
|
656
648
|
}
|
|
657
649
|
}
|
|
658
650
|
/**
|
|
@@ -1027,7 +1019,8 @@ ${linePath}`;
|
|
|
1027
1019
|
const offsets = this.calculateLineOffsets(lineCount, lineSpacing);
|
|
1028
1020
|
for (const offset of offsets) {
|
|
1029
1021
|
const offsetPoints = this.offsetPoints(points, offset);
|
|
1030
|
-
|
|
1022
|
+
// Pass offset to generatePath for radius adjustment at bends
|
|
1023
|
+
const path = this.generatePath(offsetPoints, 8, points, offset);
|
|
1031
1024
|
lines.push(`<path class="link" data-id="${id}" d="${path}"
|
|
1032
1025
|
fill="none" stroke="${stroke}" stroke-width="${strokeWidth}"
|
|
1033
1026
|
${dasharray ? `stroke-dasharray="${dasharray}"` : ''} pointer-events="none" />`);
|
|
@@ -1044,8 +1037,9 @@ ${lines.join('\n')}
|
|
|
1044
1037
|
}
|
|
1045
1038
|
/**
|
|
1046
1039
|
* Generate SVG path string from points with rounded corners
|
|
1040
|
+
* For parallel lines, adjusts corner radius based on offset and turn direction
|
|
1047
1041
|
*/
|
|
1048
|
-
generatePath(points, cornerRadius = 8) {
|
|
1042
|
+
generatePath(points, cornerRadius = 8, originalPoints, offset) {
|
|
1049
1043
|
if (points.length < 2)
|
|
1050
1044
|
return '';
|
|
1051
1045
|
if (points.length === 2) {
|
|
@@ -1059,9 +1053,27 @@ ${lines.join('\n')}
|
|
|
1059
1053
|
// Calculate distances to prev and next points
|
|
1060
1054
|
const distPrev = Math.hypot(curr.x - prev.x, curr.y - prev.y);
|
|
1061
1055
|
const distNext = Math.hypot(next.x - curr.x, next.y - curr.y);
|
|
1056
|
+
// Adjust corner radius for parallel lines based on turn direction
|
|
1057
|
+
let adjustedRadius = cornerRadius;
|
|
1058
|
+
if (originalPoints && offset !== undefined && i < originalPoints.length - 1) {
|
|
1059
|
+
const origPrev = originalPoints[Math.min(i - 1, originalPoints.length - 1)];
|
|
1060
|
+
const origCurr = originalPoints[Math.min(i, originalPoints.length - 1)];
|
|
1061
|
+
const origNext = originalPoints[Math.min(i + 1, originalPoints.length - 1)];
|
|
1062
|
+
// Calculate turn direction using cross product
|
|
1063
|
+
const v1 = { x: origCurr.x - origPrev.x, y: origCurr.y - origPrev.y };
|
|
1064
|
+
const v2 = { x: origNext.x - origCurr.x, y: origNext.y - origCurr.y };
|
|
1065
|
+
const cross = v1.x * v2.y - v1.y * v2.x;
|
|
1066
|
+
// cross > 0: left turn, cross < 0: right turn
|
|
1067
|
+
// For left turn: positive offset = outside (larger R), negative offset = inside (smaller R)
|
|
1068
|
+
// For right turn: positive offset = inside (smaller R), negative offset = outside (larger R)
|
|
1069
|
+
if (Math.abs(cross) > 0.01) {
|
|
1070
|
+
const turnSign = cross > 0 ? 1 : -1;
|
|
1071
|
+
adjustedRadius = Math.max(1, cornerRadius - turnSign * offset);
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1062
1074
|
// Limit radius to half the shortest segment
|
|
1063
1075
|
const maxRadius = Math.min(distPrev, distNext) / 2;
|
|
1064
|
-
const radius = Math.min(
|
|
1076
|
+
const radius = Math.min(adjustedRadius, maxRadius);
|
|
1065
1077
|
if (radius < 1) {
|
|
1066
1078
|
// Too small for rounding, just use straight line
|
|
1067
1079
|
parts.push(`L ${curr.x} ${curr.y}`);
|
|
@@ -1096,7 +1108,7 @@ ${lines.join('\n')}
|
|
|
1096
1108
|
}
|
|
1097
1109
|
/**
|
|
1098
1110
|
* Offset points perpendicular to line direction, handling each segment properly
|
|
1099
|
-
* For orthogonal paths,
|
|
1111
|
+
* For orthogonal paths, calculates intersection point at bends for clean corners
|
|
1100
1112
|
*/
|
|
1101
1113
|
offsetPoints(points, offset) {
|
|
1102
1114
|
if (points.length < 2)
|
|
@@ -1117,21 +1129,59 @@ ${lines.join('\n')}
|
|
|
1117
1129
|
result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset });
|
|
1118
1130
|
}
|
|
1119
1131
|
else {
|
|
1120
|
-
// Middle point (bend):
|
|
1132
|
+
// Middle point (bend): calculate intersection of offset lines
|
|
1121
1133
|
const prev = points[i - 1];
|
|
1122
|
-
const perp = this.getPerpendicular(prev, p);
|
|
1123
|
-
result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset });
|
|
1124
|
-
// Also add a point for the outgoing segment if direction changes
|
|
1125
1134
|
const next = points[i + 1];
|
|
1135
|
+
const perpPrev = this.getPerpendicular(prev, p);
|
|
1126
1136
|
const perpNext = this.getPerpendicular(p, next);
|
|
1127
1137
|
// Check if direction changed (bend point)
|
|
1128
|
-
|
|
1129
|
-
|
|
1138
|
+
const directionChanged = Math.abs(perpPrev.x - perpNext.x) > 0.01 || Math.abs(perpPrev.y - perpNext.y) > 0.01;
|
|
1139
|
+
if (directionChanged) {
|
|
1140
|
+
// Calculate intersection of the two offset lines
|
|
1141
|
+
const intersection = this.getOffsetIntersection(prev, p, next, offset);
|
|
1142
|
+
if (intersection) {
|
|
1143
|
+
result.push(intersection);
|
|
1144
|
+
}
|
|
1145
|
+
else {
|
|
1146
|
+
// Fallback: use simple offset
|
|
1147
|
+
result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset });
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
else {
|
|
1151
|
+
// No bend, just offset the point
|
|
1152
|
+
result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset });
|
|
1130
1153
|
}
|
|
1131
1154
|
}
|
|
1132
1155
|
}
|
|
1133
1156
|
return result;
|
|
1134
1157
|
}
|
|
1158
|
+
/**
|
|
1159
|
+
* Calculate intersection point of two offset lines at a bend
|
|
1160
|
+
*/
|
|
1161
|
+
getOffsetIntersection(prev, curr, next, offset) {
|
|
1162
|
+
const perpPrev = this.getPerpendicular(prev, curr);
|
|
1163
|
+
const perpNext = this.getPerpendicular(curr, next);
|
|
1164
|
+
// Offset start point on incoming segment
|
|
1165
|
+
const p1 = { x: prev.x + perpPrev.x * offset, y: prev.y + perpPrev.y * offset };
|
|
1166
|
+
// Offset start point on outgoing segment
|
|
1167
|
+
const p3 = { x: curr.x + perpNext.x * offset, y: curr.y + perpNext.y * offset };
|
|
1168
|
+
// Direction vectors
|
|
1169
|
+
const d1 = { x: curr.x - prev.x, y: curr.y - prev.y };
|
|
1170
|
+
const d2 = { x: next.x - curr.x, y: next.y - curr.y };
|
|
1171
|
+
// Calculate intersection using parametric form
|
|
1172
|
+
const cross = d1.x * d2.y - d1.y * d2.x;
|
|
1173
|
+
if (Math.abs(cross) < 0.0001) {
|
|
1174
|
+
// Lines are parallel, no intersection
|
|
1175
|
+
return null;
|
|
1176
|
+
}
|
|
1177
|
+
const dx = p3.x - p1.x;
|
|
1178
|
+
const dy = p3.y - p1.y;
|
|
1179
|
+
const t = (dx * d2.y - dy * d2.x) / cross;
|
|
1180
|
+
return {
|
|
1181
|
+
x: p1.x + t * d1.x,
|
|
1182
|
+
y: p1.y + t * d1.y,
|
|
1183
|
+
};
|
|
1184
|
+
}
|
|
1135
1185
|
/**
|
|
1136
1186
|
* Get perpendicular unit vector for a line segment
|
|
1137
1187
|
*/
|
package/dist/svg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../src/svg.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shumoku/renderer",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16",
|
|
4
4
|
"description": "SVG and HTML renderers for Shumoku network diagrams",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "konoe-akitoshi",
|
|
@@ -56,7 +56,9 @@
|
|
|
56
56
|
"test": "vitest run --passWithNoTests"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@shumoku/core": "^0.2.4"
|
|
59
|
+
"@shumoku/core": "^0.2.4",
|
|
60
|
+
"@shumoku/icons": "^0.2.4",
|
|
61
|
+
"@shumoku/parser-yaml": "^0.2.15"
|
|
60
62
|
},
|
|
61
63
|
"devDependencies": {
|
|
62
64
|
"@types/node": "^20.11.0",
|
package/src/cli.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* Shumoku CLI - Render NetworkGraph JSON to SVG/HTML
|
|
3
|
+
* Shumoku CLI - Render NetworkGraph YAML/JSON to SVG/HTML
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
// Import @shumoku/icons to auto-register vendor icons
|
|
7
|
+
import '@shumoku/icons'
|
|
8
|
+
|
|
6
9
|
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
|
|
7
|
-
import { dirname, resolve } from 'node:path'
|
|
10
|
+
import { dirname, extname, resolve } from 'node:path'
|
|
8
11
|
import { parseArgs } from 'node:util'
|
|
9
12
|
import type { NetworkGraph } from '@shumoku/core'
|
|
10
13
|
import { buildHierarchicalSheets, HierarchicalLayout } from '@shumoku/core'
|
|
14
|
+
import { parser } from '@shumoku/parser-yaml'
|
|
11
15
|
import pkg from '../package.json' with { type: 'json' }
|
|
12
16
|
import * as html from './html/index.js'
|
|
13
17
|
import { INTERACTIVE_IIFE } from './iife-string.js'
|
|
@@ -16,12 +20,13 @@ import * as svg from './svg.js'
|
|
|
16
20
|
const VERSION = pkg.version
|
|
17
21
|
|
|
18
22
|
const HELP = `
|
|
19
|
-
shumoku v${VERSION} - Render NetworkGraph JSON to SVG/HTML
|
|
23
|
+
shumoku v${VERSION} - Render NetworkGraph YAML/JSON to SVG/HTML
|
|
20
24
|
|
|
21
|
-
Usage: shumoku render [options] <input
|
|
25
|
+
Usage: shumoku render [options] <input>
|
|
22
26
|
|
|
23
27
|
Input:
|
|
24
|
-
<input
|
|
28
|
+
<input> NetworkGraph YAML or JSON file (use - for stdin)
|
|
29
|
+
Format auto-detected from extension (.yaml, .yml, .json)
|
|
25
30
|
|
|
26
31
|
Output:
|
|
27
32
|
-f, --format <type> Output format: svg|html (default: auto from extension)
|
|
@@ -33,10 +38,10 @@ Other:
|
|
|
33
38
|
-v, --version Show version
|
|
34
39
|
|
|
35
40
|
Examples:
|
|
41
|
+
shumoku render network.yaml -o diagram.svg
|
|
42
|
+
shumoku render network.yaml -f html -o diagram.html
|
|
36
43
|
shumoku render topology.json -o diagram.svg
|
|
37
|
-
shumoku render
|
|
38
|
-
cat topology.json | shumoku render - -o diagram.svg
|
|
39
|
-
netbox-to-shumoku -f json -o netbox.json && shumoku render netbox.json -o netbox.svg
|
|
44
|
+
cat network.yaml | shumoku render - -o diagram.svg
|
|
40
45
|
`
|
|
41
46
|
|
|
42
47
|
type OutputFormat = 'svg' | 'html'
|
|
@@ -75,34 +80,57 @@ function cli() {
|
|
|
75
80
|
return { values, inputFile: positionals[0] }
|
|
76
81
|
}
|
|
77
82
|
|
|
83
|
+
function parseInput(content: string, filename: string): NetworkGraph {
|
|
84
|
+
const ext = extname(filename).toLowerCase()
|
|
85
|
+
|
|
86
|
+
if (ext === '.json') {
|
|
87
|
+
return JSON.parse(content) as NetworkGraph
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Default to YAML (for .yaml, .yml, or stdin)
|
|
91
|
+
const result = parser.parse(content)
|
|
92
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
93
|
+
for (const warning of result.warnings) {
|
|
94
|
+
if (warning.severity === 'error') {
|
|
95
|
+
throw new Error(`YAML parse error: ${warning.message}`)
|
|
96
|
+
}
|
|
97
|
+
console.warn(`Warning: ${warning.message}`)
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return result.graph
|
|
101
|
+
}
|
|
102
|
+
|
|
78
103
|
async function main(): Promise<void> {
|
|
79
104
|
const { values, inputFile } = cli()
|
|
80
105
|
|
|
81
106
|
if (!inputFile) {
|
|
82
107
|
console.error('Error: Input file required.')
|
|
83
|
-
console.error('Usage: shumoku render <input.json>')
|
|
108
|
+
console.error('Usage: shumoku render <input.yaml|json>')
|
|
84
109
|
console.error('Use --help for more information.')
|
|
85
110
|
process.exit(1)
|
|
86
111
|
}
|
|
87
112
|
|
|
88
113
|
try {
|
|
89
114
|
// Read input
|
|
90
|
-
let
|
|
115
|
+
let content: string
|
|
116
|
+
let filename: string
|
|
91
117
|
if (inputFile === '-') {
|
|
92
|
-
// Read from stdin
|
|
118
|
+
// Read from stdin (assume YAML)
|
|
93
119
|
console.log('Reading from stdin...')
|
|
94
120
|
const chunks: Buffer[] = []
|
|
95
121
|
for await (const chunk of process.stdin) {
|
|
96
122
|
chunks.push(chunk)
|
|
97
123
|
}
|
|
98
|
-
|
|
124
|
+
content = Buffer.concat(chunks).toString('utf-8')
|
|
125
|
+
filename = 'stdin.yaml'
|
|
99
126
|
} else {
|
|
100
127
|
console.log(`Reading ${inputFile}...`)
|
|
101
|
-
|
|
128
|
+
content = readFileSync(resolve(process.cwd(), inputFile), 'utf-8')
|
|
129
|
+
filename = inputFile
|
|
102
130
|
}
|
|
103
131
|
|
|
104
|
-
// Parse
|
|
105
|
-
const graph
|
|
132
|
+
// Parse input
|
|
133
|
+
const graph = parseInput(content, filename)
|
|
106
134
|
console.log(`Loaded graph: ${graph.nodes.length} nodes, ${graph.links.length} links`)
|
|
107
135
|
if (graph.subgraphs) {
|
|
108
136
|
console.log(` ${graph.subgraphs.length} subgraphs`)
|
package/src/svg.ts
CHANGED
|
@@ -168,11 +168,6 @@ export class SVGRenderer {
|
|
|
168
168
|
return this.options.sheetId ? `-${this.options.sheetId}` : ''
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
/** Get shadow filter ID */
|
|
172
|
-
private get shadowId(): string {
|
|
173
|
-
return `shadow${this.idSuffix}`
|
|
174
|
-
}
|
|
175
|
-
|
|
176
171
|
/** Get arrow marker ID */
|
|
177
172
|
private get arrowId(): string {
|
|
178
173
|
return `arrow${this.idSuffix}`
|
|
@@ -455,10 +450,6 @@ export class SVGRenderer {
|
|
|
455
450
|
<polygon points="0 0, 10 3.5, 0 7" fill="#dc2626" />
|
|
456
451
|
</marker>
|
|
457
452
|
|
|
458
|
-
<!-- Filters -->
|
|
459
|
-
<filter id="${this.shadowId}" x="-20%" y="-20%" width="140%" height="140%">
|
|
460
|
-
<feDropShadow dx="2" dy="2" stdDeviation="3" flood-opacity="0.15"/>
|
|
461
|
-
</filter>
|
|
462
453
|
</defs>`
|
|
463
454
|
}
|
|
464
455
|
|
|
@@ -838,26 +829,26 @@ ${fg}
|
|
|
838
829
|
switch (shape) {
|
|
839
830
|
case 'rect':
|
|
840
831
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}"
|
|
841
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
832
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
842
833
|
|
|
843
834
|
case 'rounded':
|
|
844
835
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="8" ry="8"
|
|
845
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
836
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
846
837
|
|
|
847
838
|
case 'circle': {
|
|
848
839
|
const r = Math.min(halfW, halfH)
|
|
849
840
|
return `<circle cx="${x}" cy="${y}" r="${r}"
|
|
850
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
841
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
851
842
|
}
|
|
852
843
|
|
|
853
844
|
case 'diamond':
|
|
854
845
|
return `<polygon points="${x},${y - halfH} ${x + halfW},${y} ${x},${y + halfH} ${x - halfW},${y}"
|
|
855
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
846
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
856
847
|
|
|
857
848
|
case 'hexagon': {
|
|
858
849
|
const hx = halfW * 0.866
|
|
859
850
|
return `<polygon points="${x - halfW},${y} ${x - hx},${y - halfH} ${x + hx},${y - halfH} ${x + halfW},${y} ${x + hx},${y + halfH} ${x - hx},${y + halfH}"
|
|
860
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
851
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
861
852
|
}
|
|
862
853
|
|
|
863
854
|
case 'cylinder': {
|
|
@@ -867,23 +858,23 @@ ${fg}
|
|
|
867
858
|
<rect x="${x - halfW}" y="${y - halfH + ellipseH}" width="${w}" height="${h - ellipseH * 2}" fill="${fill}" stroke="none" />
|
|
868
859
|
<line x1="${x - halfW}" y1="${y - halfH + ellipseH}" x2="${x - halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
|
|
869
860
|
<line x1="${x + halfW}" y1="${y - halfH + ellipseH}" x2="${x + halfW}" y2="${y + halfH - ellipseH}" stroke="${stroke}" stroke-width="${strokeWidth}" />
|
|
870
|
-
<ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
861
|
+
<ellipse cx="${x}" cy="${y - halfH + ellipseH}" rx="${halfW}" ry="${ellipseH}" fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />
|
|
871
862
|
</g>`
|
|
872
863
|
}
|
|
873
864
|
|
|
874
865
|
case 'stadium':
|
|
875
866
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="${halfH}" ry="${halfH}"
|
|
876
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
867
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
877
868
|
|
|
878
869
|
case 'trapezoid': {
|
|
879
870
|
const indent = w * 0.15
|
|
880
871
|
return `<polygon points="${x - halfW + indent},${y - halfH} ${x + halfW - indent},${y - halfH} ${x + halfW},${y + halfH} ${x - halfW},${y + halfH}"
|
|
881
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
872
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
882
873
|
}
|
|
883
874
|
|
|
884
875
|
default:
|
|
885
876
|
return `<rect x="${x - halfW}" y="${y - halfH}" width="${w}" height="${h}" rx="4" ry="4"
|
|
886
|
-
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr}
|
|
877
|
+
fill="${fill}" stroke="${stroke}" stroke-width="${strokeWidth}" ${dashAttr} />`
|
|
887
878
|
}
|
|
888
879
|
}
|
|
889
880
|
|
|
@@ -1348,7 +1339,8 @@ ${linePath}`
|
|
|
1348
1339
|
const offsets = this.calculateLineOffsets(lineCount, lineSpacing)
|
|
1349
1340
|
for (const offset of offsets) {
|
|
1350
1341
|
const offsetPoints = this.offsetPoints(points, offset)
|
|
1351
|
-
|
|
1342
|
+
// Pass offset to generatePath for radius adjustment at bends
|
|
1343
|
+
const path = this.generatePath(offsetPoints, 8, points, offset)
|
|
1352
1344
|
lines.push(`<path class="link" data-id="${id}" d="${path}"
|
|
1353
1345
|
fill="none" stroke="${stroke}" stroke-width="${strokeWidth}"
|
|
1354
1346
|
${dasharray ? `stroke-dasharray="${dasharray}"` : ''} pointer-events="none" />`)
|
|
@@ -1368,8 +1360,14 @@ ${lines.join('\n')}
|
|
|
1368
1360
|
|
|
1369
1361
|
/**
|
|
1370
1362
|
* Generate SVG path string from points with rounded corners
|
|
1363
|
+
* For parallel lines, adjusts corner radius based on offset and turn direction
|
|
1371
1364
|
*/
|
|
1372
|
-
private generatePath(
|
|
1365
|
+
private generatePath(
|
|
1366
|
+
points: { x: number; y: number }[],
|
|
1367
|
+
cornerRadius = 8,
|
|
1368
|
+
originalPoints?: { x: number; y: number }[],
|
|
1369
|
+
offset?: number,
|
|
1370
|
+
): string {
|
|
1373
1371
|
if (points.length < 2) return ''
|
|
1374
1372
|
if (points.length === 2) {
|
|
1375
1373
|
return `M ${points[0].x} ${points[0].y} L ${points[1].x} ${points[1].y}`
|
|
@@ -1386,9 +1384,30 @@ ${lines.join('\n')}
|
|
|
1386
1384
|
const distPrev = Math.hypot(curr.x - prev.x, curr.y - prev.y)
|
|
1387
1385
|
const distNext = Math.hypot(next.x - curr.x, next.y - curr.y)
|
|
1388
1386
|
|
|
1387
|
+
// Adjust corner radius for parallel lines based on turn direction
|
|
1388
|
+
let adjustedRadius = cornerRadius
|
|
1389
|
+
if (originalPoints && offset !== undefined && i < originalPoints.length - 1) {
|
|
1390
|
+
const origPrev = originalPoints[Math.min(i - 1, originalPoints.length - 1)]
|
|
1391
|
+
const origCurr = originalPoints[Math.min(i, originalPoints.length - 1)]
|
|
1392
|
+
const origNext = originalPoints[Math.min(i + 1, originalPoints.length - 1)]
|
|
1393
|
+
|
|
1394
|
+
// Calculate turn direction using cross product
|
|
1395
|
+
const v1 = { x: origCurr.x - origPrev.x, y: origCurr.y - origPrev.y }
|
|
1396
|
+
const v2 = { x: origNext.x - origCurr.x, y: origNext.y - origCurr.y }
|
|
1397
|
+
const cross = v1.x * v2.y - v1.y * v2.x
|
|
1398
|
+
|
|
1399
|
+
// cross > 0: left turn, cross < 0: right turn
|
|
1400
|
+
// For left turn: positive offset = outside (larger R), negative offset = inside (smaller R)
|
|
1401
|
+
// For right turn: positive offset = inside (smaller R), negative offset = outside (larger R)
|
|
1402
|
+
if (Math.abs(cross) > 0.01) {
|
|
1403
|
+
const turnSign = cross > 0 ? 1 : -1
|
|
1404
|
+
adjustedRadius = Math.max(1, cornerRadius - turnSign * offset)
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1389
1408
|
// Limit radius to half the shortest segment
|
|
1390
1409
|
const maxRadius = Math.min(distPrev, distNext) / 2
|
|
1391
|
-
const radius = Math.min(
|
|
1410
|
+
const radius = Math.min(adjustedRadius, maxRadius)
|
|
1392
1411
|
|
|
1393
1412
|
if (radius < 1) {
|
|
1394
1413
|
// Too small for rounding, just use straight line
|
|
@@ -1432,7 +1451,7 @@ ${lines.join('\n')}
|
|
|
1432
1451
|
|
|
1433
1452
|
/**
|
|
1434
1453
|
* Offset points perpendicular to line direction, handling each segment properly
|
|
1435
|
-
* For orthogonal paths,
|
|
1454
|
+
* For orthogonal paths, calculates intersection point at bends for clean corners
|
|
1436
1455
|
*/
|
|
1437
1456
|
private offsetPoints(
|
|
1438
1457
|
points: { x: number; y: number }[],
|
|
@@ -1456,18 +1475,28 @@ ${lines.join('\n')}
|
|
|
1456
1475
|
const perp = this.getPerpendicular(prev, p)
|
|
1457
1476
|
result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset })
|
|
1458
1477
|
} else {
|
|
1459
|
-
// Middle point (bend):
|
|
1478
|
+
// Middle point (bend): calculate intersection of offset lines
|
|
1460
1479
|
const prev = points[i - 1]
|
|
1461
|
-
const perp = this.getPerpendicular(prev, p)
|
|
1462
|
-
result.push({ x: p.x + perp.x * offset, y: p.y + perp.y * offset })
|
|
1463
|
-
|
|
1464
|
-
// Also add a point for the outgoing segment if direction changes
|
|
1465
1480
|
const next = points[i + 1]
|
|
1481
|
+
const perpPrev = this.getPerpendicular(prev, p)
|
|
1466
1482
|
const perpNext = this.getPerpendicular(p, next)
|
|
1467
1483
|
|
|
1468
1484
|
// Check if direction changed (bend point)
|
|
1469
|
-
|
|
1470
|
-
|
|
1485
|
+
const directionChanged =
|
|
1486
|
+
Math.abs(perpPrev.x - perpNext.x) > 0.01 || Math.abs(perpPrev.y - perpNext.y) > 0.01
|
|
1487
|
+
|
|
1488
|
+
if (directionChanged) {
|
|
1489
|
+
// Calculate intersection of the two offset lines
|
|
1490
|
+
const intersection = this.getOffsetIntersection(prev, p, next, offset)
|
|
1491
|
+
if (intersection) {
|
|
1492
|
+
result.push(intersection)
|
|
1493
|
+
} else {
|
|
1494
|
+
// Fallback: use simple offset
|
|
1495
|
+
result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset })
|
|
1496
|
+
}
|
|
1497
|
+
} else {
|
|
1498
|
+
// No bend, just offset the point
|
|
1499
|
+
result.push({ x: p.x + perpPrev.x * offset, y: p.y + perpPrev.y * offset })
|
|
1471
1500
|
}
|
|
1472
1501
|
}
|
|
1473
1502
|
}
|
|
@@ -1475,6 +1504,44 @@ ${lines.join('\n')}
|
|
|
1475
1504
|
return result
|
|
1476
1505
|
}
|
|
1477
1506
|
|
|
1507
|
+
/**
|
|
1508
|
+
* Calculate intersection point of two offset lines at a bend
|
|
1509
|
+
*/
|
|
1510
|
+
private getOffsetIntersection(
|
|
1511
|
+
prev: { x: number; y: number },
|
|
1512
|
+
curr: { x: number; y: number },
|
|
1513
|
+
next: { x: number; y: number },
|
|
1514
|
+
offset: number,
|
|
1515
|
+
): { x: number; y: number } | null {
|
|
1516
|
+
const perpPrev = this.getPerpendicular(prev, curr)
|
|
1517
|
+
const perpNext = this.getPerpendicular(curr, next)
|
|
1518
|
+
|
|
1519
|
+
// Offset start point on incoming segment
|
|
1520
|
+
const p1 = { x: prev.x + perpPrev.x * offset, y: prev.y + perpPrev.y * offset }
|
|
1521
|
+
// Offset start point on outgoing segment
|
|
1522
|
+
const p3 = { x: curr.x + perpNext.x * offset, y: curr.y + perpNext.y * offset }
|
|
1523
|
+
|
|
1524
|
+
// Direction vectors
|
|
1525
|
+
const d1 = { x: curr.x - prev.x, y: curr.y - prev.y }
|
|
1526
|
+
const d2 = { x: next.x - curr.x, y: next.y - curr.y }
|
|
1527
|
+
|
|
1528
|
+
// Calculate intersection using parametric form
|
|
1529
|
+
const cross = d1.x * d2.y - d1.y * d2.x
|
|
1530
|
+
if (Math.abs(cross) < 0.0001) {
|
|
1531
|
+
// Lines are parallel, no intersection
|
|
1532
|
+
return null
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
const dx = p3.x - p1.x
|
|
1536
|
+
const dy = p3.y - p1.y
|
|
1537
|
+
const t = (dx * d2.y - dy * d2.x) / cross
|
|
1538
|
+
|
|
1539
|
+
return {
|
|
1540
|
+
x: p1.x + t * d1.x,
|
|
1541
|
+
y: p1.y + t * d1.y,
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1478
1545
|
/**
|
|
1479
1546
|
* Get perpendicular unit vector for a line segment
|
|
1480
1547
|
*/
|