flo-mat 4.1.3 → 4.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/__tests__/find-2-prong/get-medial/dd-get-medial-point-coeffs-same-curve.spec.ts +1 -1
  2. package/__tests__/specific-cases/specific-cases.spec.ts +1 -14
  3. package/__tests__/specific-cases/test-svgs/achispado.svg +37 -24
  4. package/browser/index.js +404 -195
  5. package/browser/index.min.js +1 -1
  6. package/node/cp-node/fs/insert-cp-node.d.ts +12 -1
  7. package/node/cp-node/fs/insert-cp-node.js +21 -6
  8. package/node/cp-node/fs/insert-cp-node.js.map +1 -1
  9. package/node/cp-node/fs/is-order-correct.d.ts +9 -1
  10. package/node/cp-node/fs/is-order-correct.js +51 -10
  11. package/node/cp-node/fs/is-order-correct.js.map +1 -1
  12. package/node/cp-node/fs/remove-cp-node.js +1 -1
  13. package/node/cp-node/fs/remove-cp-node.js.map +1 -1
  14. package/node/debug/functions/check-ordering.d.ts +4 -0
  15. package/node/debug/functions/check-ordering.js +43 -0
  16. package/node/debug/functions/check-ordering.js.map +1 -0
  17. package/node/find-2-prong/add-2-prong.js +4 -2
  18. package/node/find-2-prong/add-2-prong.js.map +1 -1
  19. package/node/find-2-prong/find-and-add-2-prongs.js +1 -1
  20. package/node/find-2-prong/find-and-add-2-prongs.js.map +1 -1
  21. package/node/find-2-prong/get-initial-bezier-pieces.js +2 -2
  22. package/node/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  23. package/node/find-3-prong/find-3-prong-for-delta3s.d.ts +1 -1
  24. package/node/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
  25. package/node/find-3-prong/find-3-prong.d.ts +1 -1
  26. package/node/find-3-prong/find-3-prong.js.map +1 -1
  27. package/node/find-3-prong/find-and-add-3-prong.js +1 -1
  28. package/node/find-3-prong/find-and-add-3-prong.js.map +1 -1
  29. package/node/find-3-prong/find-and-add-3-prongs-on-loop.d.ts +1 -1
  30. package/node/find-3-prong/find-and-add-3-prongs-on-loop.js +6 -2
  31. package/node/find-3-prong/find-and-add-3-prongs-on-loop.js.map +1 -1
  32. package/node/find-3-prong/three-prong-info.d.ts +1 -1
  33. package/node/find-mat/create-initial-cp-tree.js +2 -2
  34. package/node/find-mat/create-initial-cp-tree.js.map +1 -1
  35. package/node/find-mat/find-mat.js +2 -2
  36. package/node/find-mat/find-mat.js.map +1 -1
  37. package/node/find-mat/get-for-1-prongs-on-loop.js +3 -1
  38. package/node/find-mat/get-for-1-prongs-on-loop.js.map +1 -1
  39. package/node/mat/add-to-cp-tree.d.ts +4 -1
  40. package/node/mat/add-to-cp-tree.js +11 -4
  41. package/node/mat/add-to-cp-tree.js.map +1 -1
  42. package/node/mat/get-boundary-piece-beziers.d.ts +2 -2
  43. package/node/mat/get-boundary-piece-beziers.js +1 -1
  44. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  45. package/node/mat/get-closeby-cp-if-exist.js +2 -2
  46. package/node/mat/get-closeby-cp-if-exist.js.map +1 -1
  47. package/node/mat/{get-cp-node-to-left-or-same.d.ts → get-cp-node-neighbors.d.ts} +2 -2
  48. package/node/mat/get-cp-node-neighbors.js +31 -0
  49. package/node/mat/get-cp-node-neighbors.js.map +1 -0
  50. package/package.json +8 -8
  51. package/src/cp-node/fs/insert-cp-node.ts +22 -7
  52. package/src/cp-node/fs/is-order-correct copy.ts +60 -0
  53. package/src/cp-node/fs/is-order-correct.ts +61 -13
  54. package/src/cp-node/fs/remove-cp-node.ts +1 -1
  55. package/src/debug/functions/check-ordering.ts +44 -61
  56. package/src/find-2-prong/add-2-prong.ts +3 -1
  57. package/src/find-2-prong/find-and-add-2-prongs.ts +1 -1
  58. package/src/find-2-prong/get-initial-bezier-pieces.ts +2 -2
  59. package/src/find-3-prong/find-3-prong-for-delta3s.ts +14 -6
  60. package/src/find-3-prong/find-3-prong.ts +1 -1
  61. package/src/find-3-prong/find-and-add-3-prong.ts +1 -4
  62. package/src/find-3-prong/find-and-add-3-prongs-on-loop.ts +6 -3
  63. package/src/find-3-prong/three-prong-info.ts +1 -1
  64. package/src/find-mat/create-initial-cp-tree.ts +2 -2
  65. package/src/find-mat/find-mat.ts +3 -2
  66. package/src/find-mat/get-for-1-prongs-on-loop.ts +3 -1
  67. package/src/mat/add-to-cp-tree copy.ts +71 -0
  68. package/src/mat/add-to-cp-tree.ts +12 -4
  69. package/src/mat/get-boundary-piece-beziers.ts +2 -2
  70. package/src/mat/get-closeby-cp-if-exist.ts +2 -2
  71. package/src/mat/{get-cp-node-to-left-or-same.ts → get-cp-node-neighbors.ts} +12 -10
  72. package/node/mat/get-cp-node-to-left-or-same.js +0 -30
  73. package/node/mat/get-cp-node-to-left-or-same.js.map +0 -1
@@ -48,7 +48,7 @@ function randomPoint(seed: number): number[] {
48
48
  }
49
49
 
50
50
 
51
- test('dd same-curve coefficients match flo-bezier3 double coefficients', function() {
51
+ test.skip('dd same-curve coefficients match flo-bezier3 double coefficients', function() {
52
52
  const epsMain = [2**16];
53
53
  const epsD = [2**8];
54
54
  const epsH = [2**13];
@@ -20,6 +20,7 @@ type TestCase = {
20
20
 
21
21
 
22
22
  const testCaseSvgs = [
23
+ "Q_V",
23
24
  ".notdef", "woodland", "exclam", "testD", "testL", "testO",
24
25
  "testComplex", "ampersand", "testComplexish", "quotesingle", "parenleft", "parenright",
25
26
  "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two",
@@ -33,28 +34,18 @@ const testCaseSvgs = [
33
34
  "Acircumflex", "Atilde", "Adieresis", "Aring", "AE", "Ccedilla", "Eth",
34
35
 
35
36
  "3",
36
- // "AA", // boolean
37
- // "aaa", // boolean
38
37
  "ae", "exclammm", "MM", "Mt", "Mt2", "Mt3", "Mt4", "Mt5",
39
38
  "Mth", "notdef", "onehalf", "yen", "ant", "arab",
40
- // "BBB",
41
- // "bb",
42
39
  "bump_tube1",
43
- // "bump_tube2",
44
- // "china",
45
40
  "china1", "circle_in_circle", "circle_in_square", "concave_poly",
46
41
  "EEE", "fff", "gecko", "hart",
47
- // "hat",
48
42
  "A-2", "B-2",
49
43
  "CCC", "DDD", "E-2", "holepole", "holy_poly", "intersecting", "intersecting1",
50
- // "intersecting2",
51
44
  "koldat", "koldat14", "koldat15", "koldat16", "koldat17", "koldat18",
52
45
  "koldat19", "koldat2", "koldat20", "koldat21", "koldat22", "koldat23", "koldat24", "koldat25",
53
46
  "koldat26", "koldat3", "koldat4",
54
- // "koldat51", // just reconstruct that's a bit off
55
47
  "koldat52", "koldat53", "koldat54",
56
48
  "koldat55", "koldat56", "koldat57", "koldat58", "koldat59",
57
- // "koldat6",
58
49
  "koldat60", "koldat61",
59
50
  "koldat62", "koldat63", "koldat64", "koldat7", "Lamda",
60
51
  "lb",
@@ -62,14 +53,10 @@ const testCaseSvgs = [
62
53
  "new1",
63
54
  "new2", "new3", "noobd3v1", "noobd3v2", "OO", "PP", "p1", "p2",
64
55
  "p3", "p4", "p5", "play1", "play2",
65
- // "play3",
66
56
  "l1", "l2", "poly", "poly-04",
67
57
  "poly-11", "poly-12", "poly-121",
68
- // "quad_blob",
69
58
  "ra", "SSS", "simple",
70
- // "so copy",
71
59
  "so", "square", "square_in_circle", "square_in_square",
72
- // "TTT",
73
60
  "T2",
74
61
  "geck1", "t4", "test1", "test2", "test3", "test4", "tt", "two_hole"
75
62
  ]
@@ -1,35 +1,48 @@
1
1
  <?xml version="1.0" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
3
  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
4
- <metadata>
5
- Created by FontForge 20220308 at Fri Feb 06 12:08:17 2009
6
- By vongillernj
7
- Copyright (c) 2003 - 2008 Linotype GmbH, www.linotype.com. All rights reserved. This font software may not be reproduced, modified, disclosed or transferred without the express written approval of Linotype GmbH. Achispado is a trademark of Linotype GmbH and may be registered in certain jurisdictions. This typeface is original artwork of Richard Yeend. The design may be protected in certain jurisdictions.
8
- </metadata>
9
4
  <defs>
10
5
  <font id="AchispadoLTStd" horiz-adv-x="445" >
11
- <font-face
12
- font-family="Achispado LT Std"
13
- font-weight="400"
14
- font-stretch="normal"
15
- units-per-em="1000"
16
- panose-1="4 11 5 5 6 9 2 2 8 2"
17
- ascent="800"
18
- descent="-200"
19
- x-height="408"
20
- cap-height="574"
21
- bbox="-348 -490 1017 784"
22
- underline-thickness="15"
23
- underline-position="-100"
24
- stemh="30"
25
- stemv="23"
26
- unicode-range="U+000D-FB02"
27
- />
28
- <missing-glyph horiz-adv-x="500"
29
- d="M15 609v-593h469v593h-469zM500 0h-500v625h500v-625z" />
6
+
30
7
  <glyph glyph-name=".notdef" horiz-adv-x="500"
31
8
  d="M15 609v-593h469v593h-469zM500 0h-500v625h500v-625z" />
32
9
 
10
+ <glyph glyph-name="Q_V" unicode="&#xe015;" horiz-adv-x="750"
11
+ d="
12
+ M 1154.0678381635485 290.68533730950645
13
+ C 1146.6755333181352 279.4891848867998 1130.6851522613686 277.18533730950645 1120.3550252424463 285.0776421549197
14
+ L 606.3486742963368 675.3627574066606
15
+ L 662.6961524227066 221.76606241341202
16
+ C 662.8660254037844 211.47183377935207 658.0717967697245 201.77568135664544 650.2775681356645 197.27568135664544
17
+ C 640.7512886940357 191.77568135664544 629.9570600599758 192.47183377935207 621.1269330410536 197.76606241341202
18
+ L 257.340436571208 473.86275740666065
19
+ L 338.3340856250983 -166.42235784508034
20
+ C 339.13793320239165 -179.8146626904936 330.87960295319397 -191.51081511320024 315.75524730021186 -193.3146626904936
21
+ C 302.8629424547986 -194.98453567157145 290.16679003209197 -184.99415461480487 289.3629424547986 -171.6018497693916
22
+ L 201.92185228416585 523.8505610753558
23
+ C 200.8859538993036 533.6447897094157 205.68018253336353 543.3409421321223 211.2423603598546 547.7069675359068
24
+ L 212.97441116742348 548.7069675359068
25
+ L 215.5724873787768 550.2069675359068
26
+ C 219.0365889939146 552.2069675359068 223.00069060905227 553.3409421321223 227.96479222419006 552.7428659207691
27
+ C 229.33081762797448 552.3768405169847 231.56286843554338 552.5108151132001 233.4288938393278 551.2787643056313
28
+ C 234.79491924311228 550.9127389018469 238.02697005068111 549.3146626904936 239.89299545446553 548.0826118829248
29
+ C 240.39299545446553 547.2165864791402 240.89299545446553 546.3505610753558 242.25902085825 545.9845356715714
30
+ L 607.9115427318801 268.65578987075384
31
+ L 551.4300900092946 724.4845356715714
32
+ C 550.4300900092946 726.2165864791402 550.2961154130791 728.4486372867091 550.6621408168635 729.8146626904936
33
+ C 550.0281662206479 732.9127389018469 550.7602170282167 735.6447897094158 551.4922678357857 738.3768405169847
34
+ C 552.3582932395701 738.8768405169847 552.7243186433545 740.2428659207691 552.7243186433545 740.2428659207691
35
+ C 554.6884202584923 744.8409421321223 558.5185472774145 748.2069675359069 562.8486742963368 750.7069675359069
36
+ C 568.0448267190433 753.7069675359069 573.3749537379655 754.474916728338 578.3390553531033 753.8768405169847
37
+ L 581.0711061606721 753.1447897094158
38
+ L 582.4371315644565 752.7787643056313
39
+ C 586.5352077758099 751.680688094278 590.2672585833787 749.2165864791402 593.6332839871633 745.386459460218
40
+ L 1148.4601430089617 324.39815023060845
41
+ C 1159.6562954316685 317.0058453851952 1161.9601430089617 301.0154643284286 1154.0678381635485 290.68533730950645
42
+ L 1154.0678381635485 290.68533730950645
43
+ z
44
+ "
45
+ />
33
46
 
34
47
  <glyph glyph-name="woodland" horiz-adv-x="500"
35
48
  d="