@wcardinal/wcardinal-ui 0.408.0 → 0.409.0

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 (149) hide show
  1. package/dist/types/wcardinal/ui/shape/e-shape-buffer.d.ts +3 -9
  2. package/dist/types/wcardinal/ui/shape/e-shape-container.d.ts +1 -1
  3. package/dist/types/wcardinal/ui/shape/variant/build-bar.d.ts +1 -2
  4. package/dist/types/wcardinal/ui/shape/variant/build-circle.d.ts +1 -2
  5. package/dist/types/wcardinal/ui/shape/variant/build-color.d.ts +1 -1
  6. package/dist/types/wcardinal/ui/shape/variant/build-image-sdf.d.ts +0 -1
  7. package/dist/types/wcardinal/ui/shape/variant/build-line-of-any.d.ts +17 -1
  8. package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +2 -3
  9. package/dist/types/wcardinal/ui/shape/variant/build-null.d.ts +0 -1
  10. package/dist/types/wcardinal/ui/shape/variant/build-rectangle-rounded.d.ts +2 -3
  11. package/dist/types/wcardinal/ui/shape/variant/build-rectangle.d.ts +4 -5
  12. package/dist/types/wcardinal/ui/shape/variant/build-semicircle.d.ts +1 -2
  13. package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +0 -1
  14. package/dist/types/wcardinal/ui/shape/variant/build-triangle-rounded.d.ts +1 -2
  15. package/dist/types/wcardinal/ui/shape/variant/build-triangle.d.ts +1 -2
  16. package/dist/types/wcardinal/ui/shape/variant/builder-bar.d.ts +1 -1
  17. package/dist/types/wcardinal/ui/shape/variant/builder-base.d.ts +1 -2
  18. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-any.d.ts +1 -2
  19. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.d.ts +1 -1
  20. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangles.d.ts +1 -1
  21. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.d.ts +1 -1
  22. package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +1 -2
  23. package/dist/types/wcardinal/ui/shape/variant/builder-marker-base.d.ts +1 -1
  24. package/dist/types/wcardinal/ui/shape/variant/builder-marker-rectangle.d.ts +1 -1
  25. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-pivoted.d.ts +1 -1
  26. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-rounded.d.ts +1 -1
  27. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle.d.ts +1 -1
  28. package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +1 -2
  29. package/dist/types/wcardinal/ui/shape/variant/builder-triangle-rounded.d.ts +1 -1
  30. package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +9 -18
  31. package/dist/types/wcardinal/ui/shape/variant/index.d.ts +0 -1
  32. package/dist/types/wcardinal/ui/shape/variant/to-dash.d.ts +1 -2
  33. package/dist/types/wcardinal/ui/shape/variant/to-normal-packed.d.ts +1 -0
  34. package/dist/types/wcardinal/ui/shape/variant/to-normal.d.ts +1 -0
  35. package/dist/types/wcardinal/ui/shape/variant/to-packed.d.ts +2 -0
  36. package/dist/types/wcardinal/ui/shape/variant/to-vector-length.d.ts +1 -0
  37. package/dist/types/wcardinal/ui/shape/variant/to-vector.d.ts +1 -0
  38. package/dist/wcardinal/ui/shape/e-shape-buffer.js +10 -30
  39. package/dist/wcardinal/ui/shape/e-shape-buffer.js.map +1 -1
  40. package/dist/wcardinal/ui/shape/e-shape-container.js +1 -1
  41. package/dist/wcardinal/ui/shape/e-shape-container.js.map +1 -1
  42. package/dist/wcardinal/ui/shape/e-shape-renderer.js +4 -5
  43. package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
  44. package/dist/wcardinal/ui/shape/variant/build-bar.js +37 -63
  45. package/dist/wcardinal/ui/shape/variant/build-bar.js.map +1 -1
  46. package/dist/wcardinal/ui/shape/variant/build-circle.js +63 -40
  47. package/dist/wcardinal/ui/shape/variant/build-circle.js.map +1 -1
  48. package/dist/wcardinal/ui/shape/variant/build-color.js +8 -11
  49. package/dist/wcardinal/ui/shape/variant/build-color.js.map +1 -1
  50. package/dist/wcardinal/ui/shape/variant/build-image-sdf.js +30 -37
  51. package/dist/wcardinal/ui/shape/variant/build-image-sdf.js.map +1 -1
  52. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js +244 -25
  53. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js.map +1 -1
  54. package/dist/wcardinal/ui/shape/variant/build-line.js +149 -129
  55. package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
  56. package/dist/wcardinal/ui/shape/variant/build-null.js +0 -7
  57. package/dist/wcardinal/ui/shape/variant/build-null.js.map +1 -1
  58. package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js +917 -849
  59. package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js.map +1 -1
  60. package/dist/wcardinal/ui/shape/variant/build-rectangle.js +279 -353
  61. package/dist/wcardinal/ui/shape/variant/build-rectangle.js.map +1 -1
  62. package/dist/wcardinal/ui/shape/variant/build-semicircle.js +45 -31
  63. package/dist/wcardinal/ui/shape/variant/build-semicircle.js.map +1 -1
  64. package/dist/wcardinal/ui/shape/variant/build-text.js +6 -13
  65. package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
  66. package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js +255 -128
  67. package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js.map +1 -1
  68. package/dist/wcardinal/ui/shape/variant/build-triangle.js +55 -35
  69. package/dist/wcardinal/ui/shape/variant/build-triangle.js.map +1 -1
  70. package/dist/wcardinal/ui/shape/variant/builder-bar.js +8 -11
  71. package/dist/wcardinal/ui/shape/variant/builder-bar.js.map +1 -1
  72. package/dist/wcardinal/ui/shape/variant/builder-base.js +18 -22
  73. package/dist/wcardinal/ui/shape/variant/builder-base.js.map +1 -1
  74. package/dist/wcardinal/ui/shape/variant/builder-circle.js +4 -7
  75. package/dist/wcardinal/ui/shape/variant/builder-circle.js.map +1 -1
  76. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js +3 -6
  77. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js.map +1 -1
  78. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js +13 -17
  79. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js.map +1 -1
  80. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js +5 -12
  81. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js.map +1 -1
  82. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js +10 -26
  83. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js.map +1 -1
  84. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js +9 -25
  85. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js.map +1 -1
  86. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js +9 -25
  87. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js.map +1 -1
  88. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js +5 -12
  89. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js.map +1 -1
  90. package/dist/wcardinal/ui/shape/variant/builder-line.js +13 -27
  91. package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
  92. package/dist/wcardinal/ui/shape/variant/builder-marker-base.js +27 -19
  93. package/dist/wcardinal/ui/shape/variant/builder-marker-base.js.map +1 -1
  94. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js +4 -7
  95. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js.map +1 -1
  96. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js +7 -13
  97. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js.map +1 -1
  98. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js +4 -7
  99. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js.map +1 -1
  100. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js +7 -13
  101. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js.map +1 -1
  102. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js +6 -12
  103. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js.map +1 -1
  104. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js +7 -13
  105. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js.map +1 -1
  106. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js +4 -7
  107. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js.map +1 -1
  108. package/dist/wcardinal/ui/shape/variant/builder-text.js +19 -28
  109. package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
  110. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js +7 -12
  111. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js.map +1 -1
  112. package/dist/wcardinal/ui/shape/variant/builder-triangle.js +4 -7
  113. package/dist/wcardinal/ui/shape/variant/builder-triangle.js.map +1 -1
  114. package/dist/wcardinal/ui/shape/variant/builder.js +18 -14
  115. package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
  116. package/dist/wcardinal/ui/shape/variant/index.js +0 -1
  117. package/dist/wcardinal/ui/shape/variant/index.js.map +1 -1
  118. package/dist/wcardinal/ui/shape/variant/to-dash.js +8 -9
  119. package/dist/wcardinal/ui/shape/variant/to-dash.js.map +1 -1
  120. package/dist/wcardinal/ui/shape/variant/to-normal-packed.js +7 -0
  121. package/dist/wcardinal/ui/shape/variant/to-normal-packed.js.map +1 -0
  122. package/dist/wcardinal/ui/shape/variant/to-normal.js +15 -0
  123. package/dist/wcardinal/ui/shape/variant/to-normal.js.map +1 -0
  124. package/dist/wcardinal/ui/shape/variant/to-packed.js +7 -0
  125. package/dist/wcardinal/ui/shape/variant/to-packed.js.map +1 -0
  126. package/dist/wcardinal/ui/shape/variant/to-vector-length.js +4 -0
  127. package/dist/wcardinal/ui/shape/variant/to-vector-length.js.map +1 -0
  128. package/dist/wcardinal/ui/shape/variant/to-vector.js +6 -0
  129. package/dist/wcardinal/ui/shape/variant/to-vector.js.map +1 -0
  130. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  131. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  132. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  133. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  134. package/dist/wcardinal-ui-theme-dark.js +1 -1
  135. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  136. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  137. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  138. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  139. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  140. package/dist/wcardinal-ui-theme-white.js +1 -1
  141. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  142. package/dist/wcardinal-ui.cjs.js +2306 -2094
  143. package/dist/wcardinal-ui.js +2302 -2090
  144. package/dist/wcardinal-ui.min.js +2 -2
  145. package/dist/wcardinal-ui.min.js.map +1 -1
  146. package/package.json +1 -1
  147. package/dist/types/wcardinal/ui/shape/variant/copy-clipping.d.ts +0 -1
  148. package/dist/wcardinal/ui/shape/variant/copy-clipping.js +0 -20
  149. package/dist/wcardinal/ui/shape/variant/copy-clipping.js.map +0 -1
@@ -2,6 +2,7 @@ import { Point } from "pixi.js";
2
2
  import { EShapeCorner } from "../e-shape-corner";
3
3
  import { toLength } from "./to-length";
4
4
  import { toScaleInvariant } from "./to-scale-invariant";
5
+ import { toPackedF2x1024, toPackedI4x64 } from "./to-packed";
5
6
  export var TRIANGLE_ROUNDED_VERTEX_COUNT = 22;
6
7
  export var TRIANGLE_ROUNDED_INDEX_COUNT = 15;
7
8
  export var TRIANGLE_ROUNDED_WORLD_SIZE = [
@@ -176,150 +177,276 @@ export var buildTriangleRoundedVertex = function (vertices, voffset, originX, or
176
177
  vertices[++iv] = x9;
177
178
  vertices[++iv] = y9;
178
179
  };
179
- export var buildTriangleRoundedClipping = function (clippings, voffset, corner, radius) {
180
- // Top corner
181
- var iv = voffset * 3 - 1;
180
+ export var buildTriangleRoundedStep = function (steps, voffset, strokeWidth, strokeStyle, corner, radius, worldSize) {
181
+ var scaleInvariant = toScaleInvariant(strokeStyle);
182
+ var s = worldSize[0];
183
+ var sr = radius * s;
182
184
  var w = 1 - radius;
185
+ var e0 = toPackedI4x64(0, scaleInvariant, 1, 1);
186
+ var e1 = toPackedI4x64(1, scaleInvariant, 1, 1);
187
+ var c00 = toPackedF2x1024(0, 0);
188
+ var c10 = toPackedF2x1024(1, 0);
189
+ var c11 = toPackedF2x1024(1, 1);
190
+ var c01 = toPackedF2x1024(0, 1);
191
+ var cww = toPackedF2x1024(w, w);
192
+ var c1w = toPackedF2x1024(1, w);
193
+ var cw1 = toPackedF2x1024(w, 1);
194
+ var cw0 = toPackedF2x1024(w, 0);
195
+ // Top corner
196
+ var is = voffset * 6 - 1;
183
197
  if (corner & EShapeCorner.TOP) {
184
- clippings[++iv] = 0;
185
- clippings[++iv] = 0;
186
- clippings[++iv] = 1;
187
- clippings[++iv] = 1;
188
- clippings[++iv] = 0;
189
- clippings[++iv] = 1;
190
- clippings[++iv] = 1;
191
- clippings[++iv] = 1;
192
- clippings[++iv] = 1;
193
- clippings[++iv] = 0;
194
- clippings[++iv] = 1;
195
- clippings[++iv] = 1;
198
+ // 001
199
+ steps[++is] = strokeWidth;
200
+ steps[++is] = e1;
201
+ steps[++is] = sr;
202
+ steps[++is] = sr;
203
+ steps[++is] = c00;
204
+ steps[++is] = 0;
205
+ // 101
206
+ steps[++is] = strokeWidth;
207
+ steps[++is] = e1;
208
+ steps[++is] = sr;
209
+ steps[++is] = sr;
210
+ steps[++is] = c10;
211
+ steps[++is] = 0;
212
+ // 111
213
+ steps[++is] = strokeWidth;
214
+ steps[++is] = e1;
215
+ steps[++is] = sr;
216
+ steps[++is] = sr;
217
+ steps[++is] = c11;
218
+ steps[++is] = 0;
219
+ // 011
220
+ steps[++is] = strokeWidth;
221
+ steps[++is] = e1;
222
+ steps[++is] = sr;
223
+ steps[++is] = sr;
224
+ steps[++is] = c01;
225
+ steps[++is] = 0;
196
226
  }
197
227
  else {
198
- clippings[++iv] = w;
199
- clippings[++iv] = w;
200
- clippings[++iv] = 0;
201
- clippings[++iv] = 1;
202
- clippings[++iv] = w;
203
- clippings[++iv] = 0;
204
- clippings[++iv] = 1;
205
- clippings[++iv] = 1;
206
- clippings[++iv] = 0;
207
- clippings[++iv] = w;
208
- clippings[++iv] = 1;
209
- clippings[++iv] = 0;
228
+ // ww0
229
+ steps[++is] = strokeWidth;
230
+ steps[++is] = e0;
231
+ steps[++is] = s;
232
+ steps[++is] = s;
233
+ steps[++is] = cww;
234
+ steps[++is] = 0;
235
+ // 1w0
236
+ steps[++is] = strokeWidth;
237
+ steps[++is] = e0;
238
+ steps[++is] = s;
239
+ steps[++is] = s;
240
+ steps[++is] = c1w;
241
+ steps[++is] = 0;
242
+ // 110
243
+ steps[++is] = strokeWidth;
244
+ steps[++is] = e0;
245
+ steps[++is] = s;
246
+ steps[++is] = s;
247
+ steps[++is] = c11;
248
+ steps[++is] = 0;
249
+ // w10
250
+ steps[++is] = strokeWidth;
251
+ steps[++is] = e0;
252
+ steps[++is] = s;
253
+ steps[++is] = s;
254
+ steps[++is] = cw1;
255
+ steps[++is] = 0;
210
256
  }
211
257
  // Bottom-right corner
212
258
  if (corner & EShapeCorner.BOTTOM_RIGHT) {
213
- clippings[++iv] = 0;
214
- clippings[++iv] = 0;
215
- clippings[++iv] = 1;
216
- clippings[++iv] = 1;
217
- clippings[++iv] = 0;
218
- clippings[++iv] = 1;
219
- clippings[++iv] = 1;
220
- clippings[++iv] = 1;
221
- clippings[++iv] = 1;
222
- clippings[++iv] = 0;
223
- clippings[++iv] = 1;
224
- clippings[++iv] = 1;
259
+ // 001
260
+ steps[++is] = strokeWidth;
261
+ steps[++is] = e1;
262
+ steps[++is] = sr;
263
+ steps[++is] = sr;
264
+ steps[++is] = c00;
265
+ steps[++is] = 0;
266
+ // 101
267
+ steps[++is] = strokeWidth;
268
+ steps[++is] = e1;
269
+ steps[++is] = sr;
270
+ steps[++is] = sr;
271
+ steps[++is] = c10;
272
+ steps[++is] = 0;
273
+ // 111
274
+ steps[++is] = strokeWidth;
275
+ steps[++is] = e1;
276
+ steps[++is] = sr;
277
+ steps[++is] = sr;
278
+ steps[++is] = c11;
279
+ steps[++is] = 0;
280
+ // 011
281
+ steps[++is] = strokeWidth;
282
+ steps[++is] = e1;
283
+ steps[++is] = sr;
284
+ steps[++is] = sr;
285
+ steps[++is] = c01;
286
+ steps[++is] = 0;
225
287
  }
226
288
  else {
227
- clippings[++iv] = w;
228
- clippings[++iv] = w;
229
- clippings[++iv] = 0;
230
- clippings[++iv] = 1;
231
- clippings[++iv] = w;
232
- clippings[++iv] = 0;
233
- clippings[++iv] = 1;
234
- clippings[++iv] = 1;
235
- clippings[++iv] = 0;
236
- clippings[++iv] = w;
237
- clippings[++iv] = 1;
238
- clippings[++iv] = 0;
289
+ // ww0
290
+ steps[++is] = strokeWidth;
291
+ steps[++is] = e0;
292
+ steps[++is] = s;
293
+ steps[++is] = s;
294
+ steps[++is] = cww;
295
+ steps[++is] = 0;
296
+ // 1w0
297
+ steps[++is] = strokeWidth;
298
+ steps[++is] = e0;
299
+ steps[++is] = s;
300
+ steps[++is] = s;
301
+ steps[++is] = c1w;
302
+ steps[++is] = 0;
303
+ // 110
304
+ steps[++is] = strokeWidth;
305
+ steps[++is] = e0;
306
+ steps[++is] = s;
307
+ steps[++is] = s;
308
+ steps[++is] = c11;
309
+ steps[++is] = 0;
310
+ // w10
311
+ steps[++is] = strokeWidth;
312
+ steps[++is] = e0;
313
+ steps[++is] = s;
314
+ steps[++is] = s;
315
+ steps[++is] = cw1;
316
+ steps[++is] = 0;
239
317
  }
240
318
  // Bottom-left corner
241
319
  if (corner & EShapeCorner.BOTTOM_LEFT) {
242
- clippings[++iv] = 0;
243
- clippings[++iv] = 0;
244
- clippings[++iv] = 1;
245
- clippings[++iv] = 1;
246
- clippings[++iv] = 0;
247
- clippings[++iv] = 1;
248
- clippings[++iv] = 1;
249
- clippings[++iv] = 1;
250
- clippings[++iv] = 1;
251
- clippings[++iv] = 0;
252
- clippings[++iv] = 1;
253
- clippings[++iv] = 1;
320
+ // 001
321
+ steps[++is] = strokeWidth;
322
+ steps[++is] = e1;
323
+ steps[++is] = sr;
324
+ steps[++is] = sr;
325
+ steps[++is] = c00;
326
+ steps[++is] = 0;
327
+ // 101
328
+ steps[++is] = strokeWidth;
329
+ steps[++is] = e1;
330
+ steps[++is] = sr;
331
+ steps[++is] = sr;
332
+ steps[++is] = c10;
333
+ steps[++is] = 0;
334
+ // 111
335
+ steps[++is] = strokeWidth;
336
+ steps[++is] = e1;
337
+ steps[++is] = sr;
338
+ steps[++is] = sr;
339
+ steps[++is] = c11;
340
+ steps[++is] = 0;
341
+ // 011
342
+ steps[++is] = strokeWidth;
343
+ steps[++is] = e1;
344
+ steps[++is] = sr;
345
+ steps[++is] = sr;
346
+ steps[++is] = c01;
347
+ steps[++is] = 0;
254
348
  }
255
349
  else {
256
- clippings[++iv] = w;
257
- clippings[++iv] = w;
258
- clippings[++iv] = 0;
259
- clippings[++iv] = 1;
260
- clippings[++iv] = w;
261
- clippings[++iv] = 0;
262
- clippings[++iv] = 1;
263
- clippings[++iv] = 1;
264
- clippings[++iv] = 0;
265
- clippings[++iv] = w;
266
- clippings[++iv] = 1;
267
- clippings[++iv] = 0;
268
- }
269
- // Others
270
- clippings[++iv] = 0;
271
- clippings[++iv] = 0;
272
- clippings[++iv] = 0;
273
- clippings[++iv] = w;
274
- clippings[++iv] = 0;
275
- clippings[++iv] = 0;
276
- clippings[++iv] = 1;
277
- clippings[++iv] = 0;
278
- clippings[++iv] = 0;
279
- clippings[++iv] = 1;
280
- clippings[++iv] = 0;
281
- clippings[++iv] = 0;
282
- clippings[++iv] = w;
283
- clippings[++iv] = 0;
284
- clippings[++iv] = 0;
285
- clippings[++iv] = 1;
286
- clippings[++iv] = 0;
287
- clippings[++iv] = 0;
288
- clippings[++iv] = 1;
289
- clippings[++iv] = 0;
290
- clippings[++iv] = 0;
291
- clippings[++iv] = w;
292
- clippings[++iv] = 0;
293
- clippings[++iv] = 0;
294
- clippings[++iv] = 1;
295
- clippings[++iv] = 0;
296
- clippings[++iv] = 0;
297
- clippings[++iv] = 1;
298
- clippings[++iv] = 0;
299
- clippings[++iv] = 0;
300
- };
301
- export var buildTriangleRoundedStep = function (steps, clippings, voffset, strokeWidth, strokeStyle, radius, worldSize) {
302
- var scaleInvariant = toScaleInvariant(strokeStyle);
303
- var s = worldSize[0];
304
- var sr = radius * s;
305
- var ic = voffset * 3;
306
- var is = voffset * 6 - 1;
307
- for (var i = 0; i < TRIANGLE_ROUNDED_VERTEX_COUNT; i += 1, ic += 3) {
350
+ // ww0
308
351
  steps[++is] = strokeWidth;
309
- steps[++is] = scaleInvariant;
310
- if (0.5 < clippings[ic + 2]) {
311
- steps[++is] = sr;
312
- steps[++is] = sr;
313
- steps[++is] = 1 + clippings[ic];
314
- steps[++is] = 1 + clippings[ic + 1];
315
- }
316
- else {
317
- steps[++is] = s;
318
- steps[++is] = s;
319
- steps[++is] = 1 + clippings[ic];
320
- steps[++is] = 1 + clippings[ic + 1];
321
- }
352
+ steps[++is] = e0;
353
+ steps[++is] = s;
354
+ steps[++is] = s;
355
+ steps[++is] = cww;
356
+ steps[++is] = 0;
357
+ // 1w0
358
+ steps[++is] = strokeWidth;
359
+ steps[++is] = e0;
360
+ steps[++is] = s;
361
+ steps[++is] = s;
362
+ steps[++is] = c1w;
363
+ steps[++is] = 0;
364
+ // 110
365
+ steps[++is] = strokeWidth;
366
+ steps[++is] = e0;
367
+ steps[++is] = s;
368
+ steps[++is] = s;
369
+ steps[++is] = c11;
370
+ steps[++is] = 0;
371
+ // w10
372
+ steps[++is] = strokeWidth;
373
+ steps[++is] = e0;
374
+ steps[++is] = s;
375
+ steps[++is] = s;
376
+ steps[++is] = cw1;
377
+ steps[++is] = 0;
322
378
  }
379
+ // Others
380
+ // 000
381
+ steps[++is] = strokeWidth;
382
+ steps[++is] = e0;
383
+ steps[++is] = s;
384
+ steps[++is] = s;
385
+ steps[++is] = c00;
386
+ steps[++is] = 0;
387
+ // w00
388
+ steps[++is] = strokeWidth;
389
+ steps[++is] = e0;
390
+ steps[++is] = s;
391
+ steps[++is] = s;
392
+ steps[++is] = cw0;
393
+ steps[++is] = 0;
394
+ // 100
395
+ steps[++is] = strokeWidth;
396
+ steps[++is] = e0;
397
+ steps[++is] = s;
398
+ steps[++is] = s;
399
+ steps[++is] = c10;
400
+ steps[++is] = 0;
401
+ // 100
402
+ steps[++is] = strokeWidth;
403
+ steps[++is] = e0;
404
+ steps[++is] = s;
405
+ steps[++is] = s;
406
+ steps[++is] = c10;
407
+ steps[++is] = 0;
408
+ // w00
409
+ steps[++is] = strokeWidth;
410
+ steps[++is] = e0;
411
+ steps[++is] = s;
412
+ steps[++is] = s;
413
+ steps[++is] = cw0;
414
+ steps[++is] = 0;
415
+ // 100
416
+ steps[++is] = strokeWidth;
417
+ steps[++is] = e0;
418
+ steps[++is] = s;
419
+ steps[++is] = s;
420
+ steps[++is] = c10;
421
+ steps[++is] = 0;
422
+ // 100
423
+ steps[++is] = strokeWidth;
424
+ steps[++is] = e0;
425
+ steps[++is] = s;
426
+ steps[++is] = s;
427
+ steps[++is] = c10;
428
+ steps[++is] = 0;
429
+ // w00
430
+ steps[++is] = strokeWidth;
431
+ steps[++is] = e0;
432
+ steps[++is] = s;
433
+ steps[++is] = s;
434
+ steps[++is] = cw0;
435
+ steps[++is] = 0;
436
+ // 100
437
+ steps[++is] = strokeWidth;
438
+ steps[++is] = e0;
439
+ steps[++is] = s;
440
+ steps[++is] = s;
441
+ steps[++is] = c10;
442
+ steps[++is] = 0;
443
+ // 100
444
+ steps[++is] = strokeWidth;
445
+ steps[++is] = e0;
446
+ steps[++is] = s;
447
+ steps[++is] = s;
448
+ steps[++is] = c10;
449
+ steps[++is] = 0;
323
450
  };
324
451
  export var buildTriangleRoundedUv = function (uvs, voffset, textureUvs, radius, worldSize) {
325
452
  var x0 = textureUvs.x0;
@@ -1 +1 @@
1
- {"version":3,"file":"build-triangle-rounded.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-triangle-rounded.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nexport const TRIANGLE_ROUNDED_VERTEX_COUNT = 22;\nexport const TRIANGLE_ROUNDED_INDEX_COUNT = 15;\nexport const TRIANGLE_ROUNDED_WORLD_SIZE: [number, number, number, number, number] = [\n\t0, 0, 0, 0, 0\n];\nconst TRIANGLE_ROUNDED_WORK_POINT: Point = new Point();\n\nexport const buildTriangleRoundedIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number\n): void => {\n\t// Top corner\n\tlet ii = ioffset * 3 - 1;\n\tindices[++ii] = voffset + 0;\n\tindices[++ii] = voffset + 1;\n\tindices[++ii] = voffset + 3;\n\n\tindices[++ii] = voffset + 1;\n\tindices[++ii] = voffset + 2;\n\tindices[++ii] = voffset + 3;\n\n\t// Bottom-right corner\n\tindices[++ii] = voffset + 4;\n\tindices[++ii] = voffset + 5;\n\tindices[++ii] = voffset + 7;\n\n\tindices[++ii] = voffset + 5;\n\tindices[++ii] = voffset + 6;\n\tindices[++ii] = voffset + 7;\n\n\t// Bottom-left corner\n\tindices[++ii] = voffset + 8;\n\tindices[++ii] = voffset + 9;\n\tindices[++ii] = voffset + 11;\n\n\tindices[++ii] = voffset + 9;\n\tindices[++ii] = voffset + 10;\n\tindices[++ii] = voffset + 11;\n\n\t// Others\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 13;\n\tindices[++ii] = voffset + 16;\n\n\tindices[++ii] = voffset + 13;\n\tindices[++ii] = voffset + 14;\n\tindices[++ii] = voffset + 16;\n\n\tindices[++ii] = voffset + 14;\n\tindices[++ii] = voffset + 15;\n\tindices[++ii] = voffset + 16;\n\n\t//\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 16;\n\tindices[++ii] = voffset + 19;\n\n\tindices[++ii] = voffset + 16;\n\tindices[++ii] = voffset + 17;\n\tindices[++ii] = voffset + 19;\n\n\tindices[++ii] = voffset + 17;\n\tindices[++ii] = voffset + 18;\n\tindices[++ii] = voffset + 19;\n\n\t//\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 19;\n\tindices[++ii] = voffset + 13;\n\n\tindices[++ii] = voffset + 19;\n\tindices[++ii] = voffset + 20;\n\tindices[++ii] = voffset + 13;\n\n\tindices[++ii] = voffset + 20;\n\tindices[++ii] = voffset + 21;\n\tindices[++ii] = voffset + 13;\n};\n\nexport const buildTriangleRoundedVertex = (\n\tvertices: Float32Array,\n\tvoffset: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\tstrokeAlign: number,\n\tstrokeWidth: number,\n\tradius: number,\n\tinternalTransform: Matrix,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\t// Calculate the transformed positions\n\tconst s = strokeAlign * strokeWidth;\n\tconst sx = sizeX * 0.5 + (0 <= sizeX ? +s : -s);\n\tconst sy = sizeY * 0.5 + (0 <= sizeY ? +s : -s);\n\tconst sz = Math.sqrt(sx * sx + 4 * sy * sy);\n\tconst sw = (2 * sx * sy) / (sx + sz);\n\tconst ry = (sw * radius) / (2 * sy);\n\tconst rz = (0.5 * (sz - sw) * radius) / sz;\n\tconst rx = (ry * sz) / (2 * sx);\n\n\tconst work = TRIANGLE_ROUNDED_WORK_POINT;\n\twork.set(originX, originY - sy);\n\tinternalTransform.apply(work, work);\n\tconst x1 = work.x;\n\tconst y1 = work.y;\n\twork.set(originX, originY);\n\tinternalTransform.apply(work, work);\n\tconst tx = work.x;\n\tconst ty = work.y;\n\twork.set(originX + sx, originY);\n\tinternalTransform.apply(work, work);\n\tconst dx = tx - x1;\n\tconst dy = ty - y1;\n\tconst x4 = work.x + dx;\n\tconst y4 = work.y + dy;\n\tconst x7 = tx + (tx - work.x) + dx;\n\tconst y7 = ty + (ty - work.y) + dy;\n\tconst dx14 = x4 - x1;\n\tconst dy14 = y4 - y1;\n\tconst x2 = x1 + rz * dx14;\n\tconst y2 = y1 + rz * dy14;\n\tconst x3 = x4 - ry * dx14;\n\tconst y3 = y4 - ry * dy14;\n\tconst dx47r = rx * (x7 - x4);\n\tconst dy47r = rx * (y7 - y4);\n\tconst x5 = x4 + dx47r;\n\tconst y5 = y4 + dy47r;\n\tconst x6 = x7 - dx47r;\n\tconst y6 = y7 - dy47r;\n\tconst dx71 = x1 - x7;\n\tconst dy71 = y1 - y7;\n\tconst x8 = x7 + ry * dx71;\n\tconst y8 = y7 + ry * dy71;\n\tconst x9 = x1 - rz * dx71;\n\tconst y9 = y1 - rz * dy71;\n\twork.set(originX, originY + sy - sw); // Incenter of a triangle\n\tinternalTransform.apply(work, work);\n\tconst x0 = work.x;\n\tconst y0 = work.y;\n\n\tconst x10 = x1 + radius * (x0 - x1);\n\tconst y10 = y1 + radius * (y0 - y1);\n\tconst x11 = x4 + radius * (x0 - x4);\n\tconst y11 = y4 + radius * (y0 - y4);\n\tconst x12 = x7 + radius * (x0 - x7);\n\tconst y12 = y7 + radius * (y0 - y7);\n\n\t// World size\n\tconst xb = tx + dx;\n\tconst yb = ty + dy;\n\tworldSize[0] = toLength(xb, yb, x0, y0);\n\tworldSize[1] = rx;\n\tworldSize[2] = ry;\n\tworldSize[3] = rz;\n\tworldSize[4] = 1 - (0.5 * sw) / sy;\n\n\t// Vertices\n\t// Top corner\n\tlet iv = voffset * 2 - 1;\n\tvertices[++iv] = x10;\n\tvertices[++iv] = y10;\n\tvertices[++iv] = x9;\n\tvertices[++iv] = y9;\n\tvertices[++iv] = x1;\n\tvertices[++iv] = y1;\n\tvertices[++iv] = x2;\n\tvertices[++iv] = y2;\n\n\t// Bottom-right corner\n\tvertices[++iv] = x11;\n\tvertices[++iv] = y11;\n\tvertices[++iv] = x3;\n\tvertices[++iv] = y3;\n\tvertices[++iv] = x4;\n\tvertices[++iv] = y4;\n\tvertices[++iv] = x5;\n\tvertices[++iv] = y5;\n\n\t// Bottom-left corner\n\tvertices[++iv] = x12;\n\tvertices[++iv] = y12;\n\tvertices[++iv] = x6;\n\tvertices[++iv] = y6;\n\tvertices[++iv] = x7;\n\tvertices[++iv] = y7;\n\tvertices[++iv] = x8;\n\tvertices[++iv] = y8;\n\n\t// Others\n\tvertices[++iv] = x0;\n\tvertices[++iv] = y0;\n\n\tvertices[++iv] = x10;\n\tvertices[++iv] = y10;\n\n\tvertices[++iv] = x2;\n\tvertices[++iv] = y2;\n\tvertices[++iv] = x3;\n\tvertices[++iv] = y3;\n\n\tvertices[++iv] = x11;\n\tvertices[++iv] = y11;\n\n\tvertices[++iv] = x5;\n\tvertices[++iv] = y5;\n\tvertices[++iv] = x6;\n\tvertices[++iv] = y6;\n\n\tvertices[++iv] = x12;\n\tvertices[++iv] = y12;\n\n\tvertices[++iv] = x8;\n\tvertices[++iv] = y8;\n\tvertices[++iv] = x9;\n\tvertices[++iv] = y9;\n};\n\nexport const buildTriangleRoundedClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tcorner: EShapeCorner,\n\tradius: number\n): void => {\n\t// Top corner\n\tlet iv = voffset * 3 - 1;\n\tconst w = 1 - radius;\n\tif (corner & EShapeCorner.TOP) {\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t} else {\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t}\n\n\t// Bottom-right corner\n\tif (corner & EShapeCorner.BOTTOM_RIGHT) {\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t} else {\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t}\n\n\t// Bottom-left corner\n\tif (corner & EShapeCorner.BOTTOM_LEFT) {\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t} else {\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t\tclippings[++iv] = w;\n\t\tclippings[++iv] = 1;\n\t\tclippings[++iv] = 0;\n\t}\n\n\t// Others\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = w;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = w;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = w;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 1;\n\tclippings[++iv] = 0;\n\tclippings[++iv] = 0;\n};\n\nexport const buildTriangleRoundedStep = (\n\tsteps: Float32Array,\n\tclippings: Float32Array,\n\tvoffset: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tradius: number,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\n\tconst s = worldSize[0];\n\tconst sr = radius * s;\n\n\tlet ic = voffset * 3;\n\tlet is = voffset * 6 - 1;\n\tfor (let i = 0; i < TRIANGLE_ROUNDED_VERTEX_COUNT; i += 1, ic += 3) {\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = scaleInvariant;\n\t\tif (0.5 < clippings[ic + 2]) {\n\t\t\tsteps[++is] = sr;\n\t\t\tsteps[++is] = sr;\n\t\t\tsteps[++is] = 1 + clippings[ic];\n\t\t\tsteps[++is] = 1 + clippings[ic + 1];\n\t\t} else {\n\t\t\tsteps[++is] = s;\n\t\t\tsteps[++is] = s;\n\t\t\tsteps[++is] = 1 + clippings[ic];\n\t\t\tsteps[++is] = 1 + clippings[ic + 1];\n\t\t}\n\t}\n};\n\nexport const buildTriangleRoundedUv = (\n\tuvs: Float32Array,\n\tvoffset: number,\n\ttextureUvs: TextureUvs,\n\tradius: number,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\tconst x0 = textureUvs.x0;\n\tconst x1 = textureUvs.x1;\n\tconst x2 = textureUvs.x2;\n\tconst x3 = textureUvs.x3;\n\tconst y0 = textureUvs.y0;\n\tconst y1 = textureUvs.y1;\n\tconst y2 = textureUvs.y2;\n\tconst y3 = textureUvs.y3;\n\n\tconst x4 = 0.5 * (x0 + x1);\n\tconst y4 = 0.5 * (y0 + y1);\n\n\tconst c = worldSize[4];\n\tconst x5 = x4 + c * (x3 - x0);\n\tconst y5 = y4 + c * (y3 - y0);\n\n\tconst rx = worldSize[1];\n\tconst ry = worldSize[2];\n\tconst rz = worldSize[3];\n\tconst x6 = x4 + rz * (x3 - x4);\n\tconst y6 = y4 + rz * (y3 - y4);\n\tconst x7 = x4 + radius * (x5 - x4);\n\tconst y7 = y4 + radius * (y5 - y4);\n\tconst x8 = x4 + rz * (x2 - x4);\n\tconst y8 = y4 + rz * (y2 - y4);\n\n\tconst x9 = x2 + ry * (x4 - x2);\n\tconst y9 = y2 + ry * (y4 - y2);\n\tconst x10 = x2 + radius * (x5 - x2);\n\tconst y10 = y2 + radius * (y5 - y2);\n\tconst x11 = x2 + rx * (x3 - x2);\n\tconst y11 = y2 + rx * (y3 - y2);\n\n\tconst x12 = x3 + rx * (x2 - x3);\n\tconst y12 = y3 + rx * (y2 - y3);\n\tconst x13 = x3 + radius * (x5 - x3);\n\tconst y13 = y3 + radius * (y5 - y3);\n\tconst x14 = x3 + ry * (x4 - x3);\n\tconst y14 = y3 + ry * (y4 - y3);\n\n\t// Uvs\n\t// Top corner\n\tlet iuv = voffset * 2 - 1;\n\tuvs[++iuv] = x7;\n\tuvs[++iuv] = y7;\n\tuvs[++iuv] = x6;\n\tuvs[++iuv] = y6;\n\tuvs[++iuv] = x4;\n\tuvs[++iuv] = y4;\n\tuvs[++iuv] = x8;\n\tuvs[++iuv] = y8;\n\n\t// Bottom-right corner\n\tuvs[++iuv] = x10;\n\tuvs[++iuv] = y10;\n\tuvs[++iuv] = x9;\n\tuvs[++iuv] = y9;\n\tuvs[++iuv] = x2;\n\tuvs[++iuv] = y2;\n\tuvs[++iuv] = x11;\n\tuvs[++iuv] = y11;\n\n\t// Bottom-left corner\n\tuvs[++iuv] = x13;\n\tuvs[++iuv] = y13;\n\tuvs[++iuv] = x12;\n\tuvs[++iuv] = y12;\n\tuvs[++iuv] = x3;\n\tuvs[++iuv] = y3;\n\tuvs[++iuv] = x14;\n\tuvs[++iuv] = y14;\n\n\t// Others\n\tuvs[++iuv] = x5;\n\tuvs[++iuv] = y5;\n\n\tuvs[++iuv] = x7;\n\tuvs[++iuv] = y7;\n\n\tuvs[++iuv] = x8;\n\tuvs[++iuv] = y8;\n\tuvs[++iuv] = x9;\n\tuvs[++iuv] = y9;\n\n\tuvs[++iuv] = x10;\n\tuvs[++iuv] = y10;\n\n\tuvs[++iuv] = x11;\n\tuvs[++iuv] = y11;\n\tuvs[++iuv] = x12;\n\tuvs[++iuv] = y12;\n\n\tuvs[++iuv] = x13;\n\tuvs[++iuv] = y13;\n\n\tuvs[++iuv] = x14;\n\tuvs[++iuv] = y14;\n\tuvs[++iuv] = x6;\n\tuvs[++iuv] = y6;\n};\n"]}
1
+ {"version":3,"file":"build-triangle-rounded.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-triangle-rounded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAc,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,IAAM,6BAA6B,GAAG,EAAE,CAAC;AAChD,MAAM,CAAC,IAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,IAAM,2BAA2B,GAA6C;IACpF,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CACb,CAAC;AACF,IAAM,2BAA2B,GAAU,IAAI,KAAK,EAAE,CAAC;AAEvD,MAAM,CAAC,IAAM,yBAAyB,GAAG,UACxC,OAAkC,EAClC,OAAe,EACf,OAAe;IAEf,aAAa;IACb,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAE5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAE5B,sBAAsB;IACtB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAE5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAE5B,qBAAqB;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,SAAS;IACT,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,EAAE;IACF,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,EAAE;IACF,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,0BAA0B,GAAG,UACzC,QAAsB,EACtB,OAAe,EACf,OAAe,EACf,OAAe,EACf,KAAa,EACb,KAAa,EACb,WAAmB,EACnB,WAAmB,EACnB,MAAc,EACd,iBAAyB,EACzB,SAA6C;IAE7C,sCAAsC;IACtC,IAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,IAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,IAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,IAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC3C,IAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAEhC,IAAM,IAAI,GAAG,2BAA2B,CAAC;IACzC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;IAChC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3B,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IACvB,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnC,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACnC,IAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IACrB,IAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IACrB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAM,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IACrB,IAAM,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;IACrB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,yBAAyB;IAC/D,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClB,IAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAElB,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpC,aAAa;IACb,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAClB,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAEnC,WAAW;IACX,aAAa;IACb,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,SAAS;IACT,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAErB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAErB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAEpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAErB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,wBAAwB,GAAG,UACvC,KAAmB,EACnB,OAAe,EACf,WAAmB,EACnB,WAA8B,EAC9B,MAAoB,EACpB,MAAc,EACd,SAA6C;IAE7C,IAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAErD,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,IAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;IACtB,IAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAErB,IAAM,EAAE,GAAG,aAAa,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,IAAM,EAAE,GAAG,aAAa,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAElD,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC,aAAa;IACb,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE;QAC9B,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;SAAM;QACN,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;IAED,sBAAsB;IACtB,IAAI,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE;QACvC,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;SAAM;QACN,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;IAED,qBAAqB;IACrB,IAAI,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE;QACtC,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;SAAM;QACN,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM;QACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;QAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KAChB;IAED,SAAS;IACT,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM;IACN,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAClB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,sBAAsB,GAAG,UACrC,GAAiB,EACjB,OAAe,EACf,UAAsB,EACtB,MAAc,EACd,SAA6C;IAE7C,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IAEzB,IAAM,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,IAAM,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE3B,IAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9B,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,IAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE/B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAEhC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,IAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAEhC,MAAM;IACN,aAAa;IACb,IAAI,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAEhB,sBAAsB;IACtB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjB,qBAAqB;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjB,SAAS;IACT,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAEhB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAEhB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAEhB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { EShapeCorner } from \"../e-shape-corner\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\nimport { toPackedF2x1024, toPackedI4x64 } from \"./to-packed\";\n\nexport const TRIANGLE_ROUNDED_VERTEX_COUNT = 22;\nexport const TRIANGLE_ROUNDED_INDEX_COUNT = 15;\nexport const TRIANGLE_ROUNDED_WORLD_SIZE: [number, number, number, number, number] = [\n\t0, 0, 0, 0, 0\n];\nconst TRIANGLE_ROUNDED_WORK_POINT: Point = new Point();\n\nexport const buildTriangleRoundedIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number\n): void => {\n\t// Top corner\n\tlet ii = ioffset * 3 - 1;\n\tindices[++ii] = voffset + 0;\n\tindices[++ii] = voffset + 1;\n\tindices[++ii] = voffset + 3;\n\n\tindices[++ii] = voffset + 1;\n\tindices[++ii] = voffset + 2;\n\tindices[++ii] = voffset + 3;\n\n\t// Bottom-right corner\n\tindices[++ii] = voffset + 4;\n\tindices[++ii] = voffset + 5;\n\tindices[++ii] = voffset + 7;\n\n\tindices[++ii] = voffset + 5;\n\tindices[++ii] = voffset + 6;\n\tindices[++ii] = voffset + 7;\n\n\t// Bottom-left corner\n\tindices[++ii] = voffset + 8;\n\tindices[++ii] = voffset + 9;\n\tindices[++ii] = voffset + 11;\n\n\tindices[++ii] = voffset + 9;\n\tindices[++ii] = voffset + 10;\n\tindices[++ii] = voffset + 11;\n\n\t// Others\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 13;\n\tindices[++ii] = voffset + 16;\n\n\tindices[++ii] = voffset + 13;\n\tindices[++ii] = voffset + 14;\n\tindices[++ii] = voffset + 16;\n\n\tindices[++ii] = voffset + 14;\n\tindices[++ii] = voffset + 15;\n\tindices[++ii] = voffset + 16;\n\n\t//\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 16;\n\tindices[++ii] = voffset + 19;\n\n\tindices[++ii] = voffset + 16;\n\tindices[++ii] = voffset + 17;\n\tindices[++ii] = voffset + 19;\n\n\tindices[++ii] = voffset + 17;\n\tindices[++ii] = voffset + 18;\n\tindices[++ii] = voffset + 19;\n\n\t//\n\tindices[++ii] = voffset + 12;\n\tindices[++ii] = voffset + 19;\n\tindices[++ii] = voffset + 13;\n\n\tindices[++ii] = voffset + 19;\n\tindices[++ii] = voffset + 20;\n\tindices[++ii] = voffset + 13;\n\n\tindices[++ii] = voffset + 20;\n\tindices[++ii] = voffset + 21;\n\tindices[++ii] = voffset + 13;\n};\n\nexport const buildTriangleRoundedVertex = (\n\tvertices: Float32Array,\n\tvoffset: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\tstrokeAlign: number,\n\tstrokeWidth: number,\n\tradius: number,\n\tinternalTransform: Matrix,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\t// Calculate the transformed positions\n\tconst s = strokeAlign * strokeWidth;\n\tconst sx = sizeX * 0.5 + (0 <= sizeX ? +s : -s);\n\tconst sy = sizeY * 0.5 + (0 <= sizeY ? +s : -s);\n\tconst sz = Math.sqrt(sx * sx + 4 * sy * sy);\n\tconst sw = (2 * sx * sy) / (sx + sz);\n\tconst ry = (sw * radius) / (2 * sy);\n\tconst rz = (0.5 * (sz - sw) * radius) / sz;\n\tconst rx = (ry * sz) / (2 * sx);\n\n\tconst work = TRIANGLE_ROUNDED_WORK_POINT;\n\twork.set(originX, originY - sy);\n\tinternalTransform.apply(work, work);\n\tconst x1 = work.x;\n\tconst y1 = work.y;\n\twork.set(originX, originY);\n\tinternalTransform.apply(work, work);\n\tconst tx = work.x;\n\tconst ty = work.y;\n\twork.set(originX + sx, originY);\n\tinternalTransform.apply(work, work);\n\tconst dx = tx - x1;\n\tconst dy = ty - y1;\n\tconst x4 = work.x + dx;\n\tconst y4 = work.y + dy;\n\tconst x7 = tx + (tx - work.x) + dx;\n\tconst y7 = ty + (ty - work.y) + dy;\n\tconst dx14 = x4 - x1;\n\tconst dy14 = y4 - y1;\n\tconst x2 = x1 + rz * dx14;\n\tconst y2 = y1 + rz * dy14;\n\tconst x3 = x4 - ry * dx14;\n\tconst y3 = y4 - ry * dy14;\n\tconst dx47r = rx * (x7 - x4);\n\tconst dy47r = rx * (y7 - y4);\n\tconst x5 = x4 + dx47r;\n\tconst y5 = y4 + dy47r;\n\tconst x6 = x7 - dx47r;\n\tconst y6 = y7 - dy47r;\n\tconst dx71 = x1 - x7;\n\tconst dy71 = y1 - y7;\n\tconst x8 = x7 + ry * dx71;\n\tconst y8 = y7 + ry * dy71;\n\tconst x9 = x1 - rz * dx71;\n\tconst y9 = y1 - rz * dy71;\n\twork.set(originX, originY + sy - sw); // Incenter of a triangle\n\tinternalTransform.apply(work, work);\n\tconst x0 = work.x;\n\tconst y0 = work.y;\n\n\tconst x10 = x1 + radius * (x0 - x1);\n\tconst y10 = y1 + radius * (y0 - y1);\n\tconst x11 = x4 + radius * (x0 - x4);\n\tconst y11 = y4 + radius * (y0 - y4);\n\tconst x12 = x7 + radius * (x0 - x7);\n\tconst y12 = y7 + radius * (y0 - y7);\n\n\t// World size\n\tconst xb = tx + dx;\n\tconst yb = ty + dy;\n\tworldSize[0] = toLength(xb, yb, x0, y0);\n\tworldSize[1] = rx;\n\tworldSize[2] = ry;\n\tworldSize[3] = rz;\n\tworldSize[4] = 1 - (0.5 * sw) / sy;\n\n\t// Vertices\n\t// Top corner\n\tlet iv = voffset * 2 - 1;\n\tvertices[++iv] = x10;\n\tvertices[++iv] = y10;\n\tvertices[++iv] = x9;\n\tvertices[++iv] = y9;\n\tvertices[++iv] = x1;\n\tvertices[++iv] = y1;\n\tvertices[++iv] = x2;\n\tvertices[++iv] = y2;\n\n\t// Bottom-right corner\n\tvertices[++iv] = x11;\n\tvertices[++iv] = y11;\n\tvertices[++iv] = x3;\n\tvertices[++iv] = y3;\n\tvertices[++iv] = x4;\n\tvertices[++iv] = y4;\n\tvertices[++iv] = x5;\n\tvertices[++iv] = y5;\n\n\t// Bottom-left corner\n\tvertices[++iv] = x12;\n\tvertices[++iv] = y12;\n\tvertices[++iv] = x6;\n\tvertices[++iv] = y6;\n\tvertices[++iv] = x7;\n\tvertices[++iv] = y7;\n\tvertices[++iv] = x8;\n\tvertices[++iv] = y8;\n\n\t// Others\n\tvertices[++iv] = x0;\n\tvertices[++iv] = y0;\n\n\tvertices[++iv] = x10;\n\tvertices[++iv] = y10;\n\n\tvertices[++iv] = x2;\n\tvertices[++iv] = y2;\n\tvertices[++iv] = x3;\n\tvertices[++iv] = y3;\n\n\tvertices[++iv] = x11;\n\tvertices[++iv] = y11;\n\n\tvertices[++iv] = x5;\n\tvertices[++iv] = y5;\n\tvertices[++iv] = x6;\n\tvertices[++iv] = y6;\n\n\tvertices[++iv] = x12;\n\tvertices[++iv] = y12;\n\n\tvertices[++iv] = x8;\n\tvertices[++iv] = y8;\n\tvertices[++iv] = x9;\n\tvertices[++iv] = y9;\n};\n\nexport const buildTriangleRoundedStep = (\n\tsteps: Float32Array,\n\tvoffset: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tcorner: EShapeCorner,\n\tradius: number,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\n\tconst s = worldSize[0];\n\tconst sr = radius * s;\n\tconst w = 1 - radius;\n\n\tconst e0 = toPackedI4x64(0, scaleInvariant, 1, 1);\n\tconst e1 = toPackedI4x64(1, scaleInvariant, 1, 1);\n\n\tconst c00 = toPackedF2x1024(0, 0);\n\tconst c10 = toPackedF2x1024(1, 0);\n\tconst c11 = toPackedF2x1024(1, 1);\n\tconst c01 = toPackedF2x1024(0, 1);\n\tconst cww = toPackedF2x1024(w, w);\n\tconst c1w = toPackedF2x1024(1, w);\n\tconst cw1 = toPackedF2x1024(w, 1);\n\tconst cw0 = toPackedF2x1024(w, 0);\n\n\t// Top corner\n\tlet is = voffset * 6 - 1;\n\tif (corner & EShapeCorner.TOP) {\n\t\t// 001\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c00;\n\t\tsteps[++is] = 0;\n\n\t\t// 101\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c10;\n\t\tsteps[++is] = 0;\n\n\t\t// 111\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// 011\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c01;\n\t\tsteps[++is] = 0;\n\t} else {\n\t\t// ww0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cww;\n\t\tsteps[++is] = 0;\n\n\t\t// 1w0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c1w;\n\t\tsteps[++is] = 0;\n\n\t\t// 110\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// w10\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cw1;\n\t\tsteps[++is] = 0;\n\t}\n\n\t// Bottom-right corner\n\tif (corner & EShapeCorner.BOTTOM_RIGHT) {\n\t\t// 001\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c00;\n\t\tsteps[++is] = 0;\n\n\t\t// 101\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c10;\n\t\tsteps[++is] = 0;\n\n\t\t// 111\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// 011\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c01;\n\t\tsteps[++is] = 0;\n\t} else {\n\t\t// ww0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cww;\n\t\tsteps[++is] = 0;\n\n\t\t// 1w0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c1w;\n\t\tsteps[++is] = 0;\n\n\t\t// 110\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// w10\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cw1;\n\t\tsteps[++is] = 0;\n\t}\n\n\t// Bottom-left corner\n\tif (corner & EShapeCorner.BOTTOM_LEFT) {\n\t\t// 001\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c00;\n\t\tsteps[++is] = 0;\n\n\t\t// 101\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c10;\n\t\tsteps[++is] = 0;\n\n\t\t// 111\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// 011\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e1;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = sr;\n\t\tsteps[++is] = c01;\n\t\tsteps[++is] = 0;\n\t} else {\n\t\t// ww0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cww;\n\t\tsteps[++is] = 0;\n\n\t\t// 1w0\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c1w;\n\t\tsteps[++is] = 0;\n\n\t\t// 110\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = c11;\n\t\tsteps[++is] = 0;\n\n\t\t// w10\n\t\tsteps[++is] = strokeWidth;\n\t\tsteps[++is] = e0;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = s;\n\t\tsteps[++is] = cw1;\n\t\tsteps[++is] = 0;\n\t}\n\n\t// Others\n\t// 000\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c00;\n\tsteps[++is] = 0;\n\n\t// w00\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = cw0;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n\n\t// w00\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = cw0;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n\n\t// w00\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = cw0;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n\n\t// 100\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = s;\n\tsteps[++is] = s;\n\tsteps[++is] = c10;\n\tsteps[++is] = 0;\n};\n\nexport const buildTriangleRoundedUv = (\n\tuvs: Float32Array,\n\tvoffset: number,\n\ttextureUvs: TextureUvs,\n\tradius: number,\n\tworldSize: typeof TRIANGLE_ROUNDED_WORLD_SIZE\n): void => {\n\tconst x0 = textureUvs.x0;\n\tconst x1 = textureUvs.x1;\n\tconst x2 = textureUvs.x2;\n\tconst x3 = textureUvs.x3;\n\tconst y0 = textureUvs.y0;\n\tconst y1 = textureUvs.y1;\n\tconst y2 = textureUvs.y2;\n\tconst y3 = textureUvs.y3;\n\n\tconst x4 = 0.5 * (x0 + x1);\n\tconst y4 = 0.5 * (y0 + y1);\n\n\tconst c = worldSize[4];\n\tconst x5 = x4 + c * (x3 - x0);\n\tconst y5 = y4 + c * (y3 - y0);\n\n\tconst rx = worldSize[1];\n\tconst ry = worldSize[2];\n\tconst rz = worldSize[3];\n\tconst x6 = x4 + rz * (x3 - x4);\n\tconst y6 = y4 + rz * (y3 - y4);\n\tconst x7 = x4 + radius * (x5 - x4);\n\tconst y7 = y4 + radius * (y5 - y4);\n\tconst x8 = x4 + rz * (x2 - x4);\n\tconst y8 = y4 + rz * (y2 - y4);\n\n\tconst x9 = x2 + ry * (x4 - x2);\n\tconst y9 = y2 + ry * (y4 - y2);\n\tconst x10 = x2 + radius * (x5 - x2);\n\tconst y10 = y2 + radius * (y5 - y2);\n\tconst x11 = x2 + rx * (x3 - x2);\n\tconst y11 = y2 + rx * (y3 - y2);\n\n\tconst x12 = x3 + rx * (x2 - x3);\n\tconst y12 = y3 + rx * (y2 - y3);\n\tconst x13 = x3 + radius * (x5 - x3);\n\tconst y13 = y3 + radius * (y5 - y3);\n\tconst x14 = x3 + ry * (x4 - x3);\n\tconst y14 = y3 + ry * (y4 - y3);\n\n\t// Uvs\n\t// Top corner\n\tlet iuv = voffset * 2 - 1;\n\tuvs[++iuv] = x7;\n\tuvs[++iuv] = y7;\n\tuvs[++iuv] = x6;\n\tuvs[++iuv] = y6;\n\tuvs[++iuv] = x4;\n\tuvs[++iuv] = y4;\n\tuvs[++iuv] = x8;\n\tuvs[++iuv] = y8;\n\n\t// Bottom-right corner\n\tuvs[++iuv] = x10;\n\tuvs[++iuv] = y10;\n\tuvs[++iuv] = x9;\n\tuvs[++iuv] = y9;\n\tuvs[++iuv] = x2;\n\tuvs[++iuv] = y2;\n\tuvs[++iuv] = x11;\n\tuvs[++iuv] = y11;\n\n\t// Bottom-left corner\n\tuvs[++iuv] = x13;\n\tuvs[++iuv] = y13;\n\tuvs[++iuv] = x12;\n\tuvs[++iuv] = y12;\n\tuvs[++iuv] = x3;\n\tuvs[++iuv] = y3;\n\tuvs[++iuv] = x14;\n\tuvs[++iuv] = y14;\n\n\t// Others\n\tuvs[++iuv] = x5;\n\tuvs[++iuv] = y5;\n\n\tuvs[++iuv] = x7;\n\tuvs[++iuv] = y7;\n\n\tuvs[++iuv] = x8;\n\tuvs[++iuv] = y8;\n\tuvs[++iuv] = x9;\n\tuvs[++iuv] = y9;\n\n\tuvs[++iuv] = x10;\n\tuvs[++iuv] = y10;\n\n\tuvs[++iuv] = x11;\n\tuvs[++iuv] = y11;\n\tuvs[++iuv] = x12;\n\tuvs[++iuv] = y12;\n\n\tuvs[++iuv] = x13;\n\tuvs[++iuv] = y13;\n\n\tuvs[++iuv] = x14;\n\tuvs[++iuv] = y14;\n\tuvs[++iuv] = x6;\n\tuvs[++iuv] = y6;\n};\n"]}