flo-mat 3.0.7 → 3.0.10

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 (117) hide show
  1. package/browser/index.js +215 -208
  2. package/browser/index.min.js +1 -1
  3. package/node/closest-boundary-point/cull-bezier-pieces.d.ts +5 -4
  4. package/node/closest-boundary-point/cull-bezier-pieces.js +9 -8
  5. package/node/closest-boundary-point/cull-bezier-pieces.js.map +1 -1
  6. package/node/closest-boundary-point/cull-by-loose-bounding-box.d.ts +2 -2
  7. package/node/closest-boundary-point/cull-by-loose-bounding-box.js +8 -8
  8. package/node/closest-boundary-point/cull-by-loose-bounding-box.js.map +1 -1
  9. package/node/closest-boundary-point/cull-by-tight-boundary-box.d.ts +2 -2
  10. package/node/closest-boundary-point/cull-by-tight-boundary-box.js +8 -8
  11. package/node/closest-boundary-point/cull-by-tight-boundary-box.js.map +1 -1
  12. package/node/closest-boundary-point/get-best-distance-squared.d.ts +1 -1
  13. package/node/closest-boundary-point/get-best-distance-squared.js +6 -6
  14. package/node/closest-boundary-point/get-best-distance-squared.js.map +1 -1
  15. package/node/closest-boundary-point/get-close-boundary-points-certified.d.ts +2 -2
  16. package/node/closest-boundary-point/get-close-boundary-points-certified.js +7 -7
  17. package/node/closest-boundary-point/get-close-boundary-points-certified.js.map +1 -1
  18. package/node/cp-node/cp-node-fs.d.ts +11 -11
  19. package/node/cp-node/cp-node-fs.js +11 -11
  20. package/node/cp-node/cp-node.d.ts +15 -15
  21. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.d.ts +1 -1
  22. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.js +11 -16
  23. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.js.map +1 -1
  24. package/node/cp-node/fs/get-boundary-beziers-between.js +4 -6
  25. package/node/cp-node/fs/get-boundary-beziers-between.js.map +1 -1
  26. package/node/cp-node/fs/get-boundary-beziers-to-next.d.ts +10 -1
  27. package/node/cp-node/fs/get-boundary-beziers-to-next.js +70 -35
  28. package/node/cp-node/fs/get-boundary-beziers-to-next.js.map +1 -1
  29. package/node/cp-node/fs/get-salience.js +2 -2
  30. package/node/cp-node/fs/get-salience.js.map +1 -1
  31. package/node/cp-node/fs/get-speed.js +0 -1
  32. package/node/cp-node/fs/get-speed.js.map +1 -1
  33. package/node/find-2-prong/cull-bezier-pieces.d.ts +4 -4
  34. package/node/find-2-prong/cull-bezier-pieces.js +9 -9
  35. package/node/find-2-prong/cull-bezier-pieces.js.map +1 -1
  36. package/node/find-2-prong/find-2-prong.js +8 -8
  37. package/node/find-2-prong/find-2-prong.js.map +1 -1
  38. package/node/find-2-prong/get-initial-bezier-pieces.d.ts +2 -2
  39. package/node/find-2-prong/get-initial-bezier-pieces.js +2 -2
  40. package/node/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  41. package/node/find-2-prong/reduce-radius.d.ts +1 -1
  42. package/node/find-2-prong/reduce-radius.js +5 -5
  43. package/node/find-2-prong/reduce-radius.js.map +1 -1
  44. package/node/find-3-prong.ts/calc-better-x.d.ts +2 -2
  45. package/node/find-3-prong.ts/calc-better-x.js +3 -3
  46. package/node/find-3-prong.ts/calc-better-x.js.map +1 -1
  47. package/node/find-3-prong.ts/calc-initial-3-prong-center.d.ts +2 -2
  48. package/node/find-3-prong.ts/calc-initial-3-prong-center.js +3 -3
  49. package/node/find-3-prong.ts/calc-initial-3-prong-center.js.map +1 -1
  50. package/node/find-3-prong.ts/find-3-prong-for-delta3s.d.ts +2 -2
  51. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js +16 -16
  52. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js.map +1 -1
  53. package/node/find-3-prong.ts/find-3-prong.js +2 -2
  54. package/node/find-3-prong.ts/find-3-prong.js.map +1 -1
  55. package/node/find-3-prong.ts/get-closest-points.d.ts +2 -2
  56. package/node/find-3-prong.ts/get-closest-points.js +4 -4
  57. package/node/find-3-prong.ts/get-closest-points.js.map +1 -1
  58. package/node/find-mat/find-mat.js +4 -0
  59. package/node/find-mat/find-mat.js.map +1 -1
  60. package/node/find-mat/get-meta.js.map +1 -1
  61. package/node/index.d.ts +1 -0
  62. package/node/index.js +1 -1
  63. package/node/index.js.map +1 -1
  64. package/node/mat/get-boundary-piece-beziers.js +7 -7
  65. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  66. package/node/mat/mat.d.ts +1 -1
  67. package/node/point-on-shape/compare-poss.d.ts +3 -3
  68. package/node/point-on-shape/compare-poss.js +3 -3
  69. package/node/point-on-shape/get-osculating-circle.d.ts +1 -1
  70. package/node/point-on-shape/get-osculating-circle.js +1 -1
  71. package/node/point-on-shape/pos-to-human-string.d.ts +1 -1
  72. package/node/point-on-shape/pos-to-human-string.js +1 -1
  73. package/node/sat/cull.d.ts +7 -5
  74. package/node/sat/cull.js +7 -4
  75. package/node/sat/cull.js.map +1 -1
  76. package/node/sat/to-scale-axis.d.ts +3 -2
  77. package/node/sat/to-scale-axis.js +3 -2
  78. package/node/sat/to-scale-axis.js.map +1 -1
  79. package/package.json +5 -5
  80. package/src/closest-boundary-point/cull-bezier-pieces.ts +12 -11
  81. package/src/closest-boundary-point/cull-by-loose-bounding-box.ts +8 -8
  82. package/src/closest-boundary-point/cull-by-tight-boundary-box.ts +8 -8
  83. package/src/closest-boundary-point/get-best-distance-squared.ts +6 -6
  84. package/src/closest-boundary-point/get-close-boundary-points-certified.ts +8 -8
  85. package/src/cp-node/fs/get-boundary-bezier-parts-to-next.ts +12 -18
  86. package/src/cp-node/fs/get-boundary-beziers-between.ts +6 -7
  87. package/src/cp-node/fs/get-boundary-beziers-to-next.ts +79 -53
  88. package/src/cp-node/fs/get-salience.ts +2 -2
  89. package/src/cp-node/fs/get-speed.ts +1 -6
  90. package/src/curve/curve.ts +5 -5
  91. package/src/debug/functions/draw-elem/two-prong.ts +40 -40
  92. package/src/debug/functions/two-prong.ts +195 -195
  93. package/src/debug/two-prong-for-debugging.ts +26 -26
  94. package/src/find-2-prong/add-debug-info.ts +38 -38
  95. package/src/find-2-prong/cull-bezier-pieces.ts +10 -10
  96. package/src/find-2-prong/find-2-prong.ts +8 -8
  97. package/src/find-2-prong/get-initial-bezier-pieces.ts +2 -2
  98. package/src/find-2-prong/reduce-radius.ts +5 -5
  99. package/src/find-3-prong.ts/calc-better-x.ts +3 -3
  100. package/src/find-3-prong.ts/calc-initial-3-prong-center.ts +3 -3
  101. package/src/find-3-prong.ts/find-3-prong-for-delta3s.ts +16 -16
  102. package/src/find-3-prong.ts/find-3-prong.ts +2 -2
  103. package/src/find-3-prong.ts/get-closest-points.ts +4 -4
  104. package/src/find-mat/add-2-prongs-by-error.ts +7 -7
  105. package/src/find-mat/find-mat.ts +6 -0
  106. package/src/find-mat/get-meta.ts +7 -1
  107. package/src/index.ts +2 -2
  108. package/src/mat/get-boundary-piece-beziers.ts +7 -7
  109. package/src/mat/get-two-prong-type.ts +8 -8
  110. package/src/sat/cull.ts +10 -7
  111. package/src/sat/to-scale-axis.ts +18 -17
  112. package/src/utils/bezier-piece-to-bezier.ts +7 -7
  113. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.d.ts +0 -3
  114. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js +0 -6
  115. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js.map +0 -1
  116. package/src/closest-boundary-point/get-closest-boundary-point-certified.ts +0 -70
  117. package/src/cp-node/fs/cp-nodes-to-boundary-beziers.ts +0 -10
@@ -8,13 +8,13 @@ import { getBoundaryPieceBeziers } from '../mat/get-boundary-piece-beziers.js';
8
8
  * tolerances.
9
9
  */
10
10
  function find3Prong(δs, extreme) {
11
- const bezierPiecess = δs.map(getBoundaryPieceBeziers);
11
+ const curvePiecess = δs.map(getBoundaryPieceBeziers);
12
12
  // The best candidate amongst the different 'permutations' of the given δs.
13
13
  let threeProng;
14
14
  let smallestError = Number.POSITIVE_INFINITY;
15
15
  for (let i = 1; i < δs.length - 1; i++) {
16
16
  for (let k = 0; k < 3; k++) {
17
- const threeProngInfo = find3ProngForDelta3s(δs, i, k, bezierPiecess, extreme);
17
+ const threeProngInfo = find3ProngForDelta3s(δs, i, k, curvePiecess, extreme);
18
18
  if (!threeProngInfo) {
19
19
  continue;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/find-3-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,EAAc,EAAE,OAAe;IAEhC,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAEtD,2EAA2E;IAC3E,IAAI,UAIA,CAAC;IACL,IAAI,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,cAAc,GACnB,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;YAE1D,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;gBAC3B,aAAa,GAAG,KAAK,CAAC;gBAEtB,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAsB,EAAE,GAAG,EAAE,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAGD,OAAO,UAAW,CAAC;AACpB,CAAC;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"find-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/find-3-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E;;;;;;GAMG;AACH,SAAS,UAAU,CACjB,EAAc,EAAE,OAAe;IAEhC,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErD,2EAA2E;IAC3E,IAAI,UAIA,CAAC;IACL,IAAI,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC7C,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,cAAc,GACnB,oBAAoB,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;YAE1D,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;gBAC3B,aAAa,GAAG,KAAK,CAAC;gBAEtB,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAsB,EAAE,GAAG,EAAE,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAGD,OAAO,UAAW,CAAC;AACpB,CAAC;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -2,8 +2,8 @@ import { CurvePiece } from '../mat/curve-piece.js';
2
2
  /**
3
3
  * @internal
4
4
  * @param x
5
- * @param bezierPiece3s
5
+ * @param curvePiece3s
6
6
  * @param extreme
7
7
  */
8
- declare function getClosestPoints(x: number[], bezierPiece3s: CurvePiece[][]): import("../index.js").PointOnShape[];
8
+ declare function getClosestPoints(x: number[], curvePiece3s: CurvePiece[][]): import("../index.js").PointOnShape[];
9
9
  export { getClosestPoints };
@@ -2,13 +2,13 @@ import { getCloseBoundaryPointsCertified } from '../closest-boundary-point/get-c
2
2
  /**
3
3
  * @internal
4
4
  * @param x
5
- * @param bezierPiece3s
5
+ * @param curvePiece3s
6
6
  * @param extreme
7
7
  */
8
- function getClosestPoints(x, bezierPiece3s) {
9
- return bezierPiece3s.map(bezierPieces => {
8
+ function getClosestPoints(x, curvePiece3s) {
9
+ return curvePiece3s.map(curvePieces => {
10
10
  return getCloseBoundaryPointsCertified(5, // TODO - see find-2-prong
11
- bezierPieces, x)[0];
11
+ curvePieces, x)[0];
12
12
  });
13
13
  }
14
14
  export { getClosestPoints };
@@ -1 +1 @@
1
- {"version":3,"file":"get-closest-points.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/get-closest-points.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AAGnH;;;;;GAKG;AACH,SAAS,gBAAgB,CACjB,CAAW,EACX,aAA6B;IAEjC,OAAO,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QACpC,OAAO,+BAA+B,CAClC,CAAC,EAAG,0BAA0B;QAC9B,YAAY,EAAE,CAAC,CAClB,CAAC,CAAC,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-closest-points.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/get-closest-points.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AAGnH;;;;;GAKG;AACH,SAAS,gBAAgB,CACjB,CAAW,EACX,YAA4B;IAEhC,OAAO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAClC,OAAO,+BAA+B,CAClC,CAAC,EAAG,0BAA0B;QAC9B,WAAW,EAAE,CAAC,CACjB,CAAC,CAAC,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACP,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -33,6 +33,10 @@ function findMat(loops, maxCoordinate, options) {
33
33
  maxCoordinate, squaredDiagonalLength, loops, cpTrees, pointToCpNode,
34
34
  lastInsertId, ..._meta
35
35
  };
36
+ // const cpTrees: Map<Loop, LlRbTree<CpNode>> = new Map();
37
+ // const lastInsertId = { id: 0 };
38
+ // createInitialCpTree(loops, cpTrees, sharpCornersPerLoop, lastInsertId);
39
+ // const meta = getMeta(maxCoordinate, squaredDiagonalLength, loops, cpTrees, lastInsertId);
36
40
  let cpNode;
37
41
  cpNode = findAndAddHoleClosing2Prongs(meta);
38
42
  if (typeof _debug_ !== 'undefined') {
@@ -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 +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":"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"}
package/node/index.d.ts CHANGED
@@ -46,4 +46,5 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
46
46
  export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
47
47
  export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
48
48
  export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
49
+ export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
49
50
  export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
package/node/index.js CHANGED
@@ -30,6 +30,6 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
30
30
  export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
31
31
  export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
32
32
  export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
33
- // export { getMeta } from './find-mat/get-meta.js';
33
+ export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
34
34
  export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
35
35
  //# 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;AAmBpF,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,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,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,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,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,oDAAoD;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC"}
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;AAmBpF,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,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,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,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,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"}
@@ -11,7 +11,7 @@ import { compareCps } from '../contact-point/contact-point.js';
11
11
  function getBoundaryPieceBeziers(cpNodes) {
12
12
  let cpThis = cpNodes[0];
13
13
  const cpEnd = cpNodes[1];
14
- const bezierPieces = [];
14
+ const curvePieces = [];
15
15
  // As opposed to going around the circle and taking the last exit
16
16
  let goStraight = true;
17
17
  do {
@@ -30,28 +30,28 @@ function getBoundaryPieceBeziers(cpNodes) {
30
30
  }
31
31
  else if (posNext.curve === posThis.curve &&
32
32
  compareCps(cpThis.next.cp, cpThis.cp) > 0) {
33
- bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, posNext.t] });
33
+ curvePieces.push({ curve: posThis.curve, ts: [posThis.t, posNext.t] });
34
34
  }
35
35
  else {
36
- bezierPieces.push({ curve: posThis.curve, ts: [posThis.t, 1] });
36
+ curvePieces.push({ curve: posThis.curve, ts: [posThis.t, 1] });
37
37
  if (posThis.curve.loop === posNext.curve.loop) {
38
- addSkippedBeziers(bezierPieces, posThis.curve, posNext.curve, posNext.t);
38
+ addSkippedBeziers(curvePieces, posThis.curve, posNext.curve, posNext.t);
39
39
  }
40
40
  }
41
41
  cpThis = cpThis.next;
42
42
  } while (cpThis !== cpEnd);
43
- return bezierPieces;
43
+ return curvePieces;
44
44
  }
45
45
  /**
46
46
  * @internal
47
47
  * Adds pieces of skipped beziers
48
48
  */
49
- function addSkippedBeziers(bezierPieces, curveStart, curveEnd, t1) {
49
+ function addSkippedBeziers(curvePieces, curveStart, curveEnd, t1) {
50
50
  let curveThis = curveStart;
51
51
  do {
52
52
  curveThis = curveThis.next;
53
53
  const tEnd = curveThis === curveEnd ? t1 : 1;
54
- bezierPieces.push({ curve: curveThis, ts: [0, tEnd] });
54
+ curvePieces.push({ curve: curveThis, ts: [0, tEnd] });
55
55
  } while (curveThis !== curveEnd);
56
56
  }
57
57
  export { getBoundaryPieceBeziers };
@@ -1 +1 @@
1
- {"version":3,"file":"get-boundary-piece-beziers.js","sourceRoot":"","sources":["../../src/mat/get-boundary-piece-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAG/D;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,OAAiB;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,iEAAiE;IACjE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC;QACA,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,iBAAiB;YAC/C,SAAS;QACb,CAAC;QAED,UAAU,GAAG,KAAK,CAAC;QAEnB,MAAM,OAAO,GAAG,MAAM,CAAM,EAAE,CAAC,YAAY,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;QAE5C,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,qBAAqB,CAAC,OAAO,CAAC;YAC9B,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAEjC,aAAa;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEnD,YAAY,CAAC,IAAI,CACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CACb,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAC/C,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC5C,iBAAiB,CACT,YAAY,EACZ,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC,QAAQ,MAAM,KAAK,KAAK,EAAE;IAG3B,OAAO,YAAY,CAAC;AACxB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,YAA0B,EAC1B,UAAiB,EACjB,QAAe,EACf,EAAU;IAEd,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG,CAAC;QACA,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,QAAQ,SAAS,KAAK,QAAQ,EAAE;AACrC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-boundary-piece-beziers.js","sourceRoot":"","sources":["../../src/mat/get-boundary-piece-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAG/D;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,OAAiB;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,iEAAiE;IACjE,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,GAAG,CAAC;QACA,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,iBAAiB;YAC/C,SAAS;QACb,CAAC;QAED,UAAU,GAAG,KAAK,CAAC;QAEnB,MAAM,OAAO,GAAG,MAAM,CAAM,EAAE,CAAC,YAAY,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;QAE5C,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,qBAAqB,CAAC,OAAO,CAAC;YAC9B,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAEjC,aAAa;QACjB,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;YAC/B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAEnD,WAAW,CAAC,IAAI,CACZ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,WAAW,CAAC,IAAI,CACZ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAC/C,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC5C,iBAAiB,CACT,WAAW,EACX,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,CAAC,CAChB,CAAC;YACN,CAAC;QACL,CAAC;QAED,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC,QAAQ,MAAM,KAAK,KAAK,EAAE;IAG3B,OAAO,WAAW,CAAC;AACvB,CAAC;AAGD;;;GAGG;AACH,SAAS,iBAAiB,CAClB,WAAyB,EACzB,UAAiB,EACjB,QAAe,EACf,EAAU;IAEd,IAAI,SAAS,GAAG,UAAU,CAAC;IAC3B,GAAG,CAAC;QACA,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,QAAQ,SAAS,KAAK,QAAQ,EAAE;AACrC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
package/node/mat/mat.d.ts CHANGED
@@ -3,7 +3,7 @@ import { MatMeta } from './mat-meta.js';
3
3
  /**
4
4
  * Represents a complete Medial Axis Transform (MAT).
5
5
  *
6
- * The MAT is fully described through its `CpNode` property. The [[cpTrees]]
6
+ * The MAT is fully described through its `CpNode` property. The `cpTrees`
7
7
  * property is only added to facilitate extension of the MAT, e.g. by adding
8
8
  * extra maximal disks and is typically not used. See `CpNode` for more
9
9
  * details.
@@ -1,9 +1,9 @@
1
1
  import { PointOnShape } from "./point-on-shape.js";
2
2
  /**
3
- * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
3
+ * Compares two `PointOnShape`s according to their cyclic ordering imposed
4
4
  * by their relative positions on the shape boundary.
5
- * @param a The first [[PointOnShape]].
6
- * @param b The second [[PointOnShape]].
5
+ * @param a The first `PointOnShape`.
6
+ * @param b The second `PointOnShape`.
7
7
  * @internal
8
8
  */
9
9
  declare function comparePoss(a: PointOnShape, b: PointOnShape): number;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Compares two [[PointOnShape]]s according to their cyclic ordering imposed
2
+ * Compares two `PointOnShape`s according to their cyclic ordering imposed
3
3
  * by their relative positions on the shape boundary.
4
- * @param a The first [[PointOnShape]].
5
- * @param b The second [[PointOnShape]].
4
+ * @param a The first `PointOnShape`.
5
+ * @param b The second `PointOnShape`.
6
6
  * @internal
7
7
  */
8
8
  function comparePoss(a, b) {
@@ -5,7 +5,7 @@ import { PointOnShape } from './point-on-shape.js';
5
5
  *
6
6
  * @param minCurvature If not Number.POSITIVE_INFINITY then the
7
7
  * circle radius will be limited to this value.
8
- * @param pos The [[PointOnShape]] identifying the point.
8
+ * @param pos The `PointOnShape` identifying the point.
9
9
  * @param useMaxRadius
10
10
  */
11
11
  declare function getOsculatingCircle(minCurvature: number, pos: PointOnShape, useMaxRadius?: boolean): Circle;
@@ -4,7 +4,7 @@ import { tangentExact, ddCurvature } from 'flo-bezier3';
4
4
  *
5
5
  * @param minCurvature If not Number.POSITIVE_INFINITY then the
6
6
  * circle radius will be limited to this value.
7
- * @param pos The [[PointOnShape]] identifying the point.
7
+ * @param pos The `PointOnShape` identifying the point.
8
8
  * @param useMaxRadius
9
9
  */
10
10
  function getOsculatingCircle(minCurvature, pos,
@@ -1,6 +1,6 @@
1
1
  import { PointOnShape } from "./point-on-shape.js";
2
2
  /**
3
- * Returns a human-readable string of the given [[PointOnShape]].
3
+ * Returns a human-readable string of the given `PointOnShape`.
4
4
  * For debugging only.
5
5
  * @internal
6
6
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Returns a human-readable string of the given [[PointOnShape]].
2
+ * Returns a human-readable string of the given `PointOnShape`.
3
3
  * For debugging only.
4
4
  * @internal
5
5
  */
@@ -1,12 +1,14 @@
1
- import { CpNode } from '../cp-node/cp-node.js';
2
- import { DualSet } from '../utils/dual-set.js';
1
+ import type { CpNode } from '../cp-node/cp-node.js';
2
+ import type { DualSet } from '../utils/dual-set.js';
3
3
  /**
4
- * @internal
5
4
  * Returns the set of Vertices passing the following test: walk the MAT tree and
6
5
  * keep all Vertices not in the current cull set and any Vertices that have a
7
6
  * non-culled node further down the line toward the tree leaves.
8
- * @param culls The CpNodes (referred to by circles) that should be culled.
9
- * @param maxCpNode The start CpNode which must reprsesent the maximal vertex.
7
+ *
8
+ * @param culls the `CpNode`s (referred to by circles) that should be culled
9
+ * @param maxCpNode the start `CpNode` which must represent the maximal vertex
10
+ *
11
+ * @internal
10
12
  */
11
13
  declare function cull(culls: DualSet<number, number>, maxCpNode: CpNode): void;
12
14
  export { cull };
package/node/sat/cull.js CHANGED
@@ -4,8 +4,9 @@ import { isTerminating } from '../cp-node/fs/is-terminating.js';
4
4
  import { DualSetFs } from '../utils/dual-set.js';
5
5
  const { isOnSameCircle } = CpNodeFs;
6
6
  /**
7
+ * Returns the set of non-trivial forward edges starting from the given `CpNode`.
7
8
  *
8
- * @param cpStart
9
+ * @param cpStart the start `CpNode`
9
10
  */
10
11
  function getNonTrivialForwardEdges(cpStart) {
11
12
  let cpNode = cpStart;
@@ -23,12 +24,14 @@ function getNonTrivialForwardEdges(cpStart) {
23
24
  return cps;
24
25
  }
25
26
  /**
26
- * @internal
27
27
  * Returns the set of Vertices passing the following test: walk the MAT tree and
28
28
  * keep all Vertices not in the current cull set and any Vertices that have a
29
29
  * non-culled node further down the line toward the tree leaves.
30
- * @param culls The CpNodes (referred to by circles) that should be culled.
31
- * @param maxCpNode The start CpNode which must reprsesent the maximal vertex.
30
+ *
31
+ * @param culls the `CpNode`s (referred to by circles) that should be culled
32
+ * @param maxCpNode the start `CpNode` which must represent the maximal vertex
33
+ *
34
+ * @internal
32
35
  */
33
36
  function cull(culls, maxCpNode) {
34
37
  const leaves = getLeaves(maxCpNode);
@@ -1 +1 @@
1
- {"version":3,"file":"cull.js","sourceRoot":"","sources":["../../src/sat/cull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cull.js","sourceRoot":"","sources":["../../src/sat/cull.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { Mat } from '../mat/mat.js';
8
8
  * boundary of the shape. The SAT is a simplification of the MAT that preserves
9
9
  * less detail the higher the applied scale factor. The severity at which noise
10
10
  * are removed depends on the local scale of the shape.
11
- * @param mat The Medial Axis Transform ([[Mat]]) on which to apply the SAT.
12
- * @param s The scale factor >= 1 (e.g. 1.3)
11
+ *
12
+ * @param mat the Medial Axis Transform (MAT) on which to apply the SAT
13
+ * @param s the scale factor >= 1 (e.g. 1.3)
13
14
  */
14
15
  declare function toScaleAxis(mat: Mat, s: number): Mat;
15
16
  export { toScaleAxis };
@@ -13,8 +13,9 @@ import { getSatCulls } from './get-sat-culls.js';
13
13
  * boundary of the shape. The SAT is a simplification of the MAT that preserves
14
14
  * less detail the higher the applied scale factor. The severity at which noise
15
15
  * are removed depends on the local scale of the shape.
16
- * @param mat The Medial Axis Transform ([[Mat]]) on which to apply the SAT.
17
- * @param s The scale factor >= 1 (e.g. 1.3)
16
+ *
17
+ * @param mat the Medial Axis Transform (MAT) on which to apply the SAT
18
+ * @param s the scale factor >= 1 (e.g. 1.3)
18
19
  */
19
20
  function toScaleAxis(mat, s) {
20
21
  let timingStart = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"to-scale-axis.js","sourceRoot":"","sources":["../../src/sat/to-scale-axis.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;;;GAWG;AACH,SAAS,WAAW,CAClB,GAAQ,EACR,CAAS;IAEV,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACpC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEpB,MAAM,GAAG,GAAQ;QACV,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACF,GAAG,GAAG,CAAC,IAAI;YACpB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;SAC1B;KACJ,CAAC;IAGL,YAAY,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,GAAG,CAAC;AACZ,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"to-scale-axis.js","sourceRoot":"","sources":["../../src/sat/to-scale-axis.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;;;;;;GAYG;AACH,SAAS,WAAW,CACZ,GAAQ,EACR,CAAS;IAEb,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEpB,MAAM,GAAG,GAAQ;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACF,GAAG,GAAG,CAAC,IAAI;YACX,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;SACnC;KACJ,CAAC;IAGF,YAAY,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,GAAG,CAAC;AACf,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "flo-mat",
3
3
  "sideEffects": false,
4
4
  "description": "Medial / Scale Axis Transform (MAT/SAT) Library.",
5
- "version": "3.0.7",
5
+ "version": "3.0.10",
6
6
  "author": {
7
7
  "name": "Floris Steenkamp"
8
8
  },
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "big-float-ts": "^4.0.2",
35
35
  "double-double": "^3.0.4",
36
- "flo-bezier3": "^6.0.7",
36
+ "flo-bezier3": "^6.0.8",
37
37
  "flo-boolean": "^5.0.3",
38
38
  "flo-draw": "^2.0.5",
39
39
  "flo-gauss-quadrature": "^2.1.4",
@@ -47,19 +47,19 @@
47
47
  "@swc/core": "^1.15.33",
48
48
  "@swc/jest": "^0.2.39",
49
49
  "@types/jest": "^30.0.0",
50
- "@types/node": "^25.9.0",
50
+ "@types/node": "^25.9.1",
51
51
  "jest": "^30.4.2",
52
52
  "jest-ts-webcompat-resolver": "^1.0.1",
53
53
  "c8": "^11.0.0",
54
54
  "chai": "^6.2.2",
55
55
  "circular-dependency-plugin": "^5.2.2",
56
- "mocha": "^11.7.5",
56
+ "mocha": "^11.7.6",
57
57
  "rimraf": "^6.1.3",
58
58
  "source-map-support": "^0.5.21",
59
59
  "ts-loader": "^9.5.7",
60
60
  "ts-node": "^10.9.2",
61
61
  "typescript": "^6.0.3",
62
- "webpack": "^5.106.2",
62
+ "webpack": "^5.107.1",
63
63
  "webpack-cli": "^7.0.2"
64
64
  },
65
65
  "scripts": {
@@ -5,31 +5,32 @@ import { cullByTightBoundingBox } from './cull-by-tight-boundary-box.js';
5
5
 
6
6
 
7
7
  /**
8
- * @internal
9
- * @param bezierPieces
8
+ * @param curvePieces
10
9
  * @param p
11
10
  * @param extreme
11
+ *
12
+ * @internal
12
13
  */
13
- function cullBezierPieces1(
14
- bezierPieces: CurvePiece[],
14
+ function cullCurvePieces1(
15
+ curvePieces: CurvePiece[],
15
16
  p: number[]) {
16
17
 
17
18
  const bestSquaredDistance = getBestDistanceSquared(
18
- bezierPieces, p
19
+ curvePieces, p
19
20
  );
20
- bezierPieces = cullByLooseBoundingBox(
21
- bezierPieces, p,
21
+ curvePieces = cullByLooseBoundingBox(
22
+ curvePieces, p,
22
23
  bestSquaredDistance
23
24
  );
24
25
 
25
- bezierPieces = cullByTightBoundingBox(
26
- bezierPieces, p,
26
+ curvePieces = cullByTightBoundingBox(
27
+ curvePieces, p,
27
28
  bestSquaredDistance
28
29
  );
29
30
 
30
31
 
31
- return bezierPieces;
32
+ return curvePieces;
32
33
  }
33
34
 
34
35
 
35
- export { cullBezierPieces1 }
36
+ export { cullCurvePieces1 }
@@ -8,20 +8,20 @@ import { getBoundingBox$ } from '../geometry/get-bounding-box-.js';
8
8
  * @internal
9
9
  * When checking distances, ignore all those with closest possible distance
10
10
  * further than 'bestSquaredDistance', i.e. cull them.
11
- * @param bezierPieces
11
+ * @param curvePieces
12
12
  * @param p
13
13
  * @param dSquared
14
14
  */
15
15
  function cullByLooseBoundingBox(
16
- bezierPieces: CurvePiece[],
16
+ curvePieces: CurvePiece[],
17
17
  p: number[],
18
18
  dSquared: number) {
19
19
 
20
- const candidateBezierPieces = [];
20
+ const candidateCurvePieces = [];
21
21
 
22
- for (let i=0; i<bezierPieces.length; i++) {
23
- const bezierPiece = bezierPieces[i];
24
- const ps = bezierPiece.curve.ps;
22
+ for (let i=0; i<curvePieces.length; i++) {
23
+ const curvePiece = curvePieces[i];
24
+ const ps = curvePiece.curve.ps;
25
25
 
26
26
  const boundingBox = getBoundingBox$(ps);
27
27
 
@@ -30,11 +30,11 @@ function cullByLooseBoundingBox(
30
30
  p
31
31
  );
32
32
  if (d <= dSquared) {
33
- candidateBezierPieces.push(bezierPiece);
33
+ candidateCurvePieces.push(curvePiece);
34
34
  }
35
35
  }
36
36
 
37
- return candidateBezierPieces;
37
+ return candidateCurvePieces;
38
38
  }
39
39
 
40
40
 
@@ -11,20 +11,20 @@ const getBoundingBoxTight_ = memoize(getBoundingBoxTight);
11
11
  * @internal
12
12
  * When checking distances, ignore all those with closest possible distance
13
13
  * further than 'bestSquaredDistance', i.e. cull them.
14
- * @param bezierPieces
14
+ * @param curvePieces
15
15
  * @param p
16
16
  * @param bestSquaredDistance
17
17
  */
18
18
  function cullByTightBoundingBox(
19
- bezierPieces: CurvePiece[],
19
+ curvePieces: CurvePiece[],
20
20
  p: number[],
21
21
  bestSquaredDistance: number) {
22
22
 
23
- const candidateBezierPieces = [];
23
+ const candidateCurvePieces = [];
24
24
 
25
- for (let i=0; i<bezierPieces.length; i++) {
26
- const bezierPiece = bezierPieces[i];
27
- const ps = bezierPiece.curve.ps;
25
+ for (let i=0; i<curvePieces.length; i++) {
26
+ const curvePiece = curvePieces[i];
27
+ const ps = curvePiece.curve.ps;
28
28
 
29
29
  const tightBoundingBox = getBoundingBoxTight_(ps);
30
30
  const d = getClosestSquaredDistanceToRotatedRect(
@@ -32,11 +32,11 @@ function cullByTightBoundingBox(
32
32
  p
33
33
  );
34
34
  if (d <= bestSquaredDistance) {
35
- candidateBezierPieces.push(bezierPiece);
35
+ candidateCurvePieces.push(curvePiece);
36
36
  }
37
37
  }
38
38
 
39
- return candidateBezierPieces;
39
+ return candidateCurvePieces;
40
40
  }
41
41
 
42
42
 
@@ -9,17 +9,17 @@ import { CurvePiece } from "../mat/curve-piece.js";
9
9
  * this distance away.
10
10
  */
11
11
  function getBestDistanceSquared(
12
- bezierPieces: CurvePiece[],
12
+ curvePieces: CurvePiece[],
13
13
  p: number[]) {
14
14
 
15
15
  let bestSquaredDistance = Number.POSITIVE_INFINITY;
16
- for (let i=0; i<bezierPieces.length; i++) {
17
- const bezierPiece = bezierPieces[i];
16
+ for (let i=0; i<curvePieces.length; i++) {
17
+ const curvePiece = curvePieces[i];
18
18
 
19
- const ps = bezierPiece.curve.ps;
19
+ const ps = curvePiece.curve.ps;
20
20
 
21
- const p1 = evalDeCasteljau(ps, bezierPiece.ts[0]);
22
- const p2 = evalDeCasteljau(ps, bezierPiece.ts[1]);
21
+ const p1 = evalDeCasteljau(ps, curvePiece.ts[0]);
22
+ const p2 = evalDeCasteljau(ps, curvePiece.ts[1]);
23
23
 
24
24
  const d = Math.min(
25
25
  squaredDistanceBetween(p, p1),
@@ -1,6 +1,6 @@
1
1
  import { CurvePiece } from '../mat/curve-piece.js';
2
2
  import { getPotentialClosestPointsOnCurveCertified } from './get-potential-closest-points-on-curve-certified.js';
3
- import { cullBezierPieces1 } from './cull-bezier-pieces.js';
3
+ import { cullCurvePieces1 } from './cull-bezier-pieces.js';
4
4
  import { Curve } from '../curve/curve.js';
5
5
  import { FootAndEndpointInfo } from './foot-and-endpoint-info.js';
6
6
  import { PointOnShape } from '../point-on-shape/point-on-shape.js';
@@ -13,7 +13,7 @@ import { createPos } from '../point-on-shape/create-pos.js';
13
13
  * bezier pieces, including the beziers actually checked after culling.
14
14
  *
15
15
  * @param pow
16
- * @param bezierPieces
16
+ * @param curvePieces
17
17
  * @param x
18
18
  * @param touchedCurve
19
19
  * @param t
@@ -22,24 +22,24 @@ import { createPos } from '../point-on-shape/create-pos.js';
22
22
  */
23
23
  function getCloseBoundaryPointsCertified(
24
24
  pow: number,
25
- bezierPieces: CurvePiece[],
25
+ curvePieces: CurvePiece[],
26
26
  x: number[],
27
27
  touchedCurve: Curve | undefined = undefined,
28
28
  t: number | undefined = undefined,
29
29
  for1Prong = false,
30
30
  angle = 0): PointOnShape[] {
31
31
 
32
- bezierPieces = cullBezierPieces1(bezierPieces, x);
32
+ curvePieces = cullCurvePieces1(curvePieces, x);
33
33
 
34
34
  const pInfoss: FootAndEndpointInfo[] = [];
35
- for (let i=0; i<bezierPieces.length; i++) {
36
- const bezierPiece = bezierPieces[i];
35
+ for (let i=0; i<curvePieces.length; i++) {
36
+ const curvePiece = curvePieces[i];
37
37
 
38
38
  const pInfos = getPotentialClosestPointsOnCurveCertified(
39
39
  pow,
40
- bezierPiece.curve,
40
+ curvePiece.curve,
41
41
  x,
42
- bezierPiece.ts,
42
+ curvePiece.ts,
43
43
  touchedCurve,
44
44
  t,
45
45
  for1Prong,