emf-converter 4.6.5 → 4.6.6
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/browser.js +110 -6
- package/dist/browser.mjs +110 -6
- package/dist/index.js +110 -6
- package/dist/index.mjs +110 -6
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -28728,7 +28728,105 @@ var HOBBY = [
|
|
|
28728
28728
|
[[8, -48], [-8, -48], [-24, -40], [-40, -24], [-48, -8], [-48, 8], [-40, 24], [-24, 40], [-8, 48], [8, 48], [24, 40], [40, 24], [48, 8], [48, -8], [40, -24], [24, -40]]
|
|
28729
28729
|
];
|
|
28730
28730
|
var HOBBY_LIMIT = 104;
|
|
28731
|
-
var
|
|
28731
|
+
var FLAT_SECTOR_BIAS = {
|
|
28732
|
+
7: [9, "cf..", "edededEdcDcdcd"],
|
|
28733
|
+
8: [9, "dFee", "ededededbdbdbd"],
|
|
28734
|
+
9: [9, "df..", "ddddddddbDbdbd"],
|
|
28735
|
+
10: [9, "de..", "dededeDebEbebE"],
|
|
28736
|
+
11: [9, "ce..", "eeeeeeEececece"],
|
|
28737
|
+
12: [13, "ce..", "eeeeeeeeeeeececEcecece"],
|
|
28738
|
+
13: [17, "ce..", "eeeeededdddddeDebebebdbdcdcdce"],
|
|
28739
|
+
14: [17, "df..", "ddedeeeededeeeedcDcebebecececd"],
|
|
28740
|
+
15: [17, "dF..", "ddedeeeeeeeedeDdbdbecececececd"],
|
|
28741
|
+
16: [17, "ce..", "eeeededededeeeeececebebebebece"],
|
|
28742
|
+
17: [17, "df..", "ddedededededdeddbdbebdbdbdbdcd"],
|
|
28743
|
+
18: [17, "de..", "deeededeededeeEdcDcecdcdbebece"],
|
|
28744
|
+
19: [17, "cf..", "ededeeeedddddeDebEbecdcdbebecd"],
|
|
28745
|
+
20: [17, "ce..", "eeeeddddeeeeddDdbdbdcecebdbdce"],
|
|
28746
|
+
21: [17, "dF..", "ddddededededddDdbdbdcdcdcdcdbd"],
|
|
28747
|
+
22: [17, "ce..", "eeeededeeeeedeDebebececebebece"],
|
|
28748
|
+
23: [17, "cf..", "edededededededEdcDcdcdcdcdcdcD"],
|
|
28749
|
+
24: [17, "dF..", "ddddddddddddddDdbdbdbdbdbdbdbd"],
|
|
28750
|
+
25: [17, "cE..", "eeeeededededeeEecEcecdcdcdcdce"],
|
|
28751
|
+
26: [17, "cf..", "ededdedeededdedebEbecdcdbebecd"],
|
|
28752
|
+
27: [17, "de..", "dedeededdedeededcDcdbebecdcdbe"],
|
|
28753
|
+
28: [17, "cf..", "ededddddeeeedeDebEbebebecdcdcd"],
|
|
28754
|
+
29: [17, "ce..", "eeeeeeeededededebebebebececece"],
|
|
28755
|
+
30: [17, "dF..", "dddddedeeeeeedEdcdcdcecebebebd"],
|
|
28756
|
+
31: [17, "de..", "dedeededededdeDebebecdcdcdcdbe"],
|
|
28757
|
+
32: [17, "cf..", "ededdededdddeeeecEcebdbdbebecd"],
|
|
28758
|
+
33: [17, "de..", "dedeeeeeededddDdbdbdcdcdcecebe"],
|
|
28759
|
+
34: [17, "de..", "dedeeeeeddddedEdcdcdbdbdcecebe"],
|
|
28760
|
+
35: [17, "cf..", "ededededdededeDebebebebecdcdcd"],
|
|
28761
|
+
36: [17, "deee", "eeeeeeeeddddddDdcdcdcdcDbebebe"],
|
|
28762
|
+
37: [17, "dF..", "dddddededededdDdbdbdcecececebd"],
|
|
28763
|
+
38: [17, "ce..", "eeeeddddddddeeEececebdbdbdbdce"],
|
|
28764
|
+
39: [17, "cF..", "ededddddddddededcdcdbdbDbdbdcd"],
|
|
28765
|
+
40: [17, "de..", "dededededdddddddbdbdbdbdbebebe"],
|
|
28766
|
+
41: [17, "ce..", "eeeeeeeeeeeeeeEececececececece"],
|
|
28767
|
+
42: [17, "cf..", "ededeeeedddddedebebebdbdcececd"],
|
|
28768
|
+
43: [17, "df..", "ddddeeeededeedEdcdcdbebececebd"],
|
|
28769
|
+
44: [17, "cF..", "ededdedeededdeDebebecdcdbebecd"],
|
|
28770
|
+
45: [17, "ce..", "eeeededededeeeeecEcebebebebece"],
|
|
28771
|
+
46: [17, "dF..", "ddddededddddedEdcDcdcdcdbdbdbd"],
|
|
28772
|
+
47: [17, "ce..", "dedededededededececececececece"],
|
|
28773
|
+
48: [25, "cf..", "ededeeeeeeeeededeeeeeeEecececececdcdcececececd"],
|
|
28774
|
+
49: [25, "cF..", "ededddddededeeeeededdeDebebecdcdcececdcdbdbdcd"],
|
|
28775
|
+
50: [25, "ce..", "eeeeddddededdededededeDebebebebebEbecdcdbdbdce"],
|
|
28776
|
+
51: [25, "ce..", "eeeeededddddeeeededeeeEececebebececebdbdcdcdce"],
|
|
28777
|
+
52: [25, "ce..", "eeeededededeededededeeEecececdcdcdcdbebebebece"],
|
|
28778
|
+
53: [25, "dF..", "ddedeeeedddddddddedeeeEdcdcebebebdbDbdbdcececd"],
|
|
28779
|
+
54: [25, "dF..", "ddedddddededededdddddEDdbdbebdbdcdcdcdcdbdbdcd"],
|
|
28780
|
+
55: [25, "dF..", "ddeddedeeeeeeeeedededeDdbdbebebebebebebebebecd"],
|
|
28781
|
+
56: [25, "dE..", "deeeeeeeededeeeededeeEedcdcebebecececdcdcecece"],
|
|
28782
|
+
57: [25, "de..", "deeedddddddddedeededeeEdcDcecDcdcececdcdbdbDce"],
|
|
28783
|
+
58: [25, "dF..", "ddedddddeeeedddddedeeeEdcdcebebebdbdcecebdbdcd"],
|
|
28784
|
+
59: [33, "cF..", "ededdedeededddddeeeeeeeedddddeDebebebdbdcecececebdbdcdcdbebecd"],
|
|
28785
|
+
60: [33, "cf..", "ededeeeeededededddddeeeeeeeedeDebebececececebdbdcdcdcdcdcececd"],
|
|
28786
|
+
61: [33, "ce..", "eeeeeeeeddddeeeeeeeeddddeeeeeeeececececebdbdcecececebdbdcecece"],
|
|
28787
|
+
62: [33, "ce..", "eeeeddddeeeeededededeeeeddddeeEecEcebdbdcececdcdcdcdcecebdbdce"],
|
|
28788
|
+
63: [33, "cf..", "ededededeeeededededeeeeeeeeeeeEececececececebebEbebecececdcdcd"],
|
|
28789
|
+
64: [33, "cF..", "ededeeeedddddedeeeeededeeeeedeDebebececebebececebebebdbdcececd"],
|
|
28790
|
+
65: [33, "df..", "ddedededededddddddddeeeeeeeedeDdbdbececececebdbdbdbdcdcdcdcdcd"],
|
|
28791
|
+
66: [33, "de..", "deeeededdedeeeeedddddededddddeDdbdbebdbdbebecdcdbebebebecdcdce"],
|
|
28792
|
+
67: [33, "de..", "deeeddddddddededdddddededdddeeEdcDcebdbdbebebdbdcdcdbdbdbdbdce"],
|
|
28793
|
+
68: [33, "dE..", "deeeeeeeeeeeeeeeddddeeeeeeeeeeEdcdcececececebdbdcecececececece"],
|
|
28794
|
+
69: [33, "df..", "ddedededdedeeeeeddddededededdeDdbdbecdcdcdcdbdbdcecebebecdcdcd"],
|
|
28795
|
+
70: [33, "dF..", "ddeddddddddddddddededededddddeDdbdbebdbdbebebebebdbdbdbdbdbDcd"],
|
|
28796
|
+
71: [33, "ce..", "eeeeddddeeeededeeeeededeededdeDebebecdcdbebececebebececebdbdce"],
|
|
28797
|
+
72: [33, "ce..", "eeeededededeededededddddddddeeEececebdbdbdbdcdcdcdcdbebebebece"],
|
|
28798
|
+
73: [33, "ce..", "eeeeededededddddededdedeeeeeeeEececececebebecdcdbdbdcdcDcdcdce"],
|
|
28799
|
+
74: [33, "cf..", "ededddddededededededdededddddeDebebebdbdbebecdcDcdcdcdcdbdbdcd"],
|
|
28800
|
+
75: [33, "cF..", "ededdededededdddddddeeeedddddeDebebebdbdcececdcdcdcdbebebebecd"],
|
|
28801
|
+
76: [33, "ce..", "eeeeeeeeeeeeeeeeeeeededeeeeedeDebebececebebecececececececececE"],
|
|
28802
|
+
77: [33, "ce..", "eeeeeeeedededddddededdddedededEdcDcdcdcdbdbdbebebdbdbebececece"],
|
|
28803
|
+
78: [33, "de..", "dedeededdedededeeeeeeeeededeedEdcdcdbebececececebebebebecdcdbe"],
|
|
28804
|
+
79: [33, "dF..", "ddddddddededdededdddeeeeedededEdcDcdcdcdcecebdbdbebecdcdbdbdbd"],
|
|
28805
|
+
80: [33, "dF..", "dddddededdddeeeeddddddddededddDdbdbdcdcdbdbdbdbDcecebdbdbebEbd"],
|
|
28806
|
+
81: [33, "de..", "dedeeeeeeeeededeededeeeedededdDdbdbdbebecececdcdbebececececebe"],
|
|
28807
|
+
82: [33, "de..", "dedeededdedeededdedededeedededEdcdcdcdcdbebebebecdcdbebecdcDbe"],
|
|
28808
|
+
83: [33, "de..", "dededededddddededdddeeeededeeeEececebebececebdbdbebebdbdbebebe"],
|
|
28809
|
+
84: [33, "cF..", "ededddddeeeeddddeeeeeeeeededeeEecececdcdcecebebecdcdcecebdbdcd"],
|
|
28810
|
+
85: [33, "cf..", "ededdddddededddddddddedeeeeedeDebebececebebebdbdbdbdbebebdbdcd"],
|
|
28811
|
+
86: [33, "ce..", "eeeeededddddeeeeeeeedededededeDebebebebebebebebebebebdbdcdcdce"],
|
|
28812
|
+
87: [33, "ce..", "eeeeddddeeeeddddddddeeeeddddeeeececebdbdcecebdbDbdbdcecebdbdce"],
|
|
28813
|
+
88: [33, "ce..", "eeeedededdddeeeeededededededeeeecececdcdcdcdcdcdcecebdbdbebece"],
|
|
28814
|
+
89: [33, "cF..", "ededeeeeddddddddededdedededeeeEecEcebebEbebecdcdbdbdbdbdcececd"],
|
|
28815
|
+
90: [33, "dF..", "ddddededeeeeededeeeedededededdDdbdbdbebebEbecececdcdcececdcdbd"],
|
|
28816
|
+
91: [33, "df..", "ddddeeeededededeededdddddededdDdbdbdbebebdbdcdcdbebebebececebd"],
|
|
28817
|
+
92: [33, "de..", "dedededeededdddddededededdddedEdcdcdbdbdbebebebebdbdcdcdbebebe"],
|
|
28818
|
+
93: [33, "de..", "dededddddddddedeededeeeeeeeeededcdcdcececececdcdbebebdbdbdbdbe"],
|
|
28819
|
+
94: [33, "dF..", "ddddeeeeddddeeeeddddeeeededeedEdcDcdbebececebdbDcecebdbdcecebd"],
|
|
28820
|
+
95: [33, "df..", "ddddddddededeeeedddddededdddddDdbdbDbdbdbebecdcdbebecdcdbdbdbd"],
|
|
28821
|
+
96: [33, "cf..", "ededeeeededeeeeedededdddeeeedeDebebececebdbdbebececebebecececd"],
|
|
28822
|
+
97: [33, "ce..", "eeeedededededededdddeeeedddddeDebebebdbdcEcebdbdbebebEbebebece"],
|
|
28823
|
+
98: [33, "ce..", "eeeeededededeeeeeeeededededeeeEececebebebebecececececdcdcdcdce"],
|
|
28824
|
+
99: [33, "cf..", "ededededddddddddddddededdedeeeEececebebecdcdbdbdbdbdbdbdcdcdcd"],
|
|
28825
|
+
100: [33, "cf..", "ededdedeeeeededededeeeeeededdeDebebecdcdcecebebebebececebebecd"]
|
|
28826
|
+
};
|
|
28827
|
+
function sectorBias(code) {
|
|
28828
|
+
return code >= 97 ? (code - 97) / 2 - 1.5 : (code - 65) / 2 - 1.5 - 1 / 64;
|
|
28829
|
+
}
|
|
28732
28830
|
var penCache = /* @__PURE__ */ new Map();
|
|
28733
28831
|
function penPolygon(width) {
|
|
28734
28832
|
const cached = penCache.get(width);
|
|
@@ -28807,13 +28905,19 @@ function perpendicularVectors(width, dx0, dy0) {
|
|
|
28807
28905
|
const [B, hB, hS] = hP >= hN ? [P, hP, hN] : [N, hN, hP];
|
|
28808
28906
|
const den = 2 * (bh - hB + (bh - hS));
|
|
28809
28907
|
const w = den === 0 ? 0 : (hB - hS) / den;
|
|
28810
|
-
const off = width % 16 === 0 && width >= HOBBY_LIMIT ? FLAT_VECTOR_OFFSET[width / 16] : void 0;
|
|
28811
|
-
const sgn = best < n / 2 ? 1 : -1;
|
|
28812
|
-
const ox = off ? sgn * off[0] : 0;
|
|
28813
|
-
const oy = off ? sgn * off[1] : 0;
|
|
28814
28908
|
const r = (v) => 8 * Math.floor((v + 4) / 8);
|
|
28815
28909
|
const x = D[0] + (B[0] - D[0]) * w, y = D[1] + (B[1] - D[1]) * w;
|
|
28816
|
-
|
|
28910
|
+
let cx = 0.5 * Math.sign(dy), cy = 0.5 * Math.sign(dx);
|
|
28911
|
+
const table = width % 16 === 0 ? FLAT_SECTOR_BIAS[width / 16] : void 0;
|
|
28912
|
+
if (table) {
|
|
28913
|
+
const key = best * 2 + (hP >= hN ? 0 : 1);
|
|
28914
|
+
const pair = key === 0 ? table[1].slice(0, 2) : key >= table[0] ? table[2].slice((key - table[0]) * 2, (key - table[0]) * 2 + 2) : "..";
|
|
28915
|
+
if (pair[0] !== ".") {
|
|
28916
|
+
cx = sectorBias(pair.charCodeAt(0));
|
|
28917
|
+
cy = sectorBias(pair.charCodeAt(1));
|
|
28918
|
+
}
|
|
28919
|
+
}
|
|
28920
|
+
const vx = r(x + cx), vy = r(y + cy);
|
|
28817
28921
|
return { v: flip ? [-vx, -vy] : [vx, vy], ray: flip ? [-x, -y] : [x, y] };
|
|
28818
28922
|
}
|
|
28819
28923
|
function squareExtension(width, dx, dy) {
|
package/dist/browser.mjs
CHANGED
|
@@ -28726,7 +28726,105 @@ var HOBBY = [
|
|
|
28726
28726
|
[[8, -48], [-8, -48], [-24, -40], [-40, -24], [-48, -8], [-48, 8], [-40, 24], [-24, 40], [-8, 48], [8, 48], [24, 40], [40, 24], [48, 8], [48, -8], [40, -24], [24, -40]]
|
|
28727
28727
|
];
|
|
28728
28728
|
var HOBBY_LIMIT = 104;
|
|
28729
|
-
var
|
|
28729
|
+
var FLAT_SECTOR_BIAS = {
|
|
28730
|
+
7: [9, "cf..", "edededEdcDcdcd"],
|
|
28731
|
+
8: [9, "dFee", "ededededbdbdbd"],
|
|
28732
|
+
9: [9, "df..", "ddddddddbDbdbd"],
|
|
28733
|
+
10: [9, "de..", "dededeDebEbebE"],
|
|
28734
|
+
11: [9, "ce..", "eeeeeeEececece"],
|
|
28735
|
+
12: [13, "ce..", "eeeeeeeeeeeececEcecece"],
|
|
28736
|
+
13: [17, "ce..", "eeeeededdddddeDebebebdbdcdcdce"],
|
|
28737
|
+
14: [17, "df..", "ddedeeeededeeeedcDcebebecececd"],
|
|
28738
|
+
15: [17, "dF..", "ddedeeeeeeeedeDdbdbecececececd"],
|
|
28739
|
+
16: [17, "ce..", "eeeededededeeeeececebebebebece"],
|
|
28740
|
+
17: [17, "df..", "ddedededededdeddbdbebdbdbdbdcd"],
|
|
28741
|
+
18: [17, "de..", "deeededeededeeEdcDcecdcdbebece"],
|
|
28742
|
+
19: [17, "cf..", "ededeeeedddddeDebEbecdcdbebecd"],
|
|
28743
|
+
20: [17, "ce..", "eeeeddddeeeeddDdbdbdcecebdbdce"],
|
|
28744
|
+
21: [17, "dF..", "ddddededededddDdbdbdcdcdcdcdbd"],
|
|
28745
|
+
22: [17, "ce..", "eeeededeeeeedeDebebececebebece"],
|
|
28746
|
+
23: [17, "cf..", "edededededededEdcDcdcdcdcdcdcD"],
|
|
28747
|
+
24: [17, "dF..", "ddddddddddddddDdbdbdbdbdbdbdbd"],
|
|
28748
|
+
25: [17, "cE..", "eeeeededededeeEecEcecdcdcdcdce"],
|
|
28749
|
+
26: [17, "cf..", "ededdedeededdedebEbecdcdbebecd"],
|
|
28750
|
+
27: [17, "de..", "dedeededdedeededcDcdbebecdcdbe"],
|
|
28751
|
+
28: [17, "cf..", "ededddddeeeedeDebEbebebecdcdcd"],
|
|
28752
|
+
29: [17, "ce..", "eeeeeeeededededebebebebececece"],
|
|
28753
|
+
30: [17, "dF..", "dddddedeeeeeedEdcdcdcecebebebd"],
|
|
28754
|
+
31: [17, "de..", "dedeededededdeDebebecdcdcdcdbe"],
|
|
28755
|
+
32: [17, "cf..", "ededdededdddeeeecEcebdbdbebecd"],
|
|
28756
|
+
33: [17, "de..", "dedeeeeeededddDdbdbdcdcdcecebe"],
|
|
28757
|
+
34: [17, "de..", "dedeeeeeddddedEdcdcdbdbdcecebe"],
|
|
28758
|
+
35: [17, "cf..", "ededededdededeDebebebebecdcdcd"],
|
|
28759
|
+
36: [17, "deee", "eeeeeeeeddddddDdcdcdcdcDbebebe"],
|
|
28760
|
+
37: [17, "dF..", "dddddededededdDdbdbdcecececebd"],
|
|
28761
|
+
38: [17, "ce..", "eeeeddddddddeeEececebdbdbdbdce"],
|
|
28762
|
+
39: [17, "cF..", "ededddddddddededcdcdbdbDbdbdcd"],
|
|
28763
|
+
40: [17, "de..", "dededededdddddddbdbdbdbdbebebe"],
|
|
28764
|
+
41: [17, "ce..", "eeeeeeeeeeeeeeEececececececece"],
|
|
28765
|
+
42: [17, "cf..", "ededeeeedddddedebebebdbdcececd"],
|
|
28766
|
+
43: [17, "df..", "ddddeeeededeedEdcdcdbebececebd"],
|
|
28767
|
+
44: [17, "cF..", "ededdedeededdeDebebecdcdbebecd"],
|
|
28768
|
+
45: [17, "ce..", "eeeededededeeeeecEcebebebebece"],
|
|
28769
|
+
46: [17, "dF..", "ddddededddddedEdcDcdcdcdbdbdbd"],
|
|
28770
|
+
47: [17, "ce..", "dedededededededececececececece"],
|
|
28771
|
+
48: [25, "cf..", "ededeeeeeeeeededeeeeeeEecececececdcdcececececd"],
|
|
28772
|
+
49: [25, "cF..", "ededddddededeeeeededdeDebebecdcdcececdcdbdbdcd"],
|
|
28773
|
+
50: [25, "ce..", "eeeeddddededdededededeDebebebebebEbecdcdbdbdce"],
|
|
28774
|
+
51: [25, "ce..", "eeeeededddddeeeededeeeEececebebececebdbdcdcdce"],
|
|
28775
|
+
52: [25, "ce..", "eeeededededeededededeeEecececdcdcdcdbebebebece"],
|
|
28776
|
+
53: [25, "dF..", "ddedeeeedddddddddedeeeEdcdcebebebdbDbdbdcececd"],
|
|
28777
|
+
54: [25, "dF..", "ddedddddededededdddddEDdbdbebdbdcdcdcdcdbdbdcd"],
|
|
28778
|
+
55: [25, "dF..", "ddeddedeeeeeeeeedededeDdbdbebebebebebebebebecd"],
|
|
28779
|
+
56: [25, "dE..", "deeeeeeeededeeeededeeEedcdcebebecececdcdcecece"],
|
|
28780
|
+
57: [25, "de..", "deeedddddddddedeededeeEdcDcecDcdcececdcdbdbDce"],
|
|
28781
|
+
58: [25, "dF..", "ddedddddeeeedddddedeeeEdcdcebebebdbdcecebdbdcd"],
|
|
28782
|
+
59: [33, "cF..", "ededdedeededddddeeeeeeeedddddeDebebebdbdcecececebdbdcdcdbebecd"],
|
|
28783
|
+
60: [33, "cf..", "ededeeeeededededddddeeeeeeeedeDebebececececebdbdcdcdcdcdcececd"],
|
|
28784
|
+
61: [33, "ce..", "eeeeeeeeddddeeeeeeeeddddeeeeeeeececececebdbdcecececebdbdcecece"],
|
|
28785
|
+
62: [33, "ce..", "eeeeddddeeeeededededeeeeddddeeEecEcebdbdcececdcdcdcdcecebdbdce"],
|
|
28786
|
+
63: [33, "cf..", "ededededeeeededededeeeeeeeeeeeEececececececebebEbebecececdcdcd"],
|
|
28787
|
+
64: [33, "cF..", "ededeeeedddddedeeeeededeeeeedeDebebececebebececebebebdbdcececd"],
|
|
28788
|
+
65: [33, "df..", "ddedededededddddddddeeeeeeeedeDdbdbececececebdbdbdbdcdcdcdcdcd"],
|
|
28789
|
+
66: [33, "de..", "deeeededdedeeeeedddddededddddeDdbdbebdbdbebecdcdbebebebecdcdce"],
|
|
28790
|
+
67: [33, "de..", "deeeddddddddededdddddededdddeeEdcDcebdbdbebebdbdcdcdbdbdbdbdce"],
|
|
28791
|
+
68: [33, "dE..", "deeeeeeeeeeeeeeeddddeeeeeeeeeeEdcdcececececebdbdcecececececece"],
|
|
28792
|
+
69: [33, "df..", "ddedededdedeeeeeddddededededdeDdbdbecdcdcdcdbdbdcecebebecdcdcd"],
|
|
28793
|
+
70: [33, "dF..", "ddeddddddddddddddededededddddeDdbdbebdbdbebebebebdbdbdbdbdbDcd"],
|
|
28794
|
+
71: [33, "ce..", "eeeeddddeeeededeeeeededeededdeDebebecdcdbebececebebececebdbdce"],
|
|
28795
|
+
72: [33, "ce..", "eeeededededeededededddddddddeeEececebdbdbdbdcdcdcdcdbebebebece"],
|
|
28796
|
+
73: [33, "ce..", "eeeeededededddddededdedeeeeeeeEececececebebecdcdbdbdcdcDcdcdce"],
|
|
28797
|
+
74: [33, "cf..", "ededddddededededededdededddddeDebebebdbdbebecdcDcdcdcdcdbdbdcd"],
|
|
28798
|
+
75: [33, "cF..", "ededdededededdddddddeeeedddddeDebebebdbdcececdcdcdcdbebebebecd"],
|
|
28799
|
+
76: [33, "ce..", "eeeeeeeeeeeeeeeeeeeededeeeeedeDebebececebebecececececececececE"],
|
|
28800
|
+
77: [33, "ce..", "eeeeeeeedededddddededdddedededEdcDcdcdcdbdbdbebebdbdbebececece"],
|
|
28801
|
+
78: [33, "de..", "dedeededdedededeeeeeeeeededeedEdcdcdbebececececebebebebecdcdbe"],
|
|
28802
|
+
79: [33, "dF..", "ddddddddededdededdddeeeeedededEdcDcdcdcdcecebdbdbebecdcdbdbdbd"],
|
|
28803
|
+
80: [33, "dF..", "dddddededdddeeeeddddddddededddDdbdbdcdcdbdbdbdbDcecebdbdbebEbd"],
|
|
28804
|
+
81: [33, "de..", "dedeeeeeeeeededeededeeeedededdDdbdbdbebecececdcdbebececececebe"],
|
|
28805
|
+
82: [33, "de..", "dedeededdedeededdedededeedededEdcdcdcdcdbebebebecdcdbebecdcDbe"],
|
|
28806
|
+
83: [33, "de..", "dededededddddededdddeeeededeeeEececebebececebdbdbebebdbdbebebe"],
|
|
28807
|
+
84: [33, "cF..", "ededddddeeeeddddeeeeeeeeededeeEecececdcdcecebebecdcdcecebdbdcd"],
|
|
28808
|
+
85: [33, "cf..", "ededdddddededddddddddedeeeeedeDebebececebebebdbdbdbdbebebdbdcd"],
|
|
28809
|
+
86: [33, "ce..", "eeeeededddddeeeeeeeedededededeDebebebebebebebebebebebdbdcdcdce"],
|
|
28810
|
+
87: [33, "ce..", "eeeeddddeeeeddddddddeeeeddddeeeececebdbdcecebdbDbdbdcecebdbdce"],
|
|
28811
|
+
88: [33, "ce..", "eeeedededdddeeeeededededededeeeecececdcdcdcdcdcdcecebdbdbebece"],
|
|
28812
|
+
89: [33, "cF..", "ededeeeeddddddddededdedededeeeEecEcebebEbebecdcdbdbdbdbdcececd"],
|
|
28813
|
+
90: [33, "dF..", "ddddededeeeeededeeeedededededdDdbdbdbebebEbecececdcdcececdcdbd"],
|
|
28814
|
+
91: [33, "df..", "ddddeeeededededeededdddddededdDdbdbdbebebdbdcdcdbebebebececebd"],
|
|
28815
|
+
92: [33, "de..", "dedededeededdddddededededdddedEdcdcdbdbdbebebebebdbdcdcdbebebe"],
|
|
28816
|
+
93: [33, "de..", "dededddddddddedeededeeeeeeeeededcdcdcececececdcdbebebdbdbdbdbe"],
|
|
28817
|
+
94: [33, "dF..", "ddddeeeeddddeeeeddddeeeededeedEdcDcdbebececebdbDcecebdbdcecebd"],
|
|
28818
|
+
95: [33, "df..", "ddddddddededeeeedddddededdddddDdbdbDbdbdbebecdcdbebecdcdbdbdbd"],
|
|
28819
|
+
96: [33, "cf..", "ededeeeededeeeeedededdddeeeedeDebebececebdbdbebececebebecececd"],
|
|
28820
|
+
97: [33, "ce..", "eeeedededededededdddeeeedddddeDebebebdbdcEcebdbdbebebEbebebece"],
|
|
28821
|
+
98: [33, "ce..", "eeeeededededeeeeeeeededededeeeEececebebebebecececececdcdcdcdce"],
|
|
28822
|
+
99: [33, "cf..", "ededededddddddddddddededdedeeeEececebebecdcdbdbdbdbdbdbdcdcdcd"],
|
|
28823
|
+
100: [33, "cf..", "ededdedeeeeededededeeeeeededdeDebebecdcdcecebebebebececebebecd"]
|
|
28824
|
+
};
|
|
28825
|
+
function sectorBias(code) {
|
|
28826
|
+
return code >= 97 ? (code - 97) / 2 - 1.5 : (code - 65) / 2 - 1.5 - 1 / 64;
|
|
28827
|
+
}
|
|
28730
28828
|
var penCache = /* @__PURE__ */ new Map();
|
|
28731
28829
|
function penPolygon(width) {
|
|
28732
28830
|
const cached = penCache.get(width);
|
|
@@ -28805,13 +28903,19 @@ function perpendicularVectors(width, dx0, dy0) {
|
|
|
28805
28903
|
const [B, hB, hS] = hP >= hN ? [P, hP, hN] : [N, hN, hP];
|
|
28806
28904
|
const den = 2 * (bh - hB + (bh - hS));
|
|
28807
28905
|
const w = den === 0 ? 0 : (hB - hS) / den;
|
|
28808
|
-
const off = width % 16 === 0 && width >= HOBBY_LIMIT ? FLAT_VECTOR_OFFSET[width / 16] : void 0;
|
|
28809
|
-
const sgn = best < n / 2 ? 1 : -1;
|
|
28810
|
-
const ox = off ? sgn * off[0] : 0;
|
|
28811
|
-
const oy = off ? sgn * off[1] : 0;
|
|
28812
28906
|
const r = (v) => 8 * Math.floor((v + 4) / 8);
|
|
28813
28907
|
const x = D[0] + (B[0] - D[0]) * w, y = D[1] + (B[1] - D[1]) * w;
|
|
28814
|
-
|
|
28908
|
+
let cx = 0.5 * Math.sign(dy), cy = 0.5 * Math.sign(dx);
|
|
28909
|
+
const table = width % 16 === 0 ? FLAT_SECTOR_BIAS[width / 16] : void 0;
|
|
28910
|
+
if (table) {
|
|
28911
|
+
const key = best * 2 + (hP >= hN ? 0 : 1);
|
|
28912
|
+
const pair = key === 0 ? table[1].slice(0, 2) : key >= table[0] ? table[2].slice((key - table[0]) * 2, (key - table[0]) * 2 + 2) : "..";
|
|
28913
|
+
if (pair[0] !== ".") {
|
|
28914
|
+
cx = sectorBias(pair.charCodeAt(0));
|
|
28915
|
+
cy = sectorBias(pair.charCodeAt(1));
|
|
28916
|
+
}
|
|
28917
|
+
}
|
|
28918
|
+
const vx = r(x + cx), vy = r(y + cy);
|
|
28815
28919
|
return { v: flip ? [-vx, -vy] : [vx, vy], ray: flip ? [-x, -y] : [x, y] };
|
|
28816
28920
|
}
|
|
28817
28921
|
function squareExtension(width, dx, dy) {
|
package/dist/index.js
CHANGED
|
@@ -28729,7 +28729,105 @@ var HOBBY = [
|
|
|
28729
28729
|
[[8, -48], [-8, -48], [-24, -40], [-40, -24], [-48, -8], [-48, 8], [-40, 24], [-24, 40], [-8, 48], [8, 48], [24, 40], [40, 24], [48, 8], [48, -8], [40, -24], [24, -40]]
|
|
28730
28730
|
];
|
|
28731
28731
|
var HOBBY_LIMIT = 104;
|
|
28732
|
-
var
|
|
28732
|
+
var FLAT_SECTOR_BIAS = {
|
|
28733
|
+
7: [9, "cf..", "edededEdcDcdcd"],
|
|
28734
|
+
8: [9, "dFee", "ededededbdbdbd"],
|
|
28735
|
+
9: [9, "df..", "ddddddddbDbdbd"],
|
|
28736
|
+
10: [9, "de..", "dededeDebEbebE"],
|
|
28737
|
+
11: [9, "ce..", "eeeeeeEececece"],
|
|
28738
|
+
12: [13, "ce..", "eeeeeeeeeeeececEcecece"],
|
|
28739
|
+
13: [17, "ce..", "eeeeededdddddeDebebebdbdcdcdce"],
|
|
28740
|
+
14: [17, "df..", "ddedeeeededeeeedcDcebebecececd"],
|
|
28741
|
+
15: [17, "dF..", "ddedeeeeeeeedeDdbdbecececececd"],
|
|
28742
|
+
16: [17, "ce..", "eeeededededeeeeececebebebebece"],
|
|
28743
|
+
17: [17, "df..", "ddedededededdeddbdbebdbdbdbdcd"],
|
|
28744
|
+
18: [17, "de..", "deeededeededeeEdcDcecdcdbebece"],
|
|
28745
|
+
19: [17, "cf..", "ededeeeedddddeDebEbecdcdbebecd"],
|
|
28746
|
+
20: [17, "ce..", "eeeeddddeeeeddDdbdbdcecebdbdce"],
|
|
28747
|
+
21: [17, "dF..", "ddddededededddDdbdbdcdcdcdcdbd"],
|
|
28748
|
+
22: [17, "ce..", "eeeededeeeeedeDebebececebebece"],
|
|
28749
|
+
23: [17, "cf..", "edededededededEdcDcdcdcdcdcdcD"],
|
|
28750
|
+
24: [17, "dF..", "ddddddddddddddDdbdbdbdbdbdbdbd"],
|
|
28751
|
+
25: [17, "cE..", "eeeeededededeeEecEcecdcdcdcdce"],
|
|
28752
|
+
26: [17, "cf..", "ededdedeededdedebEbecdcdbebecd"],
|
|
28753
|
+
27: [17, "de..", "dedeededdedeededcDcdbebecdcdbe"],
|
|
28754
|
+
28: [17, "cf..", "ededddddeeeedeDebEbebebecdcdcd"],
|
|
28755
|
+
29: [17, "ce..", "eeeeeeeededededebebebebececece"],
|
|
28756
|
+
30: [17, "dF..", "dddddedeeeeeedEdcdcdcecebebebd"],
|
|
28757
|
+
31: [17, "de..", "dedeededededdeDebebecdcdcdcdbe"],
|
|
28758
|
+
32: [17, "cf..", "ededdededdddeeeecEcebdbdbebecd"],
|
|
28759
|
+
33: [17, "de..", "dedeeeeeededddDdbdbdcdcdcecebe"],
|
|
28760
|
+
34: [17, "de..", "dedeeeeeddddedEdcdcdbdbdcecebe"],
|
|
28761
|
+
35: [17, "cf..", "ededededdededeDebebebebecdcdcd"],
|
|
28762
|
+
36: [17, "deee", "eeeeeeeeddddddDdcdcdcdcDbebebe"],
|
|
28763
|
+
37: [17, "dF..", "dddddededededdDdbdbdcecececebd"],
|
|
28764
|
+
38: [17, "ce..", "eeeeddddddddeeEececebdbdbdbdce"],
|
|
28765
|
+
39: [17, "cF..", "ededddddddddededcdcdbdbDbdbdcd"],
|
|
28766
|
+
40: [17, "de..", "dededededdddddddbdbdbdbdbebebe"],
|
|
28767
|
+
41: [17, "ce..", "eeeeeeeeeeeeeeEececececececece"],
|
|
28768
|
+
42: [17, "cf..", "ededeeeedddddedebebebdbdcececd"],
|
|
28769
|
+
43: [17, "df..", "ddddeeeededeedEdcdcdbebececebd"],
|
|
28770
|
+
44: [17, "cF..", "ededdedeededdeDebebecdcdbebecd"],
|
|
28771
|
+
45: [17, "ce..", "eeeededededeeeeecEcebebebebece"],
|
|
28772
|
+
46: [17, "dF..", "ddddededddddedEdcDcdcdcdbdbdbd"],
|
|
28773
|
+
47: [17, "ce..", "dedededededededececececececece"],
|
|
28774
|
+
48: [25, "cf..", "ededeeeeeeeeededeeeeeeEecececececdcdcececececd"],
|
|
28775
|
+
49: [25, "cF..", "ededddddededeeeeededdeDebebecdcdcececdcdbdbdcd"],
|
|
28776
|
+
50: [25, "ce..", "eeeeddddededdededededeDebebebebebEbecdcdbdbdce"],
|
|
28777
|
+
51: [25, "ce..", "eeeeededddddeeeededeeeEececebebececebdbdcdcdce"],
|
|
28778
|
+
52: [25, "ce..", "eeeededededeededededeeEecececdcdcdcdbebebebece"],
|
|
28779
|
+
53: [25, "dF..", "ddedeeeedddddddddedeeeEdcdcebebebdbDbdbdcececd"],
|
|
28780
|
+
54: [25, "dF..", "ddedddddededededdddddEDdbdbebdbdcdcdcdcdbdbdcd"],
|
|
28781
|
+
55: [25, "dF..", "ddeddedeeeeeeeeedededeDdbdbebebebebebebebebecd"],
|
|
28782
|
+
56: [25, "dE..", "deeeeeeeededeeeededeeEedcdcebebecececdcdcecece"],
|
|
28783
|
+
57: [25, "de..", "deeedddddddddedeededeeEdcDcecDcdcececdcdbdbDce"],
|
|
28784
|
+
58: [25, "dF..", "ddedddddeeeedddddedeeeEdcdcebebebdbdcecebdbdcd"],
|
|
28785
|
+
59: [33, "cF..", "ededdedeededddddeeeeeeeedddddeDebebebdbdcecececebdbdcdcdbebecd"],
|
|
28786
|
+
60: [33, "cf..", "ededeeeeededededddddeeeeeeeedeDebebececececebdbdcdcdcdcdcececd"],
|
|
28787
|
+
61: [33, "ce..", "eeeeeeeeddddeeeeeeeeddddeeeeeeeececececebdbdcecececebdbdcecece"],
|
|
28788
|
+
62: [33, "ce..", "eeeeddddeeeeededededeeeeddddeeEecEcebdbdcececdcdcdcdcecebdbdce"],
|
|
28789
|
+
63: [33, "cf..", "ededededeeeededededeeeeeeeeeeeEececececececebebEbebecececdcdcd"],
|
|
28790
|
+
64: [33, "cF..", "ededeeeedddddedeeeeededeeeeedeDebebececebebececebebebdbdcececd"],
|
|
28791
|
+
65: [33, "df..", "ddedededededddddddddeeeeeeeedeDdbdbececececebdbdbdbdcdcdcdcdcd"],
|
|
28792
|
+
66: [33, "de..", "deeeededdedeeeeedddddededddddeDdbdbebdbdbebecdcdbebebebecdcdce"],
|
|
28793
|
+
67: [33, "de..", "deeeddddddddededdddddededdddeeEdcDcebdbdbebebdbdcdcdbdbdbdbdce"],
|
|
28794
|
+
68: [33, "dE..", "deeeeeeeeeeeeeeeddddeeeeeeeeeeEdcdcececececebdbdcecececececece"],
|
|
28795
|
+
69: [33, "df..", "ddedededdedeeeeeddddededededdeDdbdbecdcdcdcdbdbdcecebebecdcdcd"],
|
|
28796
|
+
70: [33, "dF..", "ddeddddddddddddddededededddddeDdbdbebdbdbebebebebdbdbdbdbdbDcd"],
|
|
28797
|
+
71: [33, "ce..", "eeeeddddeeeededeeeeededeededdeDebebecdcdbebececebebececebdbdce"],
|
|
28798
|
+
72: [33, "ce..", "eeeededededeededededddddddddeeEececebdbdbdbdcdcdcdcdbebebebece"],
|
|
28799
|
+
73: [33, "ce..", "eeeeededededddddededdedeeeeeeeEececececebebecdcdbdbdcdcDcdcdce"],
|
|
28800
|
+
74: [33, "cf..", "ededddddededededededdededddddeDebebebdbdbebecdcDcdcdcdcdbdbdcd"],
|
|
28801
|
+
75: [33, "cF..", "ededdededededdddddddeeeedddddeDebebebdbdcececdcdcdcdbebebebecd"],
|
|
28802
|
+
76: [33, "ce..", "eeeeeeeeeeeeeeeeeeeededeeeeedeDebebececebebecececececececececE"],
|
|
28803
|
+
77: [33, "ce..", "eeeeeeeedededddddededdddedededEdcDcdcdcdbdbdbebebdbdbebececece"],
|
|
28804
|
+
78: [33, "de..", "dedeededdedededeeeeeeeeededeedEdcdcdbebececececebebebebecdcdbe"],
|
|
28805
|
+
79: [33, "dF..", "ddddddddededdededdddeeeeedededEdcDcdcdcdcecebdbdbebecdcdbdbdbd"],
|
|
28806
|
+
80: [33, "dF..", "dddddededdddeeeeddddddddededddDdbdbdcdcdbdbdbdbDcecebdbdbebEbd"],
|
|
28807
|
+
81: [33, "de..", "dedeeeeeeeeededeededeeeedededdDdbdbdbebecececdcdbebececececebe"],
|
|
28808
|
+
82: [33, "de..", "dedeededdedeededdedededeedededEdcdcdcdcdbebebebecdcdbebecdcDbe"],
|
|
28809
|
+
83: [33, "de..", "dededededddddededdddeeeededeeeEececebebececebdbdbebebdbdbebebe"],
|
|
28810
|
+
84: [33, "cF..", "ededddddeeeeddddeeeeeeeeededeeEecececdcdcecebebecdcdcecebdbdcd"],
|
|
28811
|
+
85: [33, "cf..", "ededdddddededddddddddedeeeeedeDebebececebebebdbdbdbdbebebdbdcd"],
|
|
28812
|
+
86: [33, "ce..", "eeeeededddddeeeeeeeedededededeDebebebebebebebebebebebdbdcdcdce"],
|
|
28813
|
+
87: [33, "ce..", "eeeeddddeeeeddddddddeeeeddddeeeececebdbdcecebdbDbdbdcecebdbdce"],
|
|
28814
|
+
88: [33, "ce..", "eeeedededdddeeeeededededededeeeecececdcdcdcdcdcdcecebdbdbebece"],
|
|
28815
|
+
89: [33, "cF..", "ededeeeeddddddddededdedededeeeEecEcebebEbebecdcdbdbdbdbdcececd"],
|
|
28816
|
+
90: [33, "dF..", "ddddededeeeeededeeeedededededdDdbdbdbebebEbecececdcdcececdcdbd"],
|
|
28817
|
+
91: [33, "df..", "ddddeeeededededeededdddddededdDdbdbdbebebdbdcdcdbebebebececebd"],
|
|
28818
|
+
92: [33, "de..", "dedededeededdddddededededdddedEdcdcdbdbdbebebebebdbdcdcdbebebe"],
|
|
28819
|
+
93: [33, "de..", "dededddddddddedeededeeeeeeeeededcdcdcececececdcdbebebdbdbdbdbe"],
|
|
28820
|
+
94: [33, "dF..", "ddddeeeeddddeeeeddddeeeededeedEdcDcdbebececebdbDcecebdbdcecebd"],
|
|
28821
|
+
95: [33, "df..", "ddddddddededeeeedddddededdddddDdbdbDbdbdbebecdcdbebecdcdbdbdbd"],
|
|
28822
|
+
96: [33, "cf..", "ededeeeededeeeeedededdddeeeedeDebebececebdbdbebececebebecececd"],
|
|
28823
|
+
97: [33, "ce..", "eeeedededededededdddeeeedddddeDebebebdbdcEcebdbdbebebEbebebece"],
|
|
28824
|
+
98: [33, "ce..", "eeeeededededeeeeeeeededededeeeEececebebebebecececececdcdcdcdce"],
|
|
28825
|
+
99: [33, "cf..", "ededededddddddddddddededdedeeeEececebebecdcdbdbdbdbdbdbdcdcdcd"],
|
|
28826
|
+
100: [33, "cf..", "ededdedeeeeededededeeeeeededdeDebebecdcdcecebebebebececebebecd"]
|
|
28827
|
+
};
|
|
28828
|
+
function sectorBias(code) {
|
|
28829
|
+
return code >= 97 ? (code - 97) / 2 - 1.5 : (code - 65) / 2 - 1.5 - 1 / 64;
|
|
28830
|
+
}
|
|
28733
28831
|
var penCache = /* @__PURE__ */ new Map();
|
|
28734
28832
|
function penPolygon(width) {
|
|
28735
28833
|
const cached = penCache.get(width);
|
|
@@ -28808,13 +28906,19 @@ function perpendicularVectors(width, dx0, dy0) {
|
|
|
28808
28906
|
const [B, hB, hS] = hP >= hN ? [P, hP, hN] : [N, hN, hP];
|
|
28809
28907
|
const den = 2 * (bh - hB + (bh - hS));
|
|
28810
28908
|
const w = den === 0 ? 0 : (hB - hS) / den;
|
|
28811
|
-
const off = width % 16 === 0 && width >= HOBBY_LIMIT ? FLAT_VECTOR_OFFSET[width / 16] : void 0;
|
|
28812
|
-
const sgn = best < n / 2 ? 1 : -1;
|
|
28813
|
-
const ox = off ? sgn * off[0] : 0;
|
|
28814
|
-
const oy = off ? sgn * off[1] : 0;
|
|
28815
28909
|
const r = (v) => 8 * Math.floor((v + 4) / 8);
|
|
28816
28910
|
const x = D[0] + (B[0] - D[0]) * w, y = D[1] + (B[1] - D[1]) * w;
|
|
28817
|
-
|
|
28911
|
+
let cx = 0.5 * Math.sign(dy), cy = 0.5 * Math.sign(dx);
|
|
28912
|
+
const table = width % 16 === 0 ? FLAT_SECTOR_BIAS[width / 16] : void 0;
|
|
28913
|
+
if (table) {
|
|
28914
|
+
const key = best * 2 + (hP >= hN ? 0 : 1);
|
|
28915
|
+
const pair = key === 0 ? table[1].slice(0, 2) : key >= table[0] ? table[2].slice((key - table[0]) * 2, (key - table[0]) * 2 + 2) : "..";
|
|
28916
|
+
if (pair[0] !== ".") {
|
|
28917
|
+
cx = sectorBias(pair.charCodeAt(0));
|
|
28918
|
+
cy = sectorBias(pair.charCodeAt(1));
|
|
28919
|
+
}
|
|
28920
|
+
}
|
|
28921
|
+
const vx = r(x + cx), vy = r(y + cy);
|
|
28818
28922
|
return { v: flip ? [-vx, -vy] : [vx, vy], ray: flip ? [-x, -y] : [x, y] };
|
|
28819
28923
|
}
|
|
28820
28924
|
function squareExtension(width, dx, dy) {
|
package/dist/index.mjs
CHANGED
|
@@ -28727,7 +28727,105 @@ var HOBBY = [
|
|
|
28727
28727
|
[[8, -48], [-8, -48], [-24, -40], [-40, -24], [-48, -8], [-48, 8], [-40, 24], [-24, 40], [-8, 48], [8, 48], [24, 40], [40, 24], [48, 8], [48, -8], [40, -24], [24, -40]]
|
|
28728
28728
|
];
|
|
28729
28729
|
var HOBBY_LIMIT = 104;
|
|
28730
|
-
var
|
|
28730
|
+
var FLAT_SECTOR_BIAS = {
|
|
28731
|
+
7: [9, "cf..", "edededEdcDcdcd"],
|
|
28732
|
+
8: [9, "dFee", "ededededbdbdbd"],
|
|
28733
|
+
9: [9, "df..", "ddddddddbDbdbd"],
|
|
28734
|
+
10: [9, "de..", "dededeDebEbebE"],
|
|
28735
|
+
11: [9, "ce..", "eeeeeeEececece"],
|
|
28736
|
+
12: [13, "ce..", "eeeeeeeeeeeececEcecece"],
|
|
28737
|
+
13: [17, "ce..", "eeeeededdddddeDebebebdbdcdcdce"],
|
|
28738
|
+
14: [17, "df..", "ddedeeeededeeeedcDcebebecececd"],
|
|
28739
|
+
15: [17, "dF..", "ddedeeeeeeeedeDdbdbecececececd"],
|
|
28740
|
+
16: [17, "ce..", "eeeededededeeeeececebebebebece"],
|
|
28741
|
+
17: [17, "df..", "ddedededededdeddbdbebdbdbdbdcd"],
|
|
28742
|
+
18: [17, "de..", "deeededeededeeEdcDcecdcdbebece"],
|
|
28743
|
+
19: [17, "cf..", "ededeeeedddddeDebEbecdcdbebecd"],
|
|
28744
|
+
20: [17, "ce..", "eeeeddddeeeeddDdbdbdcecebdbdce"],
|
|
28745
|
+
21: [17, "dF..", "ddddededededddDdbdbdcdcdcdcdbd"],
|
|
28746
|
+
22: [17, "ce..", "eeeededeeeeedeDebebececebebece"],
|
|
28747
|
+
23: [17, "cf..", "edededededededEdcDcdcdcdcdcdcD"],
|
|
28748
|
+
24: [17, "dF..", "ddddddddddddddDdbdbdbdbdbdbdbd"],
|
|
28749
|
+
25: [17, "cE..", "eeeeededededeeEecEcecdcdcdcdce"],
|
|
28750
|
+
26: [17, "cf..", "ededdedeededdedebEbecdcdbebecd"],
|
|
28751
|
+
27: [17, "de..", "dedeededdedeededcDcdbebecdcdbe"],
|
|
28752
|
+
28: [17, "cf..", "ededddddeeeedeDebEbebebecdcdcd"],
|
|
28753
|
+
29: [17, "ce..", "eeeeeeeededededebebebebececece"],
|
|
28754
|
+
30: [17, "dF..", "dddddedeeeeeedEdcdcdcecebebebd"],
|
|
28755
|
+
31: [17, "de..", "dedeededededdeDebebecdcdcdcdbe"],
|
|
28756
|
+
32: [17, "cf..", "ededdededdddeeeecEcebdbdbebecd"],
|
|
28757
|
+
33: [17, "de..", "dedeeeeeededddDdbdbdcdcdcecebe"],
|
|
28758
|
+
34: [17, "de..", "dedeeeeeddddedEdcdcdbdbdcecebe"],
|
|
28759
|
+
35: [17, "cf..", "ededededdededeDebebebebecdcdcd"],
|
|
28760
|
+
36: [17, "deee", "eeeeeeeeddddddDdcdcdcdcDbebebe"],
|
|
28761
|
+
37: [17, "dF..", "dddddededededdDdbdbdcecececebd"],
|
|
28762
|
+
38: [17, "ce..", "eeeeddddddddeeEececebdbdbdbdce"],
|
|
28763
|
+
39: [17, "cF..", "ededddddddddededcdcdbdbDbdbdcd"],
|
|
28764
|
+
40: [17, "de..", "dededededdddddddbdbdbdbdbebebe"],
|
|
28765
|
+
41: [17, "ce..", "eeeeeeeeeeeeeeEececececececece"],
|
|
28766
|
+
42: [17, "cf..", "ededeeeedddddedebebebdbdcececd"],
|
|
28767
|
+
43: [17, "df..", "ddddeeeededeedEdcdcdbebececebd"],
|
|
28768
|
+
44: [17, "cF..", "ededdedeededdeDebebecdcdbebecd"],
|
|
28769
|
+
45: [17, "ce..", "eeeededededeeeeecEcebebebebece"],
|
|
28770
|
+
46: [17, "dF..", "ddddededddddedEdcDcdcdcdbdbdbd"],
|
|
28771
|
+
47: [17, "ce..", "dedededededededececececececece"],
|
|
28772
|
+
48: [25, "cf..", "ededeeeeeeeeededeeeeeeEecececececdcdcececececd"],
|
|
28773
|
+
49: [25, "cF..", "ededddddededeeeeededdeDebebecdcdcececdcdbdbdcd"],
|
|
28774
|
+
50: [25, "ce..", "eeeeddddededdededededeDebebebebebEbecdcdbdbdce"],
|
|
28775
|
+
51: [25, "ce..", "eeeeededddddeeeededeeeEececebebececebdbdcdcdce"],
|
|
28776
|
+
52: [25, "ce..", "eeeededededeededededeeEecececdcdcdcdbebebebece"],
|
|
28777
|
+
53: [25, "dF..", "ddedeeeedddddddddedeeeEdcdcebebebdbDbdbdcececd"],
|
|
28778
|
+
54: [25, "dF..", "ddedddddededededdddddEDdbdbebdbdcdcdcdcdbdbdcd"],
|
|
28779
|
+
55: [25, "dF..", "ddeddedeeeeeeeeedededeDdbdbebebebebebebebebecd"],
|
|
28780
|
+
56: [25, "dE..", "deeeeeeeededeeeededeeEedcdcebebecececdcdcecece"],
|
|
28781
|
+
57: [25, "de..", "deeedddddddddedeededeeEdcDcecDcdcececdcdbdbDce"],
|
|
28782
|
+
58: [25, "dF..", "ddedddddeeeedddddedeeeEdcdcebebebdbdcecebdbdcd"],
|
|
28783
|
+
59: [33, "cF..", "ededdedeededddddeeeeeeeedddddeDebebebdbdcecececebdbdcdcdbebecd"],
|
|
28784
|
+
60: [33, "cf..", "ededeeeeededededddddeeeeeeeedeDebebececececebdbdcdcdcdcdcececd"],
|
|
28785
|
+
61: [33, "ce..", "eeeeeeeeddddeeeeeeeeddddeeeeeeeececececebdbdcecececebdbdcecece"],
|
|
28786
|
+
62: [33, "ce..", "eeeeddddeeeeededededeeeeddddeeEecEcebdbdcececdcdcdcdcecebdbdce"],
|
|
28787
|
+
63: [33, "cf..", "ededededeeeededededeeeeeeeeeeeEececececececebebEbebecececdcdcd"],
|
|
28788
|
+
64: [33, "cF..", "ededeeeedddddedeeeeededeeeeedeDebebececebebececebebebdbdcececd"],
|
|
28789
|
+
65: [33, "df..", "ddedededededddddddddeeeeeeeedeDdbdbececececebdbdbdbdcdcdcdcdcd"],
|
|
28790
|
+
66: [33, "de..", "deeeededdedeeeeedddddededddddeDdbdbebdbdbebecdcdbebebebecdcdce"],
|
|
28791
|
+
67: [33, "de..", "deeeddddddddededdddddededdddeeEdcDcebdbdbebebdbdcdcdbdbdbdbdce"],
|
|
28792
|
+
68: [33, "dE..", "deeeeeeeeeeeeeeeddddeeeeeeeeeeEdcdcececececebdbdcecececececece"],
|
|
28793
|
+
69: [33, "df..", "ddedededdedeeeeeddddededededdeDdbdbecdcdcdcdbdbdcecebebecdcdcd"],
|
|
28794
|
+
70: [33, "dF..", "ddeddddddddddddddededededddddeDdbdbebdbdbebebebebdbdbdbdbdbDcd"],
|
|
28795
|
+
71: [33, "ce..", "eeeeddddeeeededeeeeededeededdeDebebecdcdbebececebebececebdbdce"],
|
|
28796
|
+
72: [33, "ce..", "eeeededededeededededddddddddeeEececebdbdbdbdcdcdcdcdbebebebece"],
|
|
28797
|
+
73: [33, "ce..", "eeeeededededddddededdedeeeeeeeEececececebebecdcdbdbdcdcDcdcdce"],
|
|
28798
|
+
74: [33, "cf..", "ededddddededededededdededddddeDebebebdbdbebecdcDcdcdcdcdbdbdcd"],
|
|
28799
|
+
75: [33, "cF..", "ededdededededdddddddeeeedddddeDebebebdbdcececdcdcdcdbebebebecd"],
|
|
28800
|
+
76: [33, "ce..", "eeeeeeeeeeeeeeeeeeeededeeeeedeDebebececebebecececececececececE"],
|
|
28801
|
+
77: [33, "ce..", "eeeeeeeedededddddededdddedededEdcDcdcdcdbdbdbebebdbdbebececece"],
|
|
28802
|
+
78: [33, "de..", "dedeededdedededeeeeeeeeededeedEdcdcdbebececececebebebebecdcdbe"],
|
|
28803
|
+
79: [33, "dF..", "ddddddddededdededdddeeeeedededEdcDcdcdcdcecebdbdbebecdcdbdbdbd"],
|
|
28804
|
+
80: [33, "dF..", "dddddededdddeeeeddddddddededddDdbdbdcdcdbdbdbdbDcecebdbdbebEbd"],
|
|
28805
|
+
81: [33, "de..", "dedeeeeeeeeededeededeeeedededdDdbdbdbebecececdcdbebececececebe"],
|
|
28806
|
+
82: [33, "de..", "dedeededdedeededdedededeedededEdcdcdcdcdbebebebecdcdbebecdcDbe"],
|
|
28807
|
+
83: [33, "de..", "dededededddddededdddeeeededeeeEececebebececebdbdbebebdbdbebebe"],
|
|
28808
|
+
84: [33, "cF..", "ededddddeeeeddddeeeeeeeeededeeEecececdcdcecebebecdcdcecebdbdcd"],
|
|
28809
|
+
85: [33, "cf..", "ededdddddededddddddddedeeeeedeDebebececebebebdbdbdbdbebebdbdcd"],
|
|
28810
|
+
86: [33, "ce..", "eeeeededddddeeeeeeeedededededeDebebebebebebebebebebebdbdcdcdce"],
|
|
28811
|
+
87: [33, "ce..", "eeeeddddeeeeddddddddeeeeddddeeeececebdbdcecebdbDbdbdcecebdbdce"],
|
|
28812
|
+
88: [33, "ce..", "eeeedededdddeeeeededededededeeeecececdcdcdcdcdcdcecebdbdbebece"],
|
|
28813
|
+
89: [33, "cF..", "ededeeeeddddddddededdedededeeeEecEcebebEbebecdcdbdbdbdbdcececd"],
|
|
28814
|
+
90: [33, "dF..", "ddddededeeeeededeeeedededededdDdbdbdbebebEbecececdcdcececdcdbd"],
|
|
28815
|
+
91: [33, "df..", "ddddeeeededededeededdddddededdDdbdbdbebebdbdcdcdbebebebececebd"],
|
|
28816
|
+
92: [33, "de..", "dedededeededdddddededededdddedEdcdcdbdbdbebebebebdbdcdcdbebebe"],
|
|
28817
|
+
93: [33, "de..", "dededddddddddedeededeeeeeeeeededcdcdcececececdcdbebebdbdbdbdbe"],
|
|
28818
|
+
94: [33, "dF..", "ddddeeeeddddeeeeddddeeeededeedEdcDcdbebececebdbDcecebdbdcecebd"],
|
|
28819
|
+
95: [33, "df..", "ddddddddededeeeedddddededdddddDdbdbDbdbdbebecdcdbebecdcdbdbdbd"],
|
|
28820
|
+
96: [33, "cf..", "ededeeeededeeeeedededdddeeeedeDebebececebdbdbebececebebecececd"],
|
|
28821
|
+
97: [33, "ce..", "eeeedededededededdddeeeedddddeDebebebdbdcEcebdbdbebebEbebebece"],
|
|
28822
|
+
98: [33, "ce..", "eeeeededededeeeeeeeededededeeeEececebebebebecececececdcdcdcdce"],
|
|
28823
|
+
99: [33, "cf..", "ededededddddddddddddededdedeeeEececebebecdcdbdbdbdbdbdbdcdcdcd"],
|
|
28824
|
+
100: [33, "cf..", "ededdedeeeeededededeeeeeededdeDebebecdcdcecebebebebececebebecd"]
|
|
28825
|
+
};
|
|
28826
|
+
function sectorBias(code) {
|
|
28827
|
+
return code >= 97 ? (code - 97) / 2 - 1.5 : (code - 65) / 2 - 1.5 - 1 / 64;
|
|
28828
|
+
}
|
|
28731
28829
|
var penCache = /* @__PURE__ */ new Map();
|
|
28732
28830
|
function penPolygon(width) {
|
|
28733
28831
|
const cached = penCache.get(width);
|
|
@@ -28806,13 +28904,19 @@ function perpendicularVectors(width, dx0, dy0) {
|
|
|
28806
28904
|
const [B, hB, hS] = hP >= hN ? [P, hP, hN] : [N, hN, hP];
|
|
28807
28905
|
const den = 2 * (bh - hB + (bh - hS));
|
|
28808
28906
|
const w = den === 0 ? 0 : (hB - hS) / den;
|
|
28809
|
-
const off = width % 16 === 0 && width >= HOBBY_LIMIT ? FLAT_VECTOR_OFFSET[width / 16] : void 0;
|
|
28810
|
-
const sgn = best < n / 2 ? 1 : -1;
|
|
28811
|
-
const ox = off ? sgn * off[0] : 0;
|
|
28812
|
-
const oy = off ? sgn * off[1] : 0;
|
|
28813
28907
|
const r = (v) => 8 * Math.floor((v + 4) / 8);
|
|
28814
28908
|
const x = D[0] + (B[0] - D[0]) * w, y = D[1] + (B[1] - D[1]) * w;
|
|
28815
|
-
|
|
28909
|
+
let cx = 0.5 * Math.sign(dy), cy = 0.5 * Math.sign(dx);
|
|
28910
|
+
const table = width % 16 === 0 ? FLAT_SECTOR_BIAS[width / 16] : void 0;
|
|
28911
|
+
if (table) {
|
|
28912
|
+
const key = best * 2 + (hP >= hN ? 0 : 1);
|
|
28913
|
+
const pair = key === 0 ? table[1].slice(0, 2) : key >= table[0] ? table[2].slice((key - table[0]) * 2, (key - table[0]) * 2 + 2) : "..";
|
|
28914
|
+
if (pair[0] !== ".") {
|
|
28915
|
+
cx = sectorBias(pair.charCodeAt(0));
|
|
28916
|
+
cy = sectorBias(pair.charCodeAt(1));
|
|
28917
|
+
}
|
|
28918
|
+
}
|
|
28919
|
+
const vx = r(x + cx), vy = r(y + cy);
|
|
28816
28920
|
return { v: flip ? [-vx, -vy] : [vx, vy], ray: flip ? [-x, -y] : [x, y] };
|
|
28817
28921
|
}
|
|
28818
28922
|
function squareExtension(width, dx, dy) {
|