flo-mat 3.0.10 → 3.0.11

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 (178) hide show
  1. package/__tests__/jsog/check-jsog-eql-calc.spec.ts +81 -0
  2. package/__tests__/jsog/decode-jsog.ts +85 -0
  3. package/__tests__/jsog/get-mats1.ts +41 -0
  4. package/__tests__/{cp-node/fs → jsog}/mat-dummys.ts +51 -564
  5. package/__tests__/jsog/to-jsog-breath-first.ts +107 -0
  6. package/__tests__/jsog/to-jsog-depth-first.ts +55 -0
  7. package/browser/index.js +87 -46
  8. package/browser/index.min.js +1 -1
  9. package/node/add-n-prong.ts/join-spokes.js.map +1 -1
  10. package/node/closest-boundary-point/dd-deflate-with-running-error.js.map +1 -1
  11. package/node/closest-boundary-point/get-close-boundary-points-certified.js.map +1 -1
  12. package/node/contact-point/contact-point.js.map +1 -1
  13. package/node/corner/get-corner.js.map +1 -1
  14. package/node/corner/get-interface-ccw.js.map +1 -1
  15. package/node/cp-node/cp-node-fs.d.ts +2 -1
  16. package/node/cp-node/cp-node-fs.js +1 -2
  17. package/node/cp-node/cp-node-fs.js.map +1 -1
  18. package/node/cp-node/fs/cp-node-comparator.d.ts +3 -0
  19. package/node/cp-node/fs/cp-node-comparator.js +6 -0
  20. package/node/cp-node/fs/cp-node-comparator.js.map +1 -0
  21. package/node/cp-node/fs/find-first.js.map +1 -1
  22. package/node/cp-node/fs/get-all-on-loop.js.map +1 -1
  23. package/node/cp-node/fs/get-branch-beziers.js.map +1 -1
  24. package/node/cp-node/fs/get-branch.js.map +1 -1
  25. package/node/cp-node/fs/get-children.js.map +1 -1
  26. package/node/cp-node/fs/get-first-exit.js.map +1 -1
  27. package/node/cp-node/fs/get-mat-curve-to-next.js.map +1 -1
  28. package/node/cp-node/fs/get-mat-curves-between.js.map +1 -1
  29. package/node/cp-node/fs/get-prong-count.js.map +1 -1
  30. package/node/cp-node/fs/get-real-prong-count.js.map +1 -1
  31. package/node/cp-node/fs/get-vertex-forward-children.js.map +1 -1
  32. package/node/cp-node/fs/is-fully-terminating.d.ts +1 -1
  33. package/node/cp-node/fs/is-fully-terminating.js.map +1 -1
  34. package/node/cp-node/fs/is-one-prong.js.map +1 -1
  35. package/node/cp-node/fs/is-sharp.js.map +1 -1
  36. package/node/cp-node/fs/is-terminating.js.map +1 -1
  37. package/node/cp-node/fs/traverse-cp.js.map +1 -1
  38. package/node/cp-node/fs/traverse-edges.js.map +1 -1
  39. package/node/cp-node/fs/traverse-vertices.js.map +1 -1
  40. package/node/debug/functions/draw-elem/bounding-hull.js.map +1 -1
  41. package/node/debug/functions/draw-elem/draw-cp-node.js +1 -1
  42. package/node/debug/functions/draw-elem/draw-cp-node.js.map +1 -1
  43. package/node/debug/functions/draw-elem/draw-cull.js.map +1 -1
  44. package/node/debug/functions/draw-elem/draw-dull-corner.js.map +1 -1
  45. package/node/debug/functions/draw-elem/draw-elem.js.map +1 -1
  46. package/node/debug/functions/draw-elem/draw-leaves.js.map +1 -1
  47. package/node/debug/functions/draw-elem/draw-loose-bounding-box.js.map +1 -1
  48. package/node/debug/functions/draw-elem/draw-max-vertex.js.map +1 -1
  49. package/node/debug/functions/draw-elem/draw-min-y.js.map +1 -1
  50. package/node/debug/functions/draw-elem/draw-one-prong-at-dull-corner.js.map +1 -1
  51. package/node/debug/functions/draw-elem/draw-one-prong.js.map +1 -1
  52. package/node/debug/functions/draw-elem/draw-sharp-corner.js.map +1 -1
  53. package/node/debug/functions/draw-elem/draw-speed.js.map +1 -1
  54. package/node/debug/functions/draw-elem/draw-three-prong.js.map +1 -1
  55. package/node/debug/functions/draw-elem/draw-tight-bounding-box.js.map +1 -1
  56. package/node/debug/functions/draw-elem/draw-two-prong.js.map +1 -1
  57. package/node/debug/functions/draw-elem/draw-vertex.js.map +1 -1
  58. package/node/debug/functions/general.js.map +1 -1
  59. package/node/find-2-prong/add-1-prong.js.map +1 -1
  60. package/node/find-2-prong/find-2-prong.js.map +1 -1
  61. package/node/find-2-prong/find-equidistant-point-on-line-dd.js.map +1 -1
  62. package/node/find-3-prong.ts/find-3-prong.js.map +1 -1
  63. package/node/find-3-prong.ts/find-and-add-3-prong.js.map +1 -1
  64. package/node/find-3-prong.ts/find-and-add-3-prongs.js.map +1 -1
  65. package/node/find-mat/find-mats.js.map +1 -1
  66. package/node/geometry/get-closest-square-distance-to-rect.js.map +1 -1
  67. package/node/geometry/get-closest-squared-distance-to-rotated-rect.js.map +1 -1
  68. package/node/index.d.ts +35 -1
  69. package/node/index.js +36 -1
  70. package/node/index.js.map +1 -1
  71. package/node/mat/create-new-cp-tree.js.map +1 -1
  72. package/node/mat/get-largest-vertex.js.map +1 -1
  73. package/node/mat/trim-mat.js.map +1 -1
  74. package/node/memoize-primitive.js.map +1 -1
  75. package/node/sat/add-debug-info.js.map +1 -1
  76. package/node/sat/get-leaves.js.map +1 -1
  77. package/node/svg/get-loop-bounds.js.map +1 -1
  78. package/node/svg/get-min-y-pos.js.map +1 -1
  79. package/node/sweep-line/sweep-line.js.map +1 -1
  80. package/package.json +2 -2
  81. package/src/add-n-prong.ts/join-spokes.ts +11 -11
  82. package/src/closest-boundary-point/dd-deflate-with-running-error.ts +22 -22
  83. package/src/closest-boundary-point/get-close-boundary-points-certified.ts +38 -38
  84. package/src/contact-point/contact-point.ts +13 -13
  85. package/src/corner/get-corner.ts +39 -39
  86. package/src/corner/get-interface-ccw.ts +3 -3
  87. package/src/cp-node/cp-node-fs.ts +132 -135
  88. package/src/cp-node/cp-node.ts +30 -30
  89. package/src/cp-node/fs/clone.ts +4 -4
  90. package/src/cp-node/fs/cp-node-comparator.ts +13 -0
  91. package/src/cp-node/fs/find-first.ts +6 -6
  92. package/src/cp-node/fs/get-all-on-loop.ts +1 -1
  93. package/src/cp-node/fs/get-branch-beziers.ts +1 -1
  94. package/src/cp-node/fs/get-branch.ts +1 -1
  95. package/src/cp-node/fs/get-children.ts +8 -8
  96. package/src/cp-node/fs/get-first-exit.ts +11 -11
  97. package/src/cp-node/fs/get-mat-curve-to-next.ts +1 -1
  98. package/src/cp-node/fs/get-mat-curves-between.ts +1 -1
  99. package/src/cp-node/fs/get-prong-count.ts +8 -8
  100. package/src/cp-node/fs/get-real-prong-count.ts +3 -3
  101. package/src/cp-node/fs/get-vertex-forward-children.ts +10 -10
  102. package/src/cp-node/fs/is-fully-terminating.ts +3 -3
  103. package/src/cp-node/fs/is-one-prong.ts +8 -8
  104. package/src/cp-node/fs/is-sharp.ts +1 -1
  105. package/src/cp-node/fs/is-terminating.ts +1 -1
  106. package/src/cp-node/fs/iterate-all-on-loop.ts +6 -6
  107. package/src/cp-node/fs/traverse-all-forward.ts +11 -11
  108. package/src/cp-node/fs/traverse-cp.ts +19 -17
  109. package/src/cp-node/fs/traverse-edges.ts +10 -10
  110. package/src/cp-node/fs/traverse-vertices.ts +17 -17
  111. package/src/curve/curve.ts +26 -26
  112. package/src/debug/functions/cmp-cp-on-delta.ts +1 -1
  113. package/src/debug/functions/draw-elem/bounding-hull.ts +2 -2
  114. package/src/debug/functions/draw-elem/culls.ts +2 -2
  115. package/src/debug/functions/draw-elem/draw-cp-node.ts +30 -30
  116. package/src/debug/functions/draw-elem/draw-cull.ts +2 -2
  117. package/src/debug/functions/draw-elem/draw-dull-corner.ts +7 -7
  118. package/src/debug/functions/draw-elem/draw-elem.ts +28 -28
  119. package/src/debug/functions/draw-elem/draw-leaves.ts +12 -12
  120. package/src/debug/functions/draw-elem/draw-loose-bounding-box.ts +7 -7
  121. package/src/debug/functions/draw-elem/draw-max-vertex.ts +2 -2
  122. package/src/debug/functions/draw-elem/draw-min-y.ts +2 -2
  123. package/src/debug/functions/draw-elem/draw-one-prong-at-dull-corner.ts +1 -1
  124. package/src/debug/functions/draw-elem/draw-one-prong.ts +1 -1
  125. package/src/debug/functions/draw-elem/draw-sharp-corner.ts +6 -6
  126. package/src/debug/functions/draw-elem/draw-speed.ts +2 -2
  127. package/src/debug/functions/draw-elem/draw-three-prong.ts +28 -28
  128. package/src/debug/functions/draw-elem/draw-tight-bounding-box.ts +4 -4
  129. package/src/debug/functions/draw-elem/draw-two-prong.ts +51 -51
  130. package/src/debug/functions/draw-elem/draw-vertex.ts +12 -12
  131. package/src/debug/functions/draw-elem/dull-corner.ts +7 -7
  132. package/src/debug/functions/draw-elem/leaves.ts +2 -2
  133. package/src/debug/functions/draw-elem/loose-bounding-box.ts +7 -7
  134. package/src/debug/functions/draw-elem/max-vertex.ts +2 -2
  135. package/src/debug/functions/draw-elem/min-y.ts +2 -2
  136. package/src/debug/functions/draw-elem/one-prong-at-dull-corner.ts +1 -1
  137. package/src/debug/functions/draw-elem/one-prong.ts +1 -1
  138. package/src/debug/functions/draw-elem/sharp-corner.ts +6 -6
  139. package/src/debug/functions/draw-elem/three-prong.ts +19 -19
  140. package/src/debug/functions/draw-elem/tight-bounding-box.ts +4 -4
  141. package/src/debug/functions/draw-elem/two-prong.ts +34 -34
  142. package/src/debug/functions/draw-elem/vertex.ts +28 -28
  143. package/src/debug/functions/general.ts +18 -18
  144. package/src/debug/functions/three-prong.ts +184 -184
  145. package/src/debug/functions/two-prong.ts +112 -112
  146. package/src/find-2-prong/add-1-prong.ts +25 -25
  147. package/src/find-2-prong/find-2-prong.ts +156 -156
  148. package/src/find-2-prong/find-equidistant-point-on-line-dd.ts +50 -50
  149. package/src/find-2-prong/find-equidistant-point-on-line.ts +27 -27
  150. package/src/find-3-prong.ts/find-3-prong-for-delta3s.ts +1 -1
  151. package/src/find-3-prong.ts/find-3-prong.ts +23 -23
  152. package/src/find-3-prong.ts/find-and-add-3-prong.ts +37 -37
  153. package/src/find-3-prong.ts/find-and-add-3-prongs.ts +30 -30
  154. package/src/find-mat/add-2-prongs-by-error.ts +1 -1
  155. package/src/find-mat/find-mats.ts +49 -49
  156. package/src/find-mat/fix-ordering.ts +2 -2
  157. package/src/find-mat/get-total-by.ts +12 -12
  158. package/src/geometry/get-closest-square-distance-to-rect.ts +37 -37
  159. package/src/geometry/get-closest-squared-distance-to-rotated-rect.ts +14 -14
  160. package/src/get-curve/get-curve-between.ts +1 -1
  161. package/src/index.ts +40 -3
  162. package/src/mat/cmp-cp-on-delta.ts +1 -1
  163. package/src/mat/create-new-cp-tree.ts +12 -12
  164. package/src/mat/get-edges-as-array.ts +9 -9
  165. package/src/mat/get-largest-3-prong.ts +8 -8
  166. package/src/mat/get-largest-three-prong.ts +5 -5
  167. package/src/mat/get-largest-vertex.ts +6 -6
  168. package/src/mat/get-two-prong-type.ts +3 -3
  169. package/src/mat/trim-mat.ts +1 -1
  170. package/src/memoize-primitive.ts +14 -14
  171. package/src/sat/add-debug-info.ts +4 -4
  172. package/src/sat/cull-by-salience.ts +1 -1
  173. package/src/sat/get-leaves.ts +0 -1
  174. package/src/svg/get-extreme.ts +8 -8
  175. package/src/svg/get-loop-bounds.ts +84 -84
  176. package/src/svg/get-min-y-pos.ts +1 -1
  177. package/src/sweep-line/sweep-line.ts +23 -23
  178. package/__tests__/cp-node/fs/check-jsog-eql-calc.spec.ts +0 -30
@@ -11,16 +11,16 @@
11
11
 
12
12
  // /** @internal */
13
13
  // interface ITwoProngDebugFunctions {
14
- // logδ : (n: number, type?: ElemType_TwoProng) => void,
15
- // log : (n: number, type?: ElemType_TwoProng) => void,
16
- // drawNormal : typeof drawNormal,
17
- // logδBasic : (n: number) => void,
18
- // logNearest : (
19
- // showSpokes? : boolean,
20
- // showTrace? : boolean,
21
- // showBoundaries? : boolean
22
- // ) => (g: SVGGElement, p: number[], showDelay?: number, scale?: number) => void,
23
- // traceConvergence: typeof traceConvergence,
14
+ // logδ : (n: number, type?: ElemType_TwoProng) => void,
15
+ // log : (n: number, type?: ElemType_TwoProng) => void,
16
+ // drawNormal : typeof drawNormal,
17
+ // logδBasic : (n: number) => void,
18
+ // logNearest : (
19
+ // showSpokes? : boolean,
20
+ // showTrace? : boolean,
21
+ // showBoundaries? : boolean
22
+ // ) => (g: SVGGElement, p: number[], showDelay?: number, scale?: number) => void,
23
+ // traceConvergence: typeof traceConvergence,
24
24
  // }
25
25
 
26
26
 
@@ -28,9 +28,9 @@
28
28
  // * @internal
29
29
  // */
30
30
  // function logδ(n: number, type: ElemType_TwoProng = 'twoProng_regular') {
31
- // const δ =_debug_.generated.elems[type][n].δ;
32
-
33
- // console.log(δ);
31
+ // const δ =_debug_.generated.elems[type][n].δ;
32
+
33
+ // console.log(δ);
34
34
  // }
35
35
 
36
36
 
@@ -38,8 +38,8 @@
38
38
  // * @internal
39
39
  // */
40
40
  // function log(n: number, type: ElemType_TwoProng = 'twoProng_regular') {
41
- // const twoProng = _debug_.generated.elems[type][n];
42
- // console.log(twoProng);
41
+ // const twoProng = _debug_.generated.elems[type][n];
42
+ // console.log(twoProng);
43
43
  // }
44
44
 
45
45
 
@@ -47,13 +47,13 @@
47
47
  // * @internal
48
48
  // */
49
49
  // function drawNormal(
50
- // g: SVGGElement,
51
- // twoProng: TwoProngForDebugging,
52
- // showDelay = 1000) {
50
+ // g: SVGGElement,
51
+ // twoProng: TwoProngForDebugging,
52
+ // showDelay = 1000) {
53
53
 
54
- // drawFs.line(
55
- // g, [twoProng.pos.p, twoProng.circle.center], 'thin10 blue', showDelay
56
- // );
54
+ // drawFs.line(
55
+ // g, [twoProng.pos.p, twoProng.circle.center], 'thin10 blue', showDelay
56
+ // );
57
57
  // }
58
58
 
59
59
 
@@ -61,21 +61,21 @@
61
61
  // * @internal
62
62
  // */
63
63
  // function logδBasic(
64
- // n: number,
65
- // type: ElemType_TwoProng = 'twoProng_regular') {
66
-
67
- // const delta = _debug_.generated.elems[type][n].δ;
68
-
69
- // function logδBasic_(x: CpNode) {
70
- // const pos = x.cp.pointOnShape;
71
- // return {
72
- // bez: pos.curve.ps,
73
- // t: pos.t
74
- // }
75
- // }
76
-
77
- // console.log(logδBasic_(delta[0]));
78
- // console.log(logδBasic_(delta[1]));
64
+ // n: number,
65
+ // type: ElemType_TwoProng = 'twoProng_regular') {
66
+
67
+ // const delta = _debug_.generated.elems[type][n].δ;
68
+
69
+ // function logδBasic_(x: CpNode) {
70
+ // const pos = x.cp.pointOnShape;
71
+ // return {
72
+ // bez: pos.curve.ps,
73
+ // t: pos.t
74
+ // }
75
+ // }
76
+
77
+ // console.log(logδBasic_(delta[0]));
78
+ // console.log(logδBasic_(delta[1]));
79
79
  // }
80
80
 
81
81
 
@@ -89,10 +89,10 @@
89
89
  // twoProng: TwoProngForDebugging,
90
90
  // showDelay = 1000): void {
91
91
 
92
- // const cc = twoProng.circle.center;
93
- // const { pos, circle, cpNode, xs, z, δ } = twoProng;
92
+ // const cc = twoProng.circle.center;
93
+ // const { pos, circle, cpNode, xs, z, δ } = twoProng;
94
94
 
95
- // drawFs.line(g, [pos.p, cc], 'thin5 red', showDelay);
95
+ // drawFs.line(g, [pos.p, cc], 'thin5 red', showDelay);
96
96
  // drawFs.line(g, [z, cc], 'thin5 red', showDelay);
97
97
  // }
98
98
 
@@ -102,46 +102,46 @@
102
102
  // */
103
103
  // function logNearest(
104
104
  // showSpokes?: boolean,
105
- // showTrace?: boolean,
106
- // showBoundaries?: boolean) {
105
+ // showTrace?: boolean,
106
+ // showBoundaries?: boolean) {
107
107
 
108
108
  // return (g: SVGGElement,
109
- // p: number[],
110
- // showDelay = 1000,
111
- // scale = 1) => {
112
-
113
- // const closestPerLoops: TwoProngForDebugging[] = [];
114
-
115
- // const generated = _debug_.generated;
116
- // const twoProng = getObjClosestTo<TwoProngForDebugging>(
117
- // p,
118
- // // generated.elems[type],
119
- // generated.elems['twoProng_regular'],
120
- // twoProng => twoProng.circle.center
121
- // )!;
122
- // closestPerLoops.push(twoProng!);
123
-
124
- // console.log(twoProng);
125
-
126
- // let n;
127
- // //for (let i=0; i<_debug_.generated.elems[type].length; i++) {
128
- // // const twoProng_ = _debug_.generated.elems[type][i];
129
- // for (let i=0; i<_debug_.generated.elems['twoProng_regular'].length; i++) {
130
- // const twoProng_ = _debug_.generated.elems['twoProng_regular'][i];
131
- // if (twoProng_ === twoProng) {
132
- // n = i;
133
- // break;
134
- // }
135
- // }
109
+ // p: number[],
110
+ // showDelay = 1000,
111
+ // scale = 1) => {
112
+
113
+ // const closestPerLoops: TwoProngForDebugging[] = [];
114
+
115
+ // const generated = _debug_.generated;
116
+ // const twoProng = getObjClosestTo<TwoProngForDebugging>(
117
+ // p,
118
+ // // generated.elems[type],
119
+ // generated.elems['twoProng_regular'],
120
+ // twoProng => twoProng.circle.center
121
+ // )!;
122
+ // closestPerLoops.push(twoProng!);
123
+
124
+ // console.log(twoProng);
125
+
126
+ // let n;
127
+ // //for (let i=0; i<_debug_.generated.elems[type].length; i++) {
128
+ // // const twoProng_ = _debug_.generated.elems[type][i];
129
+ // for (let i=0; i<_debug_.generated.elems['twoProng_regular'].length; i++) {
130
+ // const twoProng_ = _debug_.generated.elems['twoProng_regular'][i];
131
+ // if (twoProng_ === twoProng) {
132
+ // n = i;
133
+ // break;
134
+ // }
135
+ // }
136
136
 
137
137
  // if (showSpokes) {
138
138
  // drawSpokes(g, twoProng, showDelay)
139
139
  // }
140
-
141
- // if (n !== undefined && showTrace) {
142
- // traceConvergence(g, twoProng, showDelay, scale);
143
- // }
144
- // }
140
+
141
+ // if (n !== undefined && showTrace) {
142
+ // traceConvergence(g, twoProng, showDelay, scale);
143
+ // }
144
+ // }
145
145
  // }
146
146
 
147
147
 
@@ -151,53 +151,53 @@
151
151
  // * @param range
152
152
  // */
153
153
  // function traceConvergence(
154
- // g: SVGGElement,
155
- // twoProng: TwoProngForDebugging,
156
- // showDelay = 1000,
157
- // scale = 1) {
158
-
159
- // const xs = twoProng.xs;
160
-
161
- // console.log(twoProng);
162
- // console.log(
163
- // twoProng.xs.map(x => ({
164
- // x: x.x,
165
- // y: x.y,
166
- // z: x.z,
167
- // d: x.z ? squaredDistanceBetween(x.y.p, x.z.p) : 0,
168
- // t: x.t,
169
- // })
170
- // )
171
- // );
154
+ // g: SVGGElement,
155
+ // twoProng: TwoProngForDebugging,
156
+ // showDelay = 1000,
157
+ // scale = 1) {
158
+
159
+ // const xs = twoProng.xs;
160
+
161
+ // console.log(twoProng);
162
+ // console.log(
163
+ // twoProng.xs.map(x => ({
164
+ // x: x.x,
165
+ // y: x.y,
166
+ // z: x.z,
167
+ // d: x.z ? squaredDistanceBetween(x.y.p, x.z.p) : 0,
168
+ // t: x.t,
169
+ // })
170
+ // )
171
+ // );
172
172
 
173
173
  // console.log(xs.length)
174
- // for (let i=0; i<xs.length; i++) {
175
- // const x = twoProng.xs[i];
176
-
177
- // const circle = { center: x.x, radius: distanceBetween(x.x, x.y.p) };
178
- // drawFs.crossHair(g, x.x, 'red thin10 nofill', 0.002*scale, showDelay);
179
- // drawFs.circle(g, circle, 'blue thin10 nofill', showDelay);
180
- // if (x.z !== undefined) {
181
- // drawFs.crossHair(
182
- // g, x.z.p, 'yellow thin10 nofill', 0.001*scale, showDelay
183
- // );
184
- // }
185
- // }
186
-
187
- // // twoProngDebugFunctions.drawNormal(g, twoProng, showDelay);
174
+ // for (let i=0; i<xs.length; i++) {
175
+ // const x = twoProng.xs[i];
176
+
177
+ // const circle = { center: x.x, radius: distanceBetween(x.x, x.y.p) };
178
+ // drawFs.crossHair(g, x.x, 'red thin10 nofill', 0.002*scale, showDelay);
179
+ // drawFs.circle(g, circle, 'blue thin10 nofill', showDelay);
180
+ // if (x.z !== undefined) {
181
+ // drawFs.crossHair(
182
+ // g, x.z.p, 'yellow thin10 nofill', 0.001*scale, showDelay
183
+ // );
184
+ // }
185
+ // }
186
+
187
+ // // twoProngDebugFunctions.drawNormal(g, twoProng, showDelay);
188
188
  // }
189
189
 
190
190
 
191
191
  // /** @internal */
192
192
  // const twoProngDebugFunctions: ITwoProngDebugFunctions = {
193
- // logδ,
194
- // log,
195
- // drawNormal,
196
- // logδBasic,
197
- // traceConvergence,
198
- // logNearest,
193
+ // logδ,
194
+ // log,
195
+ // drawNormal,
196
+ // logδBasic,
197
+ // traceConvergence,
198
+ // logNearest,
199
199
  // }
200
200
 
201
201
 
202
202
  // export { ITwoProngDebugFunctions, twoProngDebugFunctions };
203
-
203
+
@@ -15,44 +15,44 @@ import { getPosCorner } from '../point-on-shape/get-pos-corner.js';
15
15
  * @param pos
16
16
  */
17
17
  function add1Prong(
18
- meta: MatMeta,
19
- radius: number,
18
+ meta: MatMeta,
19
+ radius: number,
20
20
  center: number[],
21
21
  pos: PointOnShape) {
22
22
 
23
23
  if (isPosCorner(pos) && getPosCorner(pos).isDull) {
24
- // This is a 1-prong at a dull corner.
25
-
26
- // TODO IMPORTANT
27
- // Remove this line, uncomment piece below it and implement the
28
- // following strategy to find the 3-prongs: if deltas are conjoined due
29
- // to dull corner, split the conjoinment by inserting successively
30
- // closer (binary division) 2-prongs. If a 2-prong actually fails,
31
- // simply remove the 1-prong at the dull corner. In this way **all**
24
+ // This is a 1-prong at a dull corner.
25
+
26
+ // TODO IMPORTANT
27
+ // Remove this line, uncomment piece below it and implement the
28
+ // following strategy to find the 3-prongs: if deltas are conjoined due
29
+ // to dull corner, split the conjoinment by inserting successively
30
+ // closer (binary division) 2-prongs. If a 2-prong actually fails,
31
+ // simply remove the 1-prong at the dull corner. In this way **all**
32
32
  // terminal points are found, e.g. zoom in on top left leg of ant.
33
33
  // Afterthought: there is a better way - split points by two prongs.
34
34
 
35
- //toRemove.push(posNode); // this!
36
-
37
- // if (typeof _debug_ !== 'undefined') {
35
+ //toRemove.push(posNode); // this!
36
+
37
+ // if (typeof _debug_ !== 'undefined') {
38
38
  // _debug_.generated.elems.oneProngAtDullCorner.push(pos);
39
39
  // }
40
40
 
41
- return;
42
- }
43
-
41
+ return;
42
+ }
43
+
44
44
  const circle: Circle = { radius, center };
45
-
46
- const order = calcPosOrder(circle, pos);
47
- // Make sure there isn't already a ContactPoint close by - it can cause
48
- // floating point stability issues.
49
- if (getCloseByCpIfExist(meta, pos, circle, order, 0, 1)) {
50
- return;
51
- }
45
+
46
+ const order = calcPosOrder(circle, pos);
47
+ // Make sure there isn't already a ContactPoint close by - it can cause
48
+ // floating point stability issues.
49
+ if (getCloseByCpIfExist(meta, pos, circle, order, 0, 1)) {
50
+ return;
51
+ }
52
52
 
53
53
  const { anyFailed, cpNodes } = addToCpTree(false, false, circle, [-0.5, +0.5], meta, [pos, pos]);
54
-
55
- // if (typeof _debug_ !== 'undefined') {
54
+
55
+ // if (typeof _debug_ !== 'undefined') {
56
56
  // _debug_.generated.elems.oneProng.push(cpNodes);
57
57
  // }
58
58
  }