flo-mat 4.0.2 → 4.0.3

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 (101) hide show
  1. package/__tests__/specific-cases/specific-cases.spec.ts +6 -0
  2. package/browser/index.js +4511 -7115
  3. package/browser/index.min.js +1 -1
  4. package/node/cp-node/fs/is-on-same-loop.d.ts +3 -0
  5. package/node/cp-node/fs/is-on-same-loop.js +6 -0
  6. package/node/cp-node/fs/is-on-same-loop.js.map +1 -0
  7. package/node/debug/debug.d.ts +10 -15
  8. package/node/debug/debug.js +35 -46
  9. package/node/debug/debug.js.map +1 -1
  10. package/node/find-2-prong/add-1-prong.js +1 -4
  11. package/node/find-2-prong/add-1-prong.js.map +1 -1
  12. package/node/find-mat/find-mat.js +1 -2
  13. package/node/find-mat/find-mat.js.map +1 -1
  14. package/node/find-mat/get-meta.d.ts +1 -6
  15. package/node/find-mat/get-meta.js +4 -26
  16. package/node/find-mat/get-meta.js.map +1 -1
  17. package/node/index.d.ts +4 -2
  18. package/node/index.js +3 -1
  19. package/node/index.js.map +1 -1
  20. package/node/reconstruct-from-mat/filter-zero-length.d.ts +10 -0
  21. package/node/reconstruct-from-mat/filter-zero-length.js +14 -0
  22. package/node/reconstruct-from-mat/filter-zero-length.js.map +1 -0
  23. package/node/reconstruct-from-mat/get-all-on-loop-by-loop.d.ts +7 -0
  24. package/node/reconstruct-from-mat/get-all-on-loop-by-loop.js +38 -0
  25. package/node/reconstruct-from-mat/get-all-on-loop-by-loop.js.map +1 -0
  26. package/node/reconstruct-from-mat/get-bezier-piece-length.d.ts +3 -0
  27. package/node/reconstruct-from-mat/get-bezier-piece-length.js +6 -0
  28. package/node/reconstruct-from-mat/get-bezier-piece-length.js.map +1 -0
  29. package/node/reconstruct-from-mat/get-boundary.d.ts +7 -0
  30. package/node/reconstruct-from-mat/get-boundary.js +18 -0
  31. package/node/reconstruct-from-mat/get-boundary.js.map +1 -0
  32. package/node/reconstruct-from-mat/get-cp-nodess-for-sat.d.ts +4 -0
  33. package/node/reconstruct-from-mat/get-cp-nodess-for-sat.js +15 -0
  34. package/node/reconstruct-from-mat/get-cp-nodess-for-sat.js.map +1 -0
  35. package/node/reconstruct-from-mat/get-matching-beziers.d.ts +10 -0
  36. package/node/reconstruct-from-mat/get-matching-beziers.js +29 -0
  37. package/node/reconstruct-from-mat/get-matching-beziers.js.map +1 -0
  38. package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.d.ts +6 -0
  39. package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.js +10 -0
  40. package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.js.map +1 -0
  41. package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.d.ts +7 -0
  42. package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.js +47 -0
  43. package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.js.map +1 -0
  44. package/node/reconstruct-from-mat/get-sats2.d.ts +10 -0
  45. package/node/reconstruct-from-mat/get-sats2.js +16 -0
  46. package/node/reconstruct-from-mat/get-sats2.js.map +1 -0
  47. package/node/reconstruct-from-mat/is-fully-terminating.d.ts +3 -0
  48. package/node/reconstruct-from-mat/is-fully-terminating.js +19 -0
  49. package/node/reconstruct-from-mat/is-fully-terminating.js.map +1 -0
  50. package/node/reconstruct-from-mat/matched-beziers.d.ts +10 -0
  51. package/node/reconstruct-from-mat/matched-beziers.js +2 -0
  52. package/node/reconstruct-from-mat/matched-beziers.js.map +1 -0
  53. package/node/reconstruct-from-mat/reconstruct-from-mat.d.ts +4 -0
  54. package/node/reconstruct-from-mat/reconstruct-from-mat.js +28 -0
  55. package/node/reconstruct-from-mat/reconstruct-from-mat.js.map +1 -0
  56. package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.d.ts +12 -0
  57. package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js +46 -0
  58. package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js.map +1 -0
  59. package/node/reconstruct-from-mat/split-tri-path.d.ts +5 -0
  60. package/node/reconstruct-from-mat/split-tri-path.js +209 -0
  61. package/node/reconstruct-from-mat/split-tri-path.js.map +1 -0
  62. package/node/sat/add-debug-info.js +1 -2
  63. package/node/sat/add-debug-info.js.map +1 -1
  64. package/node/utils/clip.d.ts +2 -0
  65. package/node/utils/clip.js +6 -0
  66. package/node/utils/clip.js.map +1 -0
  67. package/package.json +2 -2
  68. package/src/cp-node/fs/is-on-same-loop.ts +15 -0
  69. package/src/debug/debug.ts +54 -72
  70. package/src/find-2-prong/add-1-prong.ts +1 -5
  71. package/src/find-mat/find-mat.ts +1 -2
  72. package/src/find-mat/get-meta.ts +3 -38
  73. package/src/index.ts +5 -3
  74. package/src/reconstruct-from-mat/filter-zero-length.ts +23 -0
  75. package/src/reconstruct-from-mat/get-all-on-loop-by-loop.ts +52 -0
  76. package/src/reconstruct-from-mat/get-bezier-piece-length.ts +12 -0
  77. package/src/reconstruct-from-mat/get-boundary.ts +32 -0
  78. package/src/reconstruct-from-mat/get-cp-nodess-for-sat.ts +24 -0
  79. package/src/reconstruct-from-mat/get-matching-beziers.ts +46 -0
  80. package/src/reconstruct-from-mat/get-mbss-by-loop-per-sat.ts +19 -0
  81. package/src/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.ts +69 -0
  82. package/src/reconstruct-from-mat/get-sats2.ts +25 -0
  83. package/src/reconstruct-from-mat/is-fully-terminating.ts +27 -0
  84. package/src/reconstruct-from-mat/matched-beziers.ts +14 -0
  85. package/src/reconstruct-from-mat/reconstruct-from-mat.ts +45 -0
  86. package/src/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.ts +62 -0
  87. package/src/reconstruct-from-mat/split-tri-path.ts +280 -0
  88. package/src/sat/add-debug-info.ts +1 -2
  89. package/src/utils/clip.ts +13 -0
  90. package/node/debug/functions/general.d.ts +0 -48
  91. package/node/debug/functions/general.js +0 -53
  92. package/node/debug/functions/general.js.map +0 -1
  93. package/node/point-on-shape/pos-to-human-string.d.ts +0 -8
  94. package/node/point-on-shape/pos-to-human-string.js +0 -12
  95. package/node/point-on-shape/pos-to-human-string.js.map +0 -1
  96. package/src/debug/elem-type-two-prong.ts +0 -8
  97. package/src/debug/functions/cmp-cp-on-delta.ts +0 -54
  98. package/src/debug/functions/general.ts +0 -79
  99. package/src/debug/functions/three-prong.ts +0 -249
  100. package/src/debug/functions/two-prong.ts +0 -203
  101. package/src/find-2-prong/add-debug-info.ts +0 -45
@@ -0,0 +1,3 @@
1
+ import type { CpNode } from "flo-mat";
2
+ declare function isOnSameLoop(cpNode1: CpNode, cpNode2: CpNode): boolean;
3
+ export { isOnSameLoop };
@@ -0,0 +1,6 @@
1
+ function isOnSameLoop(cpNode1, cpNode2) {
2
+ return (cpNode1.pointOnShape.curve.loop ===
3
+ cpNode2.pointOnShape.curve.loop);
4
+ }
5
+ export { isOnSameLoop };
6
+ //# sourceMappingURL=is-on-same-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-on-same-loop.js","sourceRoot":"","sources":["../../../src/cp-node/fs/is-on-same-loop.ts"],"names":[],"mappings":"AAGA,SAAS,YAAY,CACb,OAAe,EACf,OAAe;IAEnB,OAAO,CACH,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;QAC/B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC;AACN,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,23 +1,23 @@
1
- import { IGeneralDebugFunctions } from './functions/general.js';
2
- import { DrawElemFunctions } from './functions/draw-elem/draw-elem.js';
3
- import { DebugElems } from './debug-elem-types.js';
1
+ import type { DrawElemFunctions } from './functions/draw-elem/draw-elem.js';
2
+ import type { DebugElems } from './debug-elem-types.js';
4
3
  /** @internal */
5
4
  interface Debug {
6
5
  /** Generated by debug object for later inspection */
7
- generated: Generated;
6
+ elems: GeneratedElems;
7
+ timing: Timing;
8
8
  /**
9
9
  * These functions are meant to be used in the console, e.g. in the
10
10
  * console try typing d.fs.twoProng.traceConvergence(0);
11
11
  */
12
- fs: IDebugFunctions;
13
- directives: IDirectives;
12
+ fs: DebugFunctions;
13
+ directives: Directives;
14
14
  }
15
15
  /** @internal */
16
16
  type GeneratedElems = {
17
17
  [T in keyof DebugElems]: DebugElems[T][];
18
18
  };
19
19
  /** @internal */
20
- interface ITiming {
20
+ interface Timing {
21
21
  holeClosers: number;
22
22
  oneAnd2Prongs: number;
23
23
  threeProngs: number;
@@ -25,16 +25,11 @@ interface ITiming {
25
25
  simplifyMat: number;
26
26
  }
27
27
  /** @internal */
28
- interface Generated {
29
- elems: GeneratedElems;
30
- timing: ITiming;
31
- }
32
- /** @internal */
33
- interface IDebugFunctions extends IGeneralDebugFunctions {
28
+ interface DebugFunctions {
34
29
  drawElem: DrawElemFunctions;
35
30
  }
36
31
  /** @internal */
37
- interface IDirectives {
32
+ interface Directives {
38
33
  stopAfterHoleClosers: boolean;
39
34
  stopAfterHoleClosersNum: number;
40
35
  stopAfterTwoProngs: boolean;
@@ -43,4 +38,4 @@ interface IDirectives {
43
38
  stopAfterThreeProngsNum: number;
44
39
  }
45
40
  declare function enableDebugForMat(debugOn: boolean): void;
46
- export { Debug, GeneratedElems, ITiming, Generated, IDebugFunctions, IDirectives, enableDebugForMat };
41
+ export { Debug, GeneratedElems, Timing, DebugFunctions, Directives, enableDebugForMat };
@@ -1,4 +1,3 @@
1
- import { generalDebugFunctions } from './functions/general.js';
2
1
  import { drawElemFs } from './functions/draw-elem/draw-elem.js';
3
2
  function enableDebugForMat(debugOn) {
4
3
  if (!debugOn) {
@@ -8,59 +7,49 @@ function enableDebugForMat(debugOn) {
8
7
  let debug = window._debug_;
9
8
  debug = {
10
9
  ...debug,
11
- generated: {
12
- //...debug?.generated,
13
- ...(!debug ? {} : !debug.generated ? {} : debug.generated),
10
+ elems: {
11
+ ...debug?.elems,
14
12
  // @ts-ignore
15
- elems: {
16
- //...debug?.generated?.elems,
17
- ...(!debug ? {} : !debug.generated ? {} : !debug.generated.elems ? {} : debug.generated.elems),
18
- oneProng: [],
19
- // oneProngAtDullCorner : [],
20
- twoProng: [],
21
- // twoProng_regular : [],
22
- // twoProng_failed : [],
23
- // twoProng_notAdded : [],
24
- // twoProng_deleted : [],
25
- // twoProng_holeClosing : [],
26
- looseBoundingBox: [],
27
- tightBoundingBox: [],
28
- // sharpCorner : [],
29
- // dullCorner : [],
30
- vertex: [],
31
- threeProng: [],
32
- boundingHull: [],
33
- mat: [],
34
- // sat : [],
35
- cpNode: [],
36
- maxVertex: [],
37
- leaves: [],
38
- // culls : [],
39
- },
40
- timing: {
41
- //...debug?.generated?.timing,
42
- ...(!debug ? {} : !debug.generated ? {} : !debug.generated.timing ? {} : debug.generated.timing),
43
- holeClosers: 0,
44
- oneAnd2Prongs: 0,
45
- threeProngs: 0,
46
- sats: 0,
47
- simplifyMat: 0,
48
- }
13
+ oneProng: [],
14
+ // oneProngAtDullCorner : [],
15
+ twoProng: [],
16
+ // twoProng_regular : [],
17
+ // twoProng_failed : [],
18
+ // twoProng_notAdded : [],
19
+ // twoProng_deleted : [],
20
+ // twoProng_holeClosing : [],
21
+ looseBoundingBox: [],
22
+ tightBoundingBox: [],
23
+ // sharpCorner : [],
24
+ // dullCorner : [],
25
+ vertex: [],
26
+ threeProng: [],
27
+ boundingHull: [],
28
+ mat: [],
29
+ // sat : [],
30
+ cpNode: [],
31
+ maxVertex: [],
32
+ leaves: [],
33
+ // culls : [],
34
+ },
35
+ timing: {
36
+ ...debug?.timing,
37
+ holeClosers: 0,
38
+ oneAnd2Prongs: 0,
39
+ threeProngs: 0,
40
+ sats: 0,
41
+ simplifyMat: 0,
49
42
  },
50
43
  fs: {
51
- //...debug?.fs,
52
- ...(!debug ? {} : !debug.fs ? {} : debug.fs),
53
- // @ts-ignore
44
+ ...debug?.fs,
54
45
  drawElem: {
55
- //...debug?.fs?.drawElem,
56
- ...(!debug ? {} : !debug.fs ? {} : !debug.fs.drawElem ? {} : debug.fs.drawElem),
46
+ ...debug?.fs?.drawElem,
57
47
  ...drawElemFs
58
- },
59
- ...generalDebugFunctions
48
+ }
60
49
  },
61
50
  directives: {
62
51
  //...debug?.directives,
63
- ...(!debug ? {} : !debug.directives ? {} : debug.directives),
52
+ ...debug?.directives,
64
53
  stopAfterHoleClosers: false,
65
54
  stopAfterHoleClosersNum: undefined,
66
55
  stopAfterTwoProngs: false,
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAwDhE,SAAS,iBAAiB,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACV,MAAc,CAAC,OAAO,GAAG,SAAS,CAAC;QACpC,OAAO;IACX,CAAC;IAED,IAAI,KAAK,GAAW,MAAc,CAAC,OAAO,CAAC;IAE3C,KAAK,GAAG;QACJ,GAAG,KAAK;QACR,SAAS,EAAE;YACP,sBAAsB;YACtB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1D,aAAa;YACb,KAAK,EAAE;gBACH,6BAA6B;gBAC7B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC9F,QAAQ,EAAe,EAAE;gBACzB,6BAA6B;gBAC7B,QAAQ,EAAe,EAAE;gBACzB,6BAA6B;gBAC7B,6BAA6B;gBAC7B,6BAA6B;gBAC7B,6BAA6B;gBAC7B,6BAA6B;gBAC7B,gBAAgB,EAAO,EAAE;gBACzB,gBAAgB,EAAO,EAAE;gBACzB,6BAA6B;gBAC7B,6BAA6B;gBAC7B,MAAM,EAAiB,EAAE;gBACzB,UAAU,EAAa,EAAE;gBACzB,YAAY,EAAW,EAAE;gBACzB,GAAG,EAAoB,EAAE;gBACzB,6BAA6B;gBAC7B,MAAM,EAAiB,EAAE;gBACzB,SAAS,EAAc,EAAE;gBACzB,MAAM,EAAiB,EAAE;gBACzB,6BAA6B;aAChC;YACD,MAAM,EAAE;gBACJ,8BAA8B;gBAC9B,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;gBAChG,WAAW,EAAK,CAAC;gBACjB,aAAa,EAAG,CAAC;gBACjB,WAAW,EAAK,CAAC;gBACjB,IAAI,EAAY,CAAC;gBACjB,WAAW,EAAK,CAAC;aACpB;SACJ;QACD,EAAE,EAAE;YACA,eAAe;YACf,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,aAAa;YACb,QAAQ,EAAE;gBACN,yBAAyB;gBACzB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;gBAC/E,GAAG,UAAU;aAChB;YACD,GAAG,qBAAqB;SAC3B;QACD,UAAU,EAAE;YACR,uBAAuB;YACvB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YAC5D,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;YACnC,kBAAkB,EAAE,KAAK;YACzB,qBAAqB,EAAE,SAAU;YACjC,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;SACtC;KACJ,CAAC;IAED,MAAc,CAAC,OAAO,GAAG,KAAK,CAAC;AACpC,CAAC;AAGD,OAAO,EAE2B,iBAAiB,EAClD,CAAA"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug/debug.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAiDhE,SAAS,iBAAiB,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACV,MAAc,CAAC,OAAO,GAAG,SAAS,CAAC;QACpC,OAAO;IACX,CAAC;IAED,IAAI,KAAK,GAAW,MAAc,CAAC,OAAO,CAAC;IAE3C,KAAK,GAAG;QACJ,GAAG,KAAK;QACR,KAAK,EAAE;YACH,GAAG,KAAK,EAAE,KAAK;YACf,aAAa;YAEb,QAAQ,EAAe,EAAE;YACzB,6BAA6B;YAC7B,QAAQ,EAAe,EAAE;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,gBAAgB,EAAO,EAAE;YACzB,gBAAgB,EAAO,EAAE;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,MAAM,EAAiB,EAAE;YACzB,UAAU,EAAa,EAAE;YACzB,YAAY,EAAW,EAAE;YACzB,GAAG,EAAoB,EAAE;YACzB,6BAA6B;YAC7B,MAAM,EAAiB,EAAE;YACzB,SAAS,EAAc,EAAE;YACzB,MAAM,EAAiB,EAAE;YACzB,6BAA6B;SAChC;QACD,MAAM,EAAE;YACJ,GAAG,KAAK,EAAE,MAAM;YAChB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,CAAC;YACP,WAAW,EAAE,CAAC;SACjB;QACD,EAAE,EAAE;YACA,GAAG,KAAK,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACN,GAAG,KAAK,EAAE,EAAE,EAAE,QAAQ;gBACtB,GAAG,UAAU;aAChB;SACJ;QACD,UAAU,EAAE;YACR,uBAAuB;YACvB,GAAG,KAAK,EAAE,UAAU;YACpB,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;YACnC,kBAAkB,EAAE,KAAK;YACzB,qBAAqB,EAAE,SAAU;YACjC,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;SACtC;KACJ,CAAC;IAED,MAAc,CAAC,OAAO,GAAG,KAAK,CAAC;AACpC,CAAC;AAGD,OAAO,EAEyB,iBAAiB,EAChD,CAAA"}
@@ -33,10 +33,7 @@ function add1Prong(meta, radius, center, pos) {
33
33
  if (getCloseByCpIfExist(meta, pos, circle, order, 0, 1)) {
34
34
  return;
35
35
  }
36
- const { anyFailed, cpNodes } = addToCpTree(false, false, circle, [-0.5, +0.5], meta, [pos, pos]);
37
- // if (typeof _debug_ !== 'undefined') {
38
- // _debug_.generated.elems.oneProng.push(cpNodes);
39
- // }
36
+ addToCpTree(false, false, circle, [-0.5, +0.5], meta, [pos, pos]);
40
37
  }
41
38
  export { add1Prong };
42
39
  //# sourceMappingURL=add-1-prong.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-1-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE;;;;;GAKG;AACH,SAAS,SAAS,CACV,IAAa,EACb,MAAc,EACd,MAAgB,EAChB,GAAoB;IAExB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,sCAAsC;QAEtC,SAAS;QACT,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,oEAAoE;QAEpE,kCAAkC;QAElC,yCAAyC;QACrC,0DAA0D;QAC9D,IAAI;QAEJ,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;IACX,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjG,yCAAyC;IACzC,sDAAsD;IACtD,IAAI;AACR,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-1-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE;;;;;GAKG;AACH,SAAS,SAAS,CACV,IAAa,EACb,MAAc,EACd,MAAgB,EAChB,GAAoB;IAExB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,sCAAsC;QAEtC,SAAS;QACT,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,oEAAoE;QAEpE,kCAAkC;QAElC,yCAAyC;QACrC,0DAA0D;QAC9D,IAAI;QAEJ,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;IACX,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { findAndAdd3ProngsOnLoop } from '../find-3-prong/find-and-add-3-prongs-on-loop.js';
2
2
  import { createInitialCpTree } from './create-initial-cp-tree.js';
3
- import { /*getPointToCpNode,*/ getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4, getPointToCpNode } from './get-meta.js';
3
+ import { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 } from './get-meta.js';
4
4
  import { getSharpCornersOnLoop } from './get-sharp-corners.js';
5
5
  import { getDullCornersOnLoop } from './get-dull-corners-on-loop.js';
6
6
  import { findAndAdd2ProngsOnAllLoops } from '../find-2-prong/find-and-add-2-prongs-on-all-loops.js';
@@ -27,7 +27,6 @@ function findMat(loops, maxCoordPowerOf2, options) {
27
27
  const lastInsertId = { id: 0 };
28
28
  const cpTrees = createInitialCpTree(loops, sharpCornersPerLoop, lastInsertId);
29
29
  const _meta = getPartialMeta(loops);
30
- const pointToCpNode = getPointToCpNode(loops, cpTrees);
31
30
  const meta = {
32
31
  maxCoordPowerOf2, squaredDiagonalLength, loops, cpTrees, // pointToCpNode,
33
32
  lastInsertId, ..._meta
@@ -1 +1 @@
1
- {"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,9 @@
1
1
  import type { Loop } from 'flo-boolean';
2
- import type { CpNode } from '../cp-node/cp-node.js';
3
- import type { TriMap } from '../utils/tri-map.js';
4
2
  import type { MatMeta } from '../mat/mat-meta.js';
5
- import { RbTree } from 'flo-ll-rb-tree';
6
- /** @internal */
7
- declare function getPointToCpNode(loops: Loop[], cpTrees: Map<Loop, RbTree<CpNode>>): TriMap<Loop, number, number, CpNode>;
8
3
  /** @internal */
9
4
  declare function getPartialMeta(loops: Loop[]): Omit<MatMeta, 'cpTrees' | 'loops' | 'maxCoordPowerOf2' | 'squaredDiagonalLength' | 'lastInsertId'>;
10
5
  /** @internal */
11
6
  declare function addDebugInfo2(): void;
12
7
  declare function addDebugInfo3(): void;
13
8
  declare function addDebugInfo4(): void;
14
- export { getPointToCpNode, getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
9
+ export { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
@@ -1,25 +1,8 @@
1
- // import { TriMapFs } from '../utils/tri-map.js';
2
1
  import { getBoundingHull, getBoundingBoxTight } from 'flo-bezier3';
3
2
  import { getBoundingBox$ } from '../geometry/get-bounding-box-.js';
4
3
  import { getCorner } from '../corner/get-corner.js';
5
4
  let timingStart;
6
5
  /** @internal */
7
- function getPointToCpNode(loops, cpTrees) {
8
- timingStart = performance.now();
9
- // const pointToCpNode: TriMap<Loop,number,number,CpNode> = new Map();
10
- // for (const loop of loops) {
11
- // // Populate `posMap`
12
- // const cpTree = cpTrees.get(loop)!;
13
- // const cpNodes = cpTree.toArrayInOrder();
14
- // for (const cpNode of cpNodes) {
15
- // const { p, t } = cpNode.pointOnShape;
16
- // TriMapFs.set(pointToCpNode,loop,p[0],p[1],cpNode);
17
- // }
18
- // }
19
- // return pointToCpNode;
20
- return undefined;
21
- }
22
- /** @internal */
23
6
  function getPartialMeta(loops) {
24
7
  const looseBoundingBoxes = [];
25
8
  const tightBoundingBoxes = [];
@@ -57,28 +40,23 @@ function addDebugInfo2() {
57
40
  if (typeof _debug_ === 'undefined') {
58
41
  return;
59
42
  }
60
- const timing = _debug_.generated.timing;
61
43
  const now = performance.now();
62
- timing.holeClosers += now - timingStart;
44
+ _debug_.timing.holeClosers += now - timingStart;
63
45
  timingStart = now;
64
46
  }
65
47
  function addDebugInfo3() {
66
48
  if (typeof _debug_ === 'undefined') {
67
49
  return;
68
50
  }
69
- const generated = _debug_.generated;
70
- const timing = generated.timing;
71
51
  const now = performance.now();
72
- timing.oneAnd2Prongs += now - timingStart;
52
+ _debug_.timing.oneAnd2Prongs += now - timingStart;
73
53
  timingStart = now;
74
54
  }
75
55
  function addDebugInfo4() {
76
56
  if (typeof _debug_ === 'undefined') {
77
57
  return;
78
58
  }
79
- const generated = _debug_.generated;
80
- const timing = generated.timing;
81
- timing.threeProngs += performance.now() - timingStart;
59
+ _debug_.timing.threeProngs += performance.now() - timingStart;
82
60
  }
83
- export { getPointToCpNode, getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
61
+ export { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
84
62
  //# sourceMappingURL=get-meta.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpD,IAAI,WAAmB,CAAC;AAGxB,gBAAgB;AAChB,SAAS,cAAc,CACf,KAAa;IAUjB,MAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,MAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAY,EAAE,CAAC;IACjC,MAAM,WAAW,GAAY,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,EAAE,IAAI,CAAE,CAAC;YAExC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7C,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACjD,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,kBAAkB;QAClB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,WAAW;KACd,CAAA;AACL,CAAC;AAGD,gBAAgB;AAChB,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,GAAG,WAAW,CAAC;IAChD,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,GAAG,WAAW,CAAC;IAClD,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClE,CAAC;AAGD,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,CAAA"}
package/node/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export type { PointOnShape } from './point-on-shape/point-on-shape.js';
7
7
  export type { Circle } from './geometry/circle.js';
8
8
  export type { CurvePiece } from './mat/curve-piece.js';
9
9
  export type { DrawElemFunctions } from './debug/functions/draw-elem/draw-elem.js';
10
- export type { ITiming } from './debug/debug.js';
10
+ export type { Timing as ITiming } from './debug/debug.js';
11
11
  export type { DebugElems } from './debug/debug-elem-types.js';
12
12
  export type { Debug } from './debug/debug.js';
13
13
  export type { DebugElemKey } from './debug/debug-elem-types.js';
@@ -39,7 +39,7 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
39
39
  export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
40
40
  export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
41
41
  export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
42
- export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
42
+ export { getPartialMeta } from './find-mat/get-meta.js';
43
43
  export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
44
44
  export { getChildren } from './cp-node/fs/get-children.js';
45
45
  export { getVertexForwardChildren } from './cp-node/fs/get-vertex-forward-children.js';
@@ -76,3 +76,5 @@ export { getInitialDegAngleBetweenMatCurves } from './cp-node/fs/get-angle-betwe
76
76
  export { getAllVertices } from './cp-node/fs/get-all-vertices.js';
77
77
  export { isTrivial } from './cp-node/fs/is-trivial.js';
78
78
  export { scaleCircle } from './geometry/circle.js';
79
+ export { isOnSameLoop } from './cp-node/fs/is-on-same-loop.js';
80
+ export { reconstructFromMats } from './reconstruct-from-mat/reconstruct-from-mat.js';
package/node/index.js CHANGED
@@ -26,7 +26,7 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
26
26
  export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
27
27
  export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
28
28
  export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
29
- export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
29
+ export { getPartialMeta } from './find-mat/get-meta.js';
30
30
  export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
31
31
  // CpNodeFs functions
32
32
  export { getChildren } from './cp-node/fs/get-children.js';
@@ -64,4 +64,6 @@ export { getInitialDegAngleBetweenMatCurves } from './cp-node/fs/get-angle-betwe
64
64
  export { getAllVertices } from './cp-node/fs/get-all-vertices.js';
65
65
  export { isTrivial } from './cp-node/fs/is-trivial.js';
66
66
  export { scaleCircle } from './geometry/circle.js';
67
+ export { isOnSameLoop } from './cp-node/fs/is-on-same-loop.js';
68
+ export { reconstructFromMats } from './reconstruct-from-mat/reconstruct-from-mat.js';
67
69
  //# sourceMappingURL=index.js.map
package/node/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAepF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,yCAAyC,EAAE,MAAM,6EAA6E,CAAC;AACxI,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AAGpG,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { BezierPiece } from "flo-bezier3";
2
+ /**
3
+ * Filters out zero-length bezier pieces.
4
+ *
5
+ * * **note** will return at least one bezier piece, even if all pieces are zero-length.
6
+ *
7
+ * @param bezierPieces
8
+ */
9
+ declare function filterZeroLength(bezierPieces: BezierPiece[]): BezierPiece[];
10
+ export { filterZeroLength };
@@ -0,0 +1,14 @@
1
+ import { isBezierPieceZeroLength } from "flo-bezier3";
2
+ /**
3
+ * Filters out zero-length bezier pieces.
4
+ *
5
+ * * **note** will return at least one bezier piece, even if all pieces are zero-length.
6
+ *
7
+ * @param bezierPieces
8
+ */
9
+ function filterZeroLength(bezierPieces) {
10
+ const bezierPieces_ = bezierPieces.filter(bezierPiece => !isBezierPieceZeroLength(bezierPiece));
11
+ return bezierPieces_.length > 0 ? bezierPieces_ : [bezierPieces[0]];
12
+ }
13
+ export { filterZeroLength };
14
+ //# sourceMappingURL=filter-zero-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-zero-length.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/filter-zero-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;;GAMG;AACH,SAAS,gBAAgB,CACjB,YAA2B;IAE/B,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CACrC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CACvD,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { CpNode } from '../cp-node/cp-node.js';
2
+ /**
3
+ * Returns all `CpNode`s on the MAT that this `CpNode` is part of
4
+ * starting from the current one and going anti-clockwise around the shape.
5
+ */
6
+ declare function getAllOnLoop_ByLoop(cpNode: CpNode): CpNode[][];
7
+ export { getAllOnLoop_ByLoop };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Returns all `CpNode`s on the MAT that this `CpNode` is part of
3
+ * starting from the current one and going anti-clockwise around the shape.
4
+ */
5
+ function getAllOnLoop_ByLoop(cpNode) {
6
+ const cpNodess = [];
7
+ const cpStarts = [cpNode];
8
+ const cpStartSet = new Set(cpStarts);
9
+ if (cpNode.isHoleClosing) {
10
+ cpStartSet.add(cpNode.prevOnCircle.holeCloserTwin);
11
+ }
12
+ cpStartSet.add(cpNode);
13
+ while (cpStarts.length > 0) {
14
+ const cpNodes = [];
15
+ const cpStart = cpStarts.pop();
16
+ const _loop = cpStart.pointOnShape.curve.loop;
17
+ let cpNode = cpStart;
18
+ do {
19
+ const loop = cpNode.pointOnShape.curve.loop;
20
+ if (_loop === loop) {
21
+ cpNodes.push(cpNode);
22
+ cpNode = cpNode.next;
23
+ continue;
24
+ }
25
+ const twin = cpNode.holeCloserTwin;
26
+ if (!cpStartSet.has(twin)) {
27
+ cpStartSet.add(twin);
28
+ cpStartSet.add(twin.prevOnCircle.holeCloserTwin);
29
+ cpStarts.push(twin);
30
+ }
31
+ cpNode = cpNode.prev.holeCloserTwin;
32
+ } while (cpNode !== cpStart);
33
+ cpNodess.push(cpNodes);
34
+ }
35
+ return cpNodess;
36
+ }
37
+ export { getAllOnLoop_ByLoop };
38
+ //# sourceMappingURL=get-all-on-loop-by-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all-on-loop-by-loop.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-all-on-loop-by-loop.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,SAAS,mBAAmB,CACpB,MAAc;IAElB,MAAM,QAAQ,GAAe,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAa,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;IACxD,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAG,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9C,IAAI,MAAM,GAAG,OAAO,CAAC;QAErB,GAAG,CAAC;YACA,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,cAAe,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAe,CAAC;QACzC,CAAC,QAAQ,MAAM,KAAK,OAAO,EAAE;QAE7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { BezierPiece } from "flo-bezier3";
2
+ declare function getBezierPieceLength(bezierPiece: BezierPiece): number;
3
+ export { getBezierPieceLength };
@@ -0,0 +1,6 @@
1
+ import { length } from 'flo-bezier3';
2
+ function getBezierPieceLength(bezierPiece) {
3
+ return length(bezierPiece.ts, bezierPiece.ps);
4
+ }
5
+ export { getBezierPieceLength };
6
+ //# sourceMappingURL=get-bezier-piece-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-bezier-piece-length.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-bezier-piece-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,SAAS,oBAAoB,CACrB,WAAwB;IAE5B,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAGD,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { BezierPiece } from 'flo-bezier3';
2
+ import type { CpNode } from '../cp-node/cp-node.js';
3
+ declare function getBoundary(cpNode: CpNode): {
4
+ boundaryBeziers: BezierPiece[];
5
+ boundaryBeziersOpp: BezierPiece[] | undefined;
6
+ };
7
+ export { getBoundary };
@@ -0,0 +1,18 @@
1
+ import { getBoundaryBezierPartsToNext } from '../cp-node/fs/get-boundary-bezier-parts-to-next.js';
2
+ import { filterZeroLength } from "./filter-zero-length.js";
3
+ import { isFullyTerminating } from './is-fully-terminating.js';
4
+ function getBoundary(cpNode) {
5
+ const cpNodeOpp = isFullyTerminating(cpNode)
6
+ ? undefined // no opposite boundary
7
+ : cpNode.next.prevOnCircle;
8
+ const boundaryBeziers = filterZeroLength(getBoundaryBezierPartsToNext(cpNode));
9
+ const boundaryBeziersOpp = cpNodeOpp === undefined
10
+ ? undefined
11
+ : filterZeroLength(getBoundaryBezierPartsToNext(cpNodeOpp));
12
+ return {
13
+ boundaryBeziers,
14
+ boundaryBeziersOpp
15
+ };
16
+ }
17
+ export { getBoundary };
18
+ //# sourceMappingURL=get-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-boundary.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-boundary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,SAAS,WAAW,CACZ,MAAc;IAKlB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC,uBAAuB;QACnC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAE/B,MAAM,eAAe,GACjB,gBAAgB,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,MAAM,kBAAkB,GAAG,SAAS,KAAK,SAAS;QAC9C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhE,OAAO;QACH,eAAe;QACf,kBAAkB;KACrB,CAAC;AACN,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { CpNode } from "../cp-node/cp-node.js";
2
+ import type { Mat } from '../mat/mat.js';
3
+ declare function getCpNodessForSat(sat: Mat): CpNode[][];
4
+ export { getCpNodessForSat };
@@ -0,0 +1,15 @@
1
+ import { isOnSameLoop } from "../cp-node/fs/is-on-same-loop.js";
2
+ import { isFullyTerminating } from "./is-fully-terminating.js";
3
+ import { getAllOnLoop_ByLoop } from "./get-all-on-loop-by-loop.js";
4
+ function getCpNodessForSat(sat) {
5
+ let { cpNode } = sat;
6
+ while (!isFullyTerminating(cpNode)) {
7
+ cpNode = cpNode.next;
8
+ }
9
+ if (!isOnSameLoop(cpNode, cpNode.next)) {
10
+ cpNode = cpNode.holeCloserTwin;
11
+ }
12
+ return getAllOnLoop_ByLoop(cpNode);
13
+ }
14
+ export { getCpNodessForSat };
15
+ //# sourceMappingURL=get-cp-nodess-for-sat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cp-nodess-for-sat.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-cp-nodess-for-sat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,SAAS,iBAAiB,CAClB,GAAQ;IAEZ,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAErB,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,cAAe,CAAC;IACpC,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { CpNode } from '../cp-node/cp-node.js';
2
+ import type { MatchedBeziers } from './matched-beziers.js';
3
+ /**
4
+ * Returns a correspondence between boundary bezier curves and a medial axis
5
+ * bezier curve. They will later be interpolated.
6
+ *
7
+ * @param cpNode the start `CpNode`
8
+ */
9
+ declare function getMatchingBeziers(cpNode: CpNode): MatchedBeziers[] | undefined;
10
+ export { getMatchingBeziers };
@@ -0,0 +1,29 @@
1
+ import { getMatCurveToNext } from '../cp-node/fs/get-mat-curve-to-next.js';
2
+ import { splitTriPath } from './split-tri-path.js';
3
+ import { getBoundary } from './get-boundary.js';
4
+ import { isOnSameLoop } from '../cp-node/fs/is-on-same-loop.js';
5
+ /**
6
+ * Returns a correspondence between boundary bezier curves and a medial axis
7
+ * bezier curve. They will later be interpolated.
8
+ *
9
+ * @param cpNode the start `CpNode`
10
+ */
11
+ function getMatchingBeziers(cpNode) {
12
+ const medialBezier = {
13
+ ps: getMatCurveToNext(cpNode),
14
+ ts: [0, 1]
15
+ };
16
+ if (cpNode.isHoleClosing && // short-circuit
17
+ !isOnSameLoop(cpNode, cpNode.next)) {
18
+ // We get here for half of hole-closers, as only half of hole-closers are on a different loop.
19
+ // This cpNode indicates we should connect the hole
20
+ // console.log('hole-closing dummy case');
21
+ return undefined;
22
+ }
23
+ const r = getBoundary(cpNode);
24
+ const { boundaryBeziers, boundaryBeziersOpp } = r;
25
+ const matchedBezierss = splitTriPath(boundaryBeziers, medialBezier, boundaryBeziersOpp ?? []);
26
+ return matchedBezierss;
27
+ }
28
+ export { getMatchingBeziers };
29
+ //# sourceMappingURL=get-matching-beziers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-matching-beziers.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-matching-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE;;;;;GAKG;AACH,SAAS,kBAAkB,CACnB,MAAc;IAElB,MAAM,YAAY,GAAgB;QAC9B,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAC7B,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KACZ,CAAC;IAEF,IAAI,MAAM,CAAC,aAAa,IAAK,gBAAgB;QACzC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAErC,8FAA8F;QAC9F,mDAAmD;QACnD,0CAA0C;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAElD,MAAM,eAAe,GAAqB,YAAY,CAClD,eAAe,EACf,YAAY,EACZ,kBAAkB,IAAI,EAAE,CAC3B,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B,CAAC;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Mat } from "../mat/mat.js";
2
+ declare function getMbssByLoopPerSat(mats: Mat[], satScale: number): {
3
+ mbssByLoop: (import("./matched-beziers.js").MatchedBeziers[] | undefined)[][];
4
+ oppArr: [[number, number], [number, number]][];
5
+ }[];
6
+ export { getMbssByLoopPerSat };
@@ -0,0 +1,10 @@
1
+ import { getSats2 } from "./get-sats2.js";
2
+ import { getMbssByLoopWithOppArr } from "./get-mbss-by-loop-with-opp-arr.js";
3
+ import { getCpNodessForSat } from "./get-cp-nodess-for-sat.js";
4
+ function getMbssByLoopPerSat(mats, satScale) {
5
+ const sats = getSats2(mats, satScale);
6
+ const cpNodessPerSat = sats.map(getCpNodessForSat);
7
+ return cpNodessPerSat.map(getMbssByLoopWithOppArr);
8
+ }
9
+ export { getMbssByLoopPerSat };
10
+ //# sourceMappingURL=get-mbss-by-loop-per-sat.js.map