flo-mat 3.0.9 → 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 (99) hide show
  1. package/browser/index.js +193 -190
  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/fs/get-boundary-bezier-parts-to-next.d.ts +1 -1
  19. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.js +11 -16
  20. package/node/cp-node/fs/get-boundary-bezier-parts-to-next.js.map +1 -1
  21. package/node/cp-node/fs/get-boundary-beziers-between.js +4 -6
  22. package/node/cp-node/fs/get-boundary-beziers-between.js.map +1 -1
  23. package/node/cp-node/fs/get-boundary-beziers-to-next.d.ts +10 -1
  24. package/node/cp-node/fs/get-boundary-beziers-to-next.js +70 -35
  25. package/node/cp-node/fs/get-boundary-beziers-to-next.js.map +1 -1
  26. package/node/cp-node/fs/get-salience.js +2 -2
  27. package/node/cp-node/fs/get-salience.js.map +1 -1
  28. package/node/cp-node/fs/get-speed.js +0 -1
  29. package/node/cp-node/fs/get-speed.js.map +1 -1
  30. package/node/find-2-prong/cull-bezier-pieces.d.ts +4 -4
  31. package/node/find-2-prong/cull-bezier-pieces.js +9 -9
  32. package/node/find-2-prong/cull-bezier-pieces.js.map +1 -1
  33. package/node/find-2-prong/find-2-prong.js +8 -8
  34. package/node/find-2-prong/find-2-prong.js.map +1 -1
  35. package/node/find-2-prong/get-initial-bezier-pieces.d.ts +2 -2
  36. package/node/find-2-prong/get-initial-bezier-pieces.js +2 -2
  37. package/node/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
  38. package/node/find-2-prong/reduce-radius.d.ts +1 -1
  39. package/node/find-2-prong/reduce-radius.js +5 -5
  40. package/node/find-2-prong/reduce-radius.js.map +1 -1
  41. package/node/find-3-prong.ts/calc-better-x.d.ts +2 -2
  42. package/node/find-3-prong.ts/calc-better-x.js +3 -3
  43. package/node/find-3-prong.ts/calc-better-x.js.map +1 -1
  44. package/node/find-3-prong.ts/calc-initial-3-prong-center.d.ts +2 -2
  45. package/node/find-3-prong.ts/calc-initial-3-prong-center.js +3 -3
  46. package/node/find-3-prong.ts/calc-initial-3-prong-center.js.map +1 -1
  47. package/node/find-3-prong.ts/find-3-prong-for-delta3s.d.ts +2 -2
  48. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js +16 -16
  49. package/node/find-3-prong.ts/find-3-prong-for-delta3s.js.map +1 -1
  50. package/node/find-3-prong.ts/find-3-prong.js +2 -2
  51. package/node/find-3-prong.ts/find-3-prong.js.map +1 -1
  52. package/node/find-3-prong.ts/get-closest-points.d.ts +2 -2
  53. package/node/find-3-prong.ts/get-closest-points.js +4 -4
  54. package/node/find-3-prong.ts/get-closest-points.js.map +1 -1
  55. package/node/mat/get-boundary-piece-beziers.js +7 -7
  56. package/node/mat/get-boundary-piece-beziers.js.map +1 -1
  57. package/node/sat/cull.d.ts +7 -5
  58. package/node/sat/cull.js +7 -4
  59. package/node/sat/cull.js.map +1 -1
  60. package/node/sat/to-scale-axis.d.ts +3 -2
  61. package/node/sat/to-scale-axis.js +3 -2
  62. package/node/sat/to-scale-axis.js.map +1 -1
  63. package/package.json +5 -5
  64. package/src/closest-boundary-point/cull-bezier-pieces.ts +12 -11
  65. package/src/closest-boundary-point/cull-by-loose-bounding-box.ts +8 -8
  66. package/src/closest-boundary-point/cull-by-tight-boundary-box.ts +8 -8
  67. package/src/closest-boundary-point/get-best-distance-squared.ts +6 -6
  68. package/src/closest-boundary-point/get-close-boundary-points-certified.ts +8 -8
  69. package/src/cp-node/fs/get-boundary-bezier-parts-to-next.ts +12 -18
  70. package/src/cp-node/fs/get-boundary-beziers-between.ts +6 -7
  71. package/src/cp-node/fs/get-boundary-beziers-to-next.ts +79 -53
  72. package/src/cp-node/fs/get-salience.ts +2 -2
  73. package/src/cp-node/fs/get-speed.ts +1 -6
  74. package/src/curve/curve.ts +5 -5
  75. package/src/debug/functions/draw-elem/two-prong.ts +40 -40
  76. package/src/debug/functions/two-prong.ts +195 -195
  77. package/src/debug/two-prong-for-debugging.ts +26 -26
  78. package/src/find-2-prong/add-debug-info.ts +38 -38
  79. package/src/find-2-prong/cull-bezier-pieces.ts +10 -10
  80. package/src/find-2-prong/find-2-prong.ts +8 -8
  81. package/src/find-2-prong/get-initial-bezier-pieces.ts +2 -2
  82. package/src/find-2-prong/reduce-radius.ts +5 -5
  83. package/src/find-3-prong.ts/calc-better-x.ts +3 -3
  84. package/src/find-3-prong.ts/calc-initial-3-prong-center.ts +3 -3
  85. package/src/find-3-prong.ts/find-3-prong-for-delta3s.ts +16 -16
  86. package/src/find-3-prong.ts/find-3-prong.ts +2 -2
  87. package/src/find-3-prong.ts/get-closest-points.ts +4 -4
  88. package/src/find-mat/add-2-prongs-by-error.ts +7 -7
  89. package/src/index.ts +1 -1
  90. package/src/mat/get-boundary-piece-beziers.ts +7 -7
  91. package/src/mat/get-two-prong-type.ts +8 -8
  92. package/src/sat/cull.ts +10 -7
  93. package/src/sat/to-scale-axis.ts +18 -17
  94. package/src/utils/bezier-piece-to-bezier.ts +7 -7
  95. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.d.ts +0 -3
  96. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js +0 -6
  97. package/node/cp-node/fs/cp-nodes-to-boundary-beziers.js.map +0 -1
  98. package/src/closest-boundary-point/get-closest-boundary-point-certified.ts +0 -70
  99. package/src/cp-node/fs/cp-nodes-to-boundary-beziers.ts +0 -10
@@ -1,11 +1,11 @@
1
1
  import { distanceBetween, fromTo, interpolate, rotate, translate } from 'flo-vector2d';
2
2
  import { getOsculatingCircle } from '../point-on-shape/get-osculating-circle.js';
3
3
  import { findEquidistantPointOnLineDd } from './find-equidistant-point-on-line-dd.js';
4
- import { getInitialBezierPieces } from './get-initial-bezier-pieces.js';
4
+ import { getInitialCurvePieces } from './get-initial-bezier-pieces.js';
5
5
  import { getCloseBoundaryPointsCertified } from '../closest-boundary-point/get-close-boundary-points-certified.js';
6
6
  import { reduceRadius } from './reduce-radius.js';
7
7
  import { squaredDistanceBetweenDd } from './squared-distance-between-dd.js';
8
- import { cullBezierPieces2 } from './cull-bezier-pieces.js';
8
+ import { cullCurvePieces2 } from './cull-bezier-pieces.js';
9
9
  import { add1Prong } from './add-1-prong.js';
10
10
  import { createPos } from '../point-on-shape/create-pos.js';
11
11
  import { calcSeperationTolerance } from './calc-seperation-tolerance.js';
@@ -47,12 +47,12 @@ function find2Prong(meta, isHoleClosing, for1Prong, angle, y) {
47
47
  const p = y.p;
48
48
  // The boundary piece that should contain the other point of
49
49
  // the 2-prong circle. (Defined by start and end points).
50
- let bezierPieces = getInitialBezierPieces(angle, isHoleClosing, loop, loops, meta, y, { center: xO, radius: rO });
51
- // console.log(bezierPieces.length);
50
+ let curvePieces = getInitialCurvePieces(angle, isHoleClosing, loop, loops, meta, y, { center: xO, radius: rO });
51
+ // console.log(curvePieces.length);
52
52
  /** The center of the two-prong (successively refined) */
53
53
  let x = xO;
54
54
  // The lines below is an optimization.
55
- const r_ = sqrt(reduceRadius(maxCoordinate, bezierPieces, p, xO));
55
+ const r_ = sqrt(reduceRadius(maxCoordinate, curvePieces, p, xO));
56
56
  if (rO > r_) {
57
57
  x = interpolate(p, xO, r_ / rO);
58
58
  }
@@ -63,11 +63,11 @@ function find2Prong(meta, isHoleClosing, for1Prong, angle, y) {
63
63
  while (i < MAX_ITERATIONS) {
64
64
  const xy = squaredDistanceBetweenDd(x, y.p);
65
65
  if (i < 2) {
66
- bezierPieces = cullBezierPieces2(bezierPieces, x, xy);
66
+ curvePieces = cullCurvePieces2(curvePieces, x, xy);
67
67
  }
68
68
  const pow = max(0, ceil(log2(maxCoordinate / xy))) + 1; // determines accuracy
69
69
  // console.log(pow);
70
- const _zs = getCloseBoundaryPointsCertified(pow, bezierPieces, x, y.curve, y.t, for1Prong && i == 0 && rO !== 1 / minCurvature, angle).map(info => createPos(info.curve, info.t, false));
70
+ const _zs = getCloseBoundaryPointsCertified(pow, curvePieces, x, y.curve, y.t, for1Prong && i == 0 && rO !== 1 / minCurvature, angle).map(info => createPos(info.curve, info.t, false));
71
71
  let maxD = Number.NEGATIVE_INFINITY;
72
72
  let maxPos = undefined;
73
73
  zs = [];
@@ -125,7 +125,7 @@ function find2Prong(meta, isHoleClosing, for1Prong, angle, y) {
125
125
  }
126
126
  }
127
127
  const circle = { center: x, radius: distanceBetween(x, z.p) };
128
- // if (typeof _debug_ !== 'undefined') { addDebugInfo(bezierPieces, false, x, y, z, circle!, δ!, xs, isHoleClosing); }
128
+ // if (typeof _debug_ !== 'undefined') { addDebugInfo(curvePieces, false, x, y, z, circle!, δ!, xs, isHoleClosing); }
129
129
  // return { circle, zs };
130
130
  // zs = zs.filter(z => z !== undefined)
131
131
  return { circle, zs: [z] };
@@ -1 +1 @@
1
- {"version":3,"file":"find-2-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/find-2-prong.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-2-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/find-2-prong.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import { PointOnShape } from '../point-on-shape/point-on-shape.js';
4
4
  import { Circle } from '../geometry/circle.js';
5
5
  import { MatMeta } from '../index.js';
6
6
  /** @internal */
7
- declare function getInitialBezierPieces(angle: number, isHoleClosing: boolean, loop: Loop, loops: Loop[], meta: MatMeta, y: PointOnShape, circle: Circle): CurvePiece[];
8
- export { getInitialBezierPieces };
7
+ declare function getInitialCurvePieces(angle: number, isHoleClosing: boolean, loop: Loop, loops: Loop[], meta: MatMeta, y: PointOnShape, circle: Circle): CurvePiece[];
8
+ export { getInitialCurvePieces };
@@ -4,7 +4,7 @@ import { calcPosOrder } from '../point-on-shape/calc-pos-order.js';
4
4
  import { isPosCorner } from '../point-on-shape/is-pos-corner.js';
5
5
  import { getPosCorner } from '../point-on-shape/get-pos-corner.js';
6
6
  /** @internal */
7
- function getInitialBezierPieces(angle, isHoleClosing, loop, loops,
7
+ function getInitialCurvePieces(angle, isHoleClosing, loop, loops,
8
8
  // cpTrees: Map<Loop,LlRbTree<CpNode>>,
9
9
  meta, y, circle) {
10
10
  const { cpTrees } = meta;
@@ -31,5 +31,5 @@ meta, y, circle) {
31
31
  }
32
32
  return getBoundaryPieceBeziers([cpNode, cpNode]);
33
33
  }
34
- export { getInitialBezierPieces };
34
+ export { getInitialCurvePieces };
35
35
  //# sourceMappingURL=get-initial-bezier-pieces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-initial-bezier-pieces.js","sourceRoot":"","sources":["../../src/find-2-prong/get-initial-bezier-pieces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAI/E,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,gBAAgB;AAChB,SAAS,sBAAsB,CACvB,KAAa,EACb,aAAsB,EACtB,IAAU,EACV,KAAa;AACb,uCAAuC;AACvC,IAAa,EACb,CAAe,EACf,MAAc;IAElB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,KAAK;aACX,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;aAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;aACvB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM;QAClD,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACX,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM;QACP,8DAA8D;QAC9D,kEAAkE;QAClE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,CAAC;QACC,OAAO,IAAI,CAAC,MAAM;aACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,uBAAuB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAGD,OAAO,EAAE,sBAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"get-initial-bezier-pieces.js","sourceRoot":"","sources":["../../src/find-2-prong/get-initial-bezier-pieces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAI/E,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAInE,gBAAgB;AAChB,SAAS,qBAAqB,CACtB,KAAa,EACb,aAAsB,EACtB,IAAU,EACV,KAAa;AACb,uCAAuC;AACvC,IAAa,EACb,CAAe,EACf,MAAc;IAElB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,KAAK;aACX,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;aAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;aACvB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM;QAClD,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACX,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM;QACP,8DAA8D;QAC9D,kEAAkE;QAClE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAC/B,CAAC;QACC,OAAO,IAAI,CAAC,MAAM;aACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,uBAAuB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -4,5 +4,5 @@ import { CurvePiece } from '../mat/curve-piece.js';
4
4
  *
5
5
  * Reduces the circle radius initially as an optimization step.
6
6
  */
7
- declare function reduceRadius(extreme: number, bezierPieces: CurvePiece[], p: number[], x: number[]): number;
7
+ declare function reduceRadius(extreme: number, curvePieces: CurvePiece[], p: number[], x: number[]): number;
8
8
  export { reduceRadius };
@@ -5,16 +5,16 @@ import { dot, lineLineIntersection, squaredDistanceBetween } from "flo-vector2d"
5
5
  *
6
6
  * Reduces the circle radius initially as an optimization step.
7
7
  */
8
- function reduceRadius(extreme, bezierPieces, p, x) {
8
+ function reduceRadius(extreme, curvePieces, p, x) {
9
9
  const TOLERANCE = 1 + 2 ** -10;
10
10
  let minRadius = Number.POSITIVE_INFINITY;
11
- for (let i = 0; i < bezierPieces.length; i++) {
12
- const bezierPiece = bezierPieces[i];
13
- const ps = bezierPiece.curve.ps;
11
+ for (let i = 0; i < curvePieces.length; i++) {
12
+ const curvePiece = curvePieces[i];
13
+ const ps = curvePiece.curve.ps;
14
14
  // let min = Number.POSITIVE_INFINITY;
15
15
  const num = 2;
16
16
  for (let j = 0; j < (num + 1); j++) {
17
- const p_ = evalDeCasteljau(ps, bezierPiece.ts[j / num]);
17
+ const p_ = evalDeCasteljau(ps, curvePiece.ts[j / num]);
18
18
  const cc = getCircleCenterFrom2PointsAndNormal(extreme, p, x, p_);
19
19
  if (cc) {
20
20
  let r = squaredDistanceBetween(p, cc);
@@ -1 +1 @@
1
- {"version":3,"file":"reduce-radius.js","sourceRoot":"","sources":["../../src/find-2-prong/reduce-radius.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reduce-radius.js","sourceRoot":"","sources":["../../src/find-2-prong/reduce-radius.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@ import { CurvePiece } from '../mat/curve-piece.js';
5
5
  * Find new x and ps that are a better estimate of the 3-prong circle.
6
6
  * The potential function, V, is defined as the distance to the actual 3 prong
7
7
  * circle center.
8
- * @param bezierPiece3s The three boundary pieces, each of which should contain
8
+ * @param curvePiece3s The three boundary pieces, each of which should contain
9
9
  * a point of the 3-prong to be found.
10
10
  * @param x The currently best guess at the center of the 3-prong circle.
11
11
  * @param vectorToZeroV
12
12
  * @param extreme
13
13
  */
14
- declare function calcBetterX(bezierPiece3s: CurvePiece[][], x: number[], vectorToZeroV: number[]): {
14
+ declare function calcBetterX(curvePiece3s: CurvePiece[][], x: number[], vectorToZeroV: number[]): {
15
15
  newX: number[];
16
16
  newV: number;
17
17
  newPoss: PointOnShape[];
@@ -5,13 +5,13 @@ import { getClosestPoints } from './get-closest-points.js';
5
5
  * Find new x and ps that are a better estimate of the 3-prong circle.
6
6
  * The potential function, V, is defined as the distance to the actual 3 prong
7
7
  * circle center.
8
- * @param bezierPiece3s The three boundary pieces, each of which should contain
8
+ * @param curvePiece3s The three boundary pieces, each of which should contain
9
9
  * a point of the 3-prong to be found.
10
10
  * @param x The currently best guess at the center of the 3-prong circle.
11
11
  * @param vectorToZeroV
12
12
  * @param extreme
13
13
  */
14
- function calcBetterX(bezierPiece3s, x, vectorToZeroV) {
14
+ function calcBetterX(curvePiece3s, x, vectorToZeroV) {
15
15
  const V = len(vectorToZeroV);
16
16
  let nu = 1;
17
17
  let better;
@@ -22,7 +22,7 @@ function calcBetterX(bezierPiece3s, x, vectorToZeroV) {
22
22
  do {
23
23
  const shift = scale(vectorToZeroV, nu);
24
24
  newX = translate(shift, x);
25
- newPoss = getClosestPoints(newX, bezierPiece3s);
25
+ newPoss = getClosestPoints(newX, curvePiece3s);
26
26
  // Point of zero V
27
27
  const newCircleCenter = circumCenter(newPoss.map(pos => pos.p));
28
28
  const newVectorToZeroV = fromTo(newX, newCircleCenter);
@@ -1 +1 @@
1
- {"version":3,"file":"calc-better-x.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/calc-better-x.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CACZ,aAA6B,EAC7B,CAAW,EACX,aAAuB;IAE3B,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,MAAM,CAAC;IACX,IAAI,IAAI,CAAC;IACT,IAAI,OAAuB,CAAC;IAC5B,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IACvB,GAAG,CAAC;QACA,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAG3B,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAEhD,kBAAkB;QAClB,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACvD,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE7B,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAElB,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;QAEV,CAAC,EAAE,CAAC;IACR,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;IAE3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAClC,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"calc-better-x.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/calc-better-x.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CACZ,YAA4B,EAC5B,CAAW,EACX,aAAuB;IAE3B,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;IAE7B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,MAAM,CAAC;IACX,IAAI,IAAI,CAAC;IACT,IAAI,OAAuB,CAAC;IAC5B,IAAI,IAAI,CAAC;IACT,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IACvB,GAAG,CAAC;QACA,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAG3B,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE/C,kBAAkB;QAClB,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACvD,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE7B,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;QAElB,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;QAEV,CAAC,EAAE,CAAC;IACR,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;IAE3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAClC,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -6,8 +6,8 @@ import { CurvePiece } from '../mat/curve-piece.js';
6
6
  * must be within the shape.
7
7
  * @param δ3s - The three boundary pieces of which we need to find the three
8
8
  * 3-prong points.
9
- * @param bezierPiece3s
9
+ * @param curvePiece3s
10
10
  * @param extreme
11
11
  */
12
- declare function calcInitial3ProngCenter(maxCoordinate: number, δ3s: CpNode[][], bezierPiece3s: CurvePiece[][]): number[];
12
+ declare function calcInitial3ProngCenter(maxCoordinate: number, δ3s: CpNode[][], curvePiece3s: CurvePiece[][]): number[];
13
13
  export { calcInitial3ProngCenter };
@@ -8,14 +8,14 @@ const { max, ceil, log2 } = Math;
8
8
  * must be within the shape.
9
9
  * @param δ3s - The three boundary pieces of which we need to find the three
10
10
  * 3-prong points.
11
- * @param bezierPiece3s
11
+ * @param curvePiece3s
12
12
  * @param extreme
13
13
  */
14
- function calcInitial3ProngCenter(maxCoordinate, δ3s, bezierPiece3s) {
14
+ function calcInitial3ProngCenter(maxCoordinate, δ3s, curvePiece3s) {
15
15
  const circle = δ3s[0][0].cp.circle;
16
16
  const twoProngCircleCenter = circle.center;
17
17
  const pow = max(0, ceil(log2(maxCoordinate / circle.radius))) + 1; // determines accuracy;
18
- const pos = getCloseBoundaryPointsCertified(pow, bezierPiece3s[1], twoProngCircleCenter)[0];
18
+ const pos = getCloseBoundaryPointsCertified(pow, curvePiece3s[1], twoProngCircleCenter)[0];
19
19
  const meanPoints = [
20
20
  δ3s[0][0].cp.pointOnShape.p,
21
21
  pos.p,
@@ -1 +1 @@
1
- {"version":3,"file":"calc-initial-3-prong-center.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/calc-initial-3-prong-center.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AAGnH,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAEjC;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CACxB,aAAqB,EACrB,GAAe,EACf,aAA6B;IAEjC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACnC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3C,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,uBAAuB;IACxF,MAAM,GAAG,GAAG,+BAA+B,CACvC,GAAG,EACH,aAAa,CAAC,CAAC,CAAC,EAChB,oBAAoB,CACvB,CAAC,CAAC,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG;QACf,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC3B,GAAG,CAAC,CAAC;QACL,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;KAC9B,CAAC;IAEF,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"calc-initial-3-prong-center.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/calc-initial-3-prong-center.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AAGnH,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAEjC;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CACxB,aAAqB,EACrB,GAAe,EACf,YAA4B;IAEhC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IACnC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC;IAE3C,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,uBAAuB;IACxF,MAAM,GAAG,GAAG,+BAA+B,CACvC,GAAG,EACH,YAAY,CAAC,CAAC,CAAC,EACf,oBAAoB,CACvB,CAAC,CAAC,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG;QACf,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC3B,GAAG,CAAC,CAAC;QACL,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;KAC9B,CAAC;IAEF,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
@@ -6,11 +6,11 @@ import { PointOnShape } from '../point-on-shape/point-on-shape.js';
6
6
  * Finds a 3-prong using only the 3 given δs.
7
7
  * @param δs The boundary pieces
8
8
  * @param idx δ identifier
9
- * @param bezierPiecess
9
+ * @param curvePiecess
10
10
  * @param maxCoordinate The maximum coordinate value used to calculate floating point
11
11
  * tolerances.
12
12
  */
13
- declare function find3ProngForDelta3s(δs: CpNode[][], idx: number, k: number, bezierPiecess: CurvePiece[][], maxCoordinate: number): {
13
+ declare function find3ProngForDelta3s(δs: CpNode[][], idx: number, k: number, curvePiecess: CurvePiece[][], maxCoordinate: number): {
14
14
  poss: PointOnShape[];
15
15
  circle: {
16
16
  center: number[];
@@ -16,11 +16,11 @@ const calcVectorToZeroV_StraightToIt = fromTo;
16
16
  * Finds a 3-prong using only the 3 given δs.
17
17
  * @param δs The boundary pieces
18
18
  * @param idx δ identifier
19
- * @param bezierPiecess
19
+ * @param curvePiecess
20
20
  * @param maxCoordinate The maximum coordinate value used to calculate floating point
21
21
  * tolerances.
22
22
  */
23
- function find3ProngForDelta3s(δs, idx, k, bezierPiecess, maxCoordinate) {
23
+ function find3ProngForDelta3s(δs, idx, k, curvePiecess, maxCoordinate) {
24
24
  const TOLERANCE = 2 ** -32 * maxCoordinate;
25
25
  const MAX_ITERATIONS = 10;
26
26
  const δs_ = [
@@ -28,34 +28,34 @@ function find3ProngForDelta3s(δs, idx, k, bezierPiecess, maxCoordinate) {
28
28
  δs[idx],
29
29
  δs[δs.length - 1]
30
30
  ];
31
- const bezierPieces_ = [
32
- bezierPiecess[0],
33
- bezierPiecess[idx],
34
- bezierPiecess[δs.length - 1]
31
+ const curvePieces_ = [
32
+ curvePiecess[0],
33
+ curvePiecess[idx],
34
+ curvePiecess[δs.length - 1]
35
35
  ];
36
36
  const δ3ss = [
37
37
  [δs_[0], δs_[1], δs_[2]],
38
38
  [δs_[1], δs_[2], δs_[0]],
39
39
  [δs_[2], δs_[0], δs_[1]],
40
40
  ];
41
- const bezierPiecess_ = [
42
- [bezierPieces_[0], bezierPieces_[1], bezierPieces_[2]],
43
- [bezierPieces_[1], bezierPieces_[2], bezierPieces_[0]],
44
- [bezierPieces_[2], bezierPieces_[0], bezierPieces_[1]],
41
+ const curvePiecess_ = [
42
+ [curvePieces_[0], curvePieces_[1], curvePieces_[2]],
43
+ [curvePieces_[1], curvePieces_[2], curvePieces_[0]],
44
+ [curvePieces_[2], curvePieces_[0], curvePieces_[1]],
45
45
  ];
46
46
  const δ3s = δ3ss[k];
47
- const bezierPiece3s = bezierPiecess_[k];
47
+ const curvePiece3s = curvePiecess_[k];
48
48
  if (isSharp(δ3s[0][0])) {
49
49
  return undefined;
50
50
  }
51
51
  let poss = undefined;
52
52
  let circumCenter_;
53
53
  let j = 0; // Safeguard for slow convergence
54
- let x = calcInitial3ProngCenter(maxCoordinate, δ3s, bezierPiece3s);
54
+ let x = calcInitial3ProngCenter(maxCoordinate, δ3s, curvePiece3s);
55
55
  let tolerance = Number.POSITIVE_INFINITY;
56
56
  while (tolerance > TOLERANCE && j < MAX_ITERATIONS) {
57
57
  j++;
58
- poss = getClosestPoints(x, bezierPiece3s);
58
+ poss = getClosestPoints(x, curvePiece3s);
59
59
  if (!Number.isFinite(x[0]) || !Number.isFinite(x[1])) {
60
60
  // TODO - the code can be cleaned up and sped up a lot if we don't
61
61
  // use this function as is but instead use δs[0] and δs[2] as is
@@ -72,7 +72,7 @@ function find3ProngForDelta3s(δs, idx, k, bezierPiecess, maxCoordinate) {
72
72
  // loop. This check, for instance, would be eliminated completely.
73
73
  return undefined;
74
74
  }
75
- const upds = calcBetterX(bezierPiece3s, x, vectorToZeroV);
75
+ const upds = calcBetterX(curvePiece3s, x, vectorToZeroV);
76
76
  x = upds.newX;
77
77
  poss = upds.newPoss;
78
78
  const V = len(vectorToZeroV); // The 'potential'
@@ -133,9 +133,9 @@ function find3ProngForDelta3s(δs, idx, k, bezierPiecess, maxCoordinate) {
133
133
  // candidate for the 3-prong.
134
134
  //-------------------------------------------------------------------------
135
135
  const closestDs = [];
136
- for (let i = 0; i < bezierPiecess.length; i++) {
136
+ for (let i = 0; i < curvePiecess.length; i++) {
137
137
  const p = getCloseBoundaryPointsCertified(5, // TODO - see find-2-prong
138
- bezierPiecess[i], x)[0];
138
+ curvePiecess[i], x)[0];
139
139
  closestDs.push(distanceBetween(p.p, x));
140
140
  }
141
141
  const closestD = Math.min(...closestDs);
@@ -1 +1 @@
1
- {"version":3,"file":"find-3-prong-for-delta3s.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/find-3-prong-for-delta3s.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-3-prong-for-delta3s.js","sourceRoot":"","sources":["../../src/find-3-prong.ts/find-3-prong-for-delta3s.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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"}
@@ -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":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;AAGpC;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,OAAe;IAC9C,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC;IACjC,OAAO,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;IAC/B,CAAC;IAED,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,GAAG,CAAC;QACA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;IACjC,CAAC,QAAQ,MAAM,KAAK,KAAK,EAAC;IAE1B,OAAO,GAAG,CAAC;AACf,CAAC;AAGD;;;;;;;;;GASG;AACH,SAAS,IAAI,CACL,KAA8B,EAC9B,SAAiB;IAErB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAG,CAAC;QAE3B,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,qBAAqB;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,SAAS;QACb,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc;QAC9C,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,OAAO,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;YAErB,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,qDAAqD;gBACrD,OAAO,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;gBACjC,CAAC;gBACD,GAAG,GAAG,IAAI,CAAC;YACf,CAAC;iBAAM,IAAI,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3C,GAAG,GAAG,IAAI,CAAC,CAAC,0CAA0C;YAC1D,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBAE9C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnB,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;YAChC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;YAClB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;YAElB,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC;YAC1B,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC;QAC9B,CAAC;IACL,CAAC;AACL,CAAC;AAGD,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -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"}