@wcardinal/wcardinal-ui 0.403.0 → 0.405.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 (157) hide show
  1. package/dist/types/wcardinal/ui/d-base-overflow-mask-simple.d.ts +3 -0
  2. package/dist/types/wcardinal/ui/d-base-overflow-mask.d.ts +6 -0
  3. package/dist/types/wcardinal/ui/shape/e-shape-buffer.d.ts +0 -3
  4. package/dist/types/wcardinal/ui/shape/e-shape-points-formatted.d.ts +2 -0
  5. package/dist/types/wcardinal/ui/shape/e-shape-points.d.ts +2 -0
  6. package/dist/types/wcardinal/ui/shape/e-shape-text.d.ts +3 -0
  7. package/dist/types/wcardinal/ui/shape/e-shape-uploaded.d.ts +5 -5
  8. package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +1 -1
  9. package/dist/types/wcardinal/ui/shape/variant/builder-bar.d.ts +3 -3
  10. package/dist/types/wcardinal/ui/shape/variant/builder-base.d.ts +9 -7
  11. package/dist/types/wcardinal/ui/shape/variant/builder-circle.d.ts +3 -3
  12. package/dist/types/wcardinal/ui/shape/variant/builder-image-sdf.d.ts +3 -3
  13. package/dist/types/wcardinal/ui/shape/variant/builder-label.d.ts +10 -9
  14. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-any.d.ts +4 -1
  15. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-circles.d.ts +2 -2
  16. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.d.ts +3 -3
  17. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangles.d.ts +2 -2
  18. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.d.ts +3 -3
  19. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangles.d.ts +2 -2
  20. package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +4 -3
  21. package/dist/types/wcardinal/ui/shape/variant/builder-marker-circle.d.ts +3 -3
  22. package/dist/types/wcardinal/ui/shape/variant/builder-marker-rectangle.d.ts +3 -3
  23. package/dist/types/wcardinal/ui/shape/variant/builder-marker-triangle.d.ts +3 -3
  24. package/dist/types/wcardinal/ui/shape/variant/builder-null.d.ts +10 -9
  25. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-pivoted.d.ts +3 -2
  26. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-rounded.d.ts +3 -3
  27. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle.d.ts +3 -2
  28. package/dist/types/wcardinal/ui/shape/variant/builder-semicircle.d.ts +3 -3
  29. package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +9 -7
  30. package/dist/types/wcardinal/ui/shape/variant/builder-triangle-rounded.d.ts +3 -3
  31. package/dist/types/wcardinal/ui/shape/variant/builder-triangle.d.ts +3 -2
  32. package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +5 -2
  33. package/dist/types/wcardinal/ui/shape/variant/create-line-of-any-uploaded.d.ts +2 -2
  34. package/dist/types/wcardinal/ui/shape/variant/e-shape-bar-points.d.ts +1 -0
  35. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-points.d.ts +1 -0
  36. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.d.ts +3 -0
  37. package/dist/types/wcardinal/ui/shape/variant/e-shape-line-points.d.ts +3 -0
  38. package/dist/types/wcardinal/ui/shape/variant/e-shape-text-impl.d.ts +5 -0
  39. package/dist/wcardinal/ui/d-base-overflow-mask-simple.js +9 -0
  40. package/dist/wcardinal/ui/d-base-overflow-mask-simple.js.map +1 -1
  41. package/dist/wcardinal/ui/d-base-overflow-mask.js +19 -2
  42. package/dist/wcardinal/ui/d-base-overflow-mask.js.map +1 -1
  43. package/dist/wcardinal/ui/shape/e-shape-buffer.js +11 -27
  44. package/dist/wcardinal/ui/shape/e-shape-buffer.js.map +1 -1
  45. package/dist/wcardinal/ui/shape/e-shape-points-formatted.js.map +1 -1
  46. package/dist/wcardinal/ui/shape/e-shape-points.js.map +1 -1
  47. package/dist/wcardinal/ui/shape/e-shape-text.js.map +1 -1
  48. package/dist/wcardinal/ui/shape/e-shape-uploaded.js +22 -8
  49. package/dist/wcardinal/ui/shape/e-shape-uploaded.js.map +1 -1
  50. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js +1 -1
  51. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js.map +1 -1
  52. package/dist/wcardinal/ui/shape/variant/build-line.js +6 -5
  53. package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
  54. package/dist/wcardinal/ui/shape/variant/build-text.js +1 -1
  55. package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
  56. package/dist/wcardinal/ui/shape/variant/builder-bar.js +6 -4
  57. package/dist/wcardinal/ui/shape/variant/builder-bar.js.map +1 -1
  58. package/dist/wcardinal/ui/shape/variant/builder-base.js +22 -1
  59. package/dist/wcardinal/ui/shape/variant/builder-base.js.map +1 -1
  60. package/dist/wcardinal/ui/shape/variant/builder-circle.js +6 -4
  61. package/dist/wcardinal/ui/shape/variant/builder-circle.js.map +1 -1
  62. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js +6 -4
  63. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js.map +1 -1
  64. package/dist/wcardinal/ui/shape/variant/builder-label.js +13 -6
  65. package/dist/wcardinal/ui/shape/variant/builder-label.js.map +1 -1
  66. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js +36 -5
  67. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js.map +1 -1
  68. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js +4 -2
  69. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js.map +1 -1
  70. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js +6 -4
  71. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js.map +1 -1
  72. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js +4 -2
  73. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js.map +1 -1
  74. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js +6 -4
  75. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js.map +1 -1
  76. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js +4 -2
  77. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js.map +1 -1
  78. package/dist/wcardinal/ui/shape/variant/builder-line.js +34 -5
  79. package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
  80. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js +6 -4
  81. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js.map +1 -1
  82. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js +6 -4
  83. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js.map +1 -1
  84. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js +6 -4
  85. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js.map +1 -1
  86. package/dist/wcardinal/ui/shape/variant/builder-null.js +11 -4
  87. package/dist/wcardinal/ui/shape/variant/builder-null.js.map +1 -1
  88. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js +7 -5
  89. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js.map +1 -1
  90. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js +7 -5
  91. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js.map +1 -1
  92. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js +7 -5
  93. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js.map +1 -1
  94. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js +6 -4
  95. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js.map +1 -1
  96. package/dist/wcardinal/ui/shape/variant/builder-text.js +36 -4
  97. package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
  98. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js +7 -5
  99. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js.map +1 -1
  100. package/dist/wcardinal/ui/shape/variant/builder-triangle.js +7 -5
  101. package/dist/wcardinal/ui/shape/variant/builder-triangle.js.map +1 -1
  102. package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
  103. package/dist/wcardinal/ui/shape/variant/create-bar-uploaded.js +2 -2
  104. package/dist/wcardinal/ui/shape/variant/create-bar-uploaded.js.map +1 -1
  105. package/dist/wcardinal/ui/shape/variant/create-circle-uploaded.js +2 -2
  106. package/dist/wcardinal/ui/shape/variant/create-circle-uploaded.js.map +1 -1
  107. package/dist/wcardinal/ui/shape/variant/create-group-uploaded.js +1 -1
  108. package/dist/wcardinal/ui/shape/variant/create-group-uploaded.js.map +1 -1
  109. package/dist/wcardinal/ui/shape/variant/create-image-sdf-uploaded.js +2 -2
  110. package/dist/wcardinal/ui/shape/variant/create-image-sdf-uploaded.js.map +1 -1
  111. package/dist/wcardinal/ui/shape/variant/create-label-uploaded.js +2 -2
  112. package/dist/wcardinal/ui/shape/variant/create-label-uploaded.js.map +1 -1
  113. package/dist/wcardinal/ui/shape/variant/create-line-of-any-uploaded.js +4 -4
  114. package/dist/wcardinal/ui/shape/variant/create-line-of-any-uploaded.js.map +1 -1
  115. package/dist/wcardinal/ui/shape/variant/create-line-uploaded.js +16 -16
  116. package/dist/wcardinal/ui/shape/variant/create-line-uploaded.js.map +1 -1
  117. package/dist/wcardinal/ui/shape/variant/create-null-uploaded.js +1 -1
  118. package/dist/wcardinal/ui/shape/variant/create-null-uploaded.js.map +1 -1
  119. package/dist/wcardinal/ui/shape/variant/create-rectangle-pivoted-uploaded.js +2 -2
  120. package/dist/wcardinal/ui/shape/variant/create-rectangle-pivoted-uploaded.js.map +1 -1
  121. package/dist/wcardinal/ui/shape/variant/create-rectangle-rounded-uploaded.js +2 -2
  122. package/dist/wcardinal/ui/shape/variant/create-rectangle-rounded-uploaded.js.map +1 -1
  123. package/dist/wcardinal/ui/shape/variant/create-rectangle-uploaded.js +2 -2
  124. package/dist/wcardinal/ui/shape/variant/create-rectangle-uploaded.js.map +1 -1
  125. package/dist/wcardinal/ui/shape/variant/create-semicircle-uploaded.js +2 -2
  126. package/dist/wcardinal/ui/shape/variant/create-semicircle-uploaded.js.map +1 -1
  127. package/dist/wcardinal/ui/shape/variant/create-triangle-rounded-uploaded.js +2 -2
  128. package/dist/wcardinal/ui/shape/variant/create-triangle-rounded-uploaded.js.map +1 -1
  129. package/dist/wcardinal/ui/shape/variant/create-triangle-uploaded.js +2 -2
  130. package/dist/wcardinal/ui/shape/variant/create-triangle-uploaded.js.map +1 -1
  131. package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js +7 -0
  132. package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js.map +1 -1
  133. package/dist/wcardinal/ui/shape/variant/e-shape-group-points.js +14 -0
  134. package/dist/wcardinal/ui/shape/variant/e-shape-group-points.js.map +1 -1
  135. package/dist/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.js +15 -2
  136. package/dist/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.js.map +1 -1
  137. package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js +19 -3
  138. package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js.map +1 -1
  139. package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js +57 -24
  140. package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js.map +1 -1
  141. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  142. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  143. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  144. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  145. package/dist/wcardinal-ui-theme-dark.js +1 -1
  146. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  147. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  148. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  149. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  150. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  151. package/dist/wcardinal-ui-theme-white.js +1 -1
  152. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  153. package/dist/wcardinal-ui.cjs.js +469 -200
  154. package/dist/wcardinal-ui.js +469 -200
  155. package/dist/wcardinal-ui.min.js +2 -2
  156. package/dist/wcardinal-ui.min.js.map +1 -1
  157. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAc,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAGN,eAAe,EACf,gBAAgB,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,CAAC,IAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,IAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,IAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,IAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,IAAM,SAAS,GAAW,OAAO,CAAC;AACzC,IAAM,eAAe,GAAU,IAAI,KAAK,EAAE,CAAC;AAE3C,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,KAAa;IAC9C,IAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAClC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAChC,SAAuB,EACvB,OAAe,EACf,MAAc;IAEd,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAM,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,KAAK,GAAI;QACpB,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACpB,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KACpB;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,cAAc,GAAG,UAC7B,OAAkC,EAClC,OAAe,EACf,OAAe,EACf,MAAc;IAEd,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAM,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,EAAE,GAAG,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,KAAK,GAAI;QACpB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,EAAE,IAAI,CAAC,CAAC;KACR;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAC5B,KAAmB,EACnB,OAAe,EACf,MAAc,EACd,SAAsC,EACtC,QAAgB,EAChB,gBAAwB,EACxB,UAA4B,EAC5B,MAAc,EACd,MAAc;IAEd,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,IAAM,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzC,IAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,SAAS,IAAI,IAAI,EAAE;QACtB,IAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACzE,IAAM,QAAQ,GAAG,UAAU,KAAK,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,OAAO,EAAE,GAAG,KAAK,GAAI;YACpB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC;YAC/B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;YAC7B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;YACpB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;SACvB;KACD;SAAM;QACN,OAAO,EAAE,GAAG,KAAK,GAAI;YACpB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC;YAC7B,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;SAChB;KACD;AACF,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG,UACnB,MAAiC,EACjC,MAA+B,EAC/B,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,KAAa,EACb,MAAc,EACd,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU,EACV,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAa;IAEb,QAAQ,MAAM,EAAE;QACf,KAAK,yBAAyB,CAAC,IAAI;YAClC,QAAQ,MAAM,EAAE;gBACf,KAAK,uBAAuB,CAAC,GAAG;oBAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;4BAC1B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;4BAC1B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM;gBACP,KAAK,uBAAuB,CAAC,WAAW;oBACvC,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM;gBACP,KAAK,uBAAuB,CAAC,cAAc;oBAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM;aACP;YACD,MAAM;QACP,KAAK,yBAAyB,CAAC,MAAM;YACpC,QAAQ,MAAM,EAAE;gBACf,KAAK,uBAAuB,CAAC,GAAG;oBAC/B,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAC5B,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAC5B,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,WAAW;oBACvC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,cAAc;oBAC1C,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAC5B,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;4BAC7B,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAC5B,MAAM;aACP;YACD,MAAM;QACP,KAAK,yBAAyB,CAAC,KAAK;YACnC,QAAQ,MAAM,EAAE;gBACf,KAAK,uBAAuB,CAAC,GAAG;oBAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,WAAW;oBACvC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,cAAc;oBAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM;aACP;YACD,MAAM;QACP,KAAK,yBAAyB,CAAC,YAAY;YAC1C,QAAQ,MAAM,EAAE;gBACf,KAAK,uBAAuB,CAAC,GAAG;oBAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,WAAW;oBACvC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM,CAAC,CAAC;wBACP,EAAE;4BACF,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;4BAClC,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACrC,MAAM;gBACP,KAAK,uBAAuB,CAAC,cAAc;oBAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBAChF,MAAM;aACP;YACD,MAAM;QACP,KAAK,yBAAyB,CAAC,aAAa;YAC3C,QAAQ,MAAM,EAAE;gBACf,KAAK,uBAAuB,CAAC,GAAG;oBAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;4BAC1B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM,CAAC,CAAC;wBACP,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;4BAC1B,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC;oBAChC,MAAM;gBACP,KAAK,uBAAuB,CAAC,MAAM;oBAClC,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM;gBACP,KAAK,uBAAuB,CAAC,WAAW;oBACvC,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM,CAAC,CAAC;wBACP,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;oBACvE,MAAM;gBACP,KAAK,uBAAuB,CAAC,cAAc;oBAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;oBACxE,MAAM;aACP;YACD,MAAM;KACP;AACF,CAAC,CAAC;AAEF,IAAM,0BAA0B,GAAG,UAAC,KAAgC;IACnE,QAAQ,KAAK,EAAE;QACd,KAAK,yBAAyB,CAAC,IAAI;YAClC,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,yBAAyB,CAAC,MAAM;YACpC,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,yBAAyB,CAAC,KAAK;YACnC,OAAO,uBAAuB,CAAC,GAAG,CAAC;QACpC,KAAK,yBAAyB,CAAC,YAAY;YAC1C,OAAO,uBAAuB,CAAC,cAAc,CAAC;QAC/C,KAAK,yBAAyB,CAAC,aAAa;YAC3C,OAAO,uBAAuB,CAAC,WAAW,CAAC;KAC5C;AACF,CAAC,CAAC;AAEF,IAAM,wBAAwB,GAAG,UAAC,KAA8B;IAC/D,QAAQ,KAAK,EAAE;QACd,KAAK,uBAAuB,CAAC,GAAG;YAC/B,OAAO,yBAAyB,CAAC,IAAI,CAAC;QACvC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,yBAAyB,CAAC,MAAM,CAAC;QACzC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,yBAAyB,CAAC,KAAK,CAAC;QACxC,KAAK,uBAAuB,CAAC,WAAW;YACvC,OAAO,yBAAyB,CAAC,YAAY,CAAC;QAC/C,KAAK,uBAAuB,CAAC,cAAc;YAC1C,OAAO,yBAAyB,CAAC,aAAa,CAAC;KAChD;AACF,CAAC,CAAC;AAEF,IAAM,yBAAyB,GAAG,UAAC,KAAgC;IAClE,QAAQ,KAAK,EAAE;QACd,KAAK,yBAAyB,CAAC,IAAI;YAClC,OAAO,uBAAuB,CAAC,GAAG,CAAC;QACpC,KAAK,yBAAyB,CAAC,MAAM;YACpC,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,yBAAyB,CAAC,KAAK;YACnC,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,yBAAyB,CAAC,YAAY;YAC1C,OAAO,uBAAuB,CAAC,WAAW,CAAC;QAC5C,KAAK,yBAAyB,CAAC,aAAa;YAC3C,OAAO,uBAAuB,CAAC,cAAc,CAAC;KAC/C;AACF,CAAC,CAAC;AAEF,IAAM,uBAAuB,GAAG,UAAC,KAA8B;IAC9D,QAAQ,KAAK,EAAE;QACd,KAAK,uBAAuB,CAAC,GAAG;YAC/B,OAAO,yBAAyB,CAAC,KAAK,CAAC;QACxC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,yBAAyB,CAAC,MAAM,CAAC;QACzC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,yBAAyB,CAAC,IAAI,CAAC;QACvC,KAAK,uBAAuB,CAAC,WAAW;YACvC,OAAO,yBAAyB,CAAC,aAAa,CAAC;QAChD,KAAK,uBAAuB,CAAC,cAAc;YAC1C,OAAO,yBAAyB,CAAC,YAAY,CAAC;KAC/C;AACF,CAAC,CAAC;AAEF,IAAM,qBAAqB,GAAG,UAAC,KAAgC;IAC9D,QAAQ,KAAK,EAAE;QACd,KAAK,yBAAyB,CAAC,IAAI;YAClC,OAAO,yBAAyB,CAAC,KAAK,CAAC;QACxC,KAAK,yBAAyB,CAAC,MAAM;YACpC,OAAO,yBAAyB,CAAC,MAAM,CAAC;QACzC,KAAK,yBAAyB,CAAC,KAAK;YACnC,OAAO,yBAAyB,CAAC,IAAI,CAAC;QACvC,KAAK,yBAAyB,CAAC,YAAY;YAC1C,OAAO,yBAAyB,CAAC,aAAa,CAAC;QAChD,KAAK,yBAAyB,CAAC,aAAa;YAC3C,OAAO,yBAAyB,CAAC,YAAY,CAAC;KAC/C;AACF,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAAC,KAA8B;IAC1D,QAAQ,KAAK,EAAE;QACd,KAAK,uBAAuB,CAAC,GAAG;YAC/B,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,uBAAuB,CAAC,MAAM,CAAC;QACvC,KAAK,uBAAuB,CAAC,MAAM;YAClC,OAAO,uBAAuB,CAAC,GAAG,CAAC;QACpC,KAAK,uBAAuB,CAAC,WAAW;YACvC,OAAO,uBAAuB,CAAC,cAAc,CAAC;QAC/C,KAAK,uBAAuB,CAAC,cAAc;YAC1C,OAAO,uBAAuB,CAAC,WAAW,CAAC;KAC5C;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAC9B,QAAsB,EACtB,GAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAAe,EACf,OAAe,EACf,KAAa,EACb,KAAa,EACb,SAA0B,EAC1B,QAAgB,EAChB,SAAiB,EACjB,SAA0B,EAC1B,mBAA8C,EAC9C,iBAA0C,EAC1C,oBAA4B,EAC5B,kBAA0B,EAC1B,qBAA6B,EAC7B,mBAA2B,EAC3B,aAAkC,EAClC,qBAA6B,EAC7B,mBAA2B,EAC3B,YAAqB,EACrB,WAAoB,EACpB,SAAmB,EACnB,UAAsB,EACtB,iBAAyB;IAEzB,sCAAsC;IACtC,EAAE;IACF,qBAAqB;IACrB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,EAAE;IACF,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC;IACvB,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC;IAEvB,IAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC9B,IAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC9B,IAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC9B,IAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC9B,IAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAChC,IAAM,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;IAEhC,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1B,IAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE1B,oBAAoB;IACpB,IAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,SAAS,GAAG,GAAG,EAAE;QACpB,IAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QACrB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QACf,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;KACf;IAED,kBAAkB;IAClB,IAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,SAAS,GAAG,GAAG,EAAE;QACpB,IAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC;QACrB,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QACf,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;KACf;IAED,IAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,QAAQ,aAAa,EAAE;QACtB,KAAK,mBAAmB,CAAC,aAAa;YACrC,aAAa;YACb,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnB,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YAEb,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YACb,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnB,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAEd,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YACb,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,GAAG,CAAC,GAAG,CAAC;YACX,MAAM;KACP;IAED,+BAA+B;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,QAAQ,GAAG,GAAG,CAAC;IAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,mBAAmB,CAAC,GAAG,GAAG,CAAC;IACnE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAM,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC;IACjD,IAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE;QAC1B,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,SAAS,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,GAAG,eAAe,EAAE;gBACxB,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC,CAAC;aAClE;YACD,IAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,IAAI,EAAE;gBACT,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/B,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;aACzB;iBAAM;gBACN,eAAe,GAAG,CAAC,CAAC;aACpB;SACD;aAAM;YACN,SAAS,IAAI,eAAe,CAAC;YAC7B,eAAe,GAAG,CAAC,CAAC;YACpB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnC,SAAS,GAAG,CAAC,CAAC;YACd,MAAM,IAAI,UAAU,CAAC;YACrB,SAAS,IAAI,CAAC,CAAC;SACf;KACD;IACD,SAAS,IAAI,eAAe,CAAC;IAC7B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnC,MAAM,IAAI,SAAS,CAAC;IACpB,SAAS,GAAG,CAAC,CAAC;IAEd,IAAI,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;QAChE,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,QAAQ,aAAa,EAAE;YACtB,KAAK,mBAAmB,CAAC,aAAa,CAAC;YACvC,KAAK,mBAAmB,CAAC,aAAa;gBACrC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,qBAAqB,GAAG,CAAC,CAAC,CAAC;gBACjD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC;gBAC/C,MAAM;YACP,KAAK,mBAAmB,CAAC,aAAa,CAAC;YACvC,KAAK,mBAAmB,CAAC,aAAa;gBACrC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC,CAAC;gBAC/C,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,qBAAqB,GAAG,CAAC,CAAC,CAAC;gBACjD,MAAM;SACP;QACD,IAAM,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAM,EAAE,GAAG,MAAM,CAAC;QAClB,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,QAAQ,IAAI,CAAC,CAAC;QACd,SAAS,IAAI,CAAC,CAAC;QACf,UAAU,IAAI,CAAC,CAAC;QAChB,MAAM,IAAI,CAAC,CAAC;KACZ;IAED,IAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAC5B,IAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAC5B,KAAK,IAAI,MAAM,CAAC;IAChB,UAAU,IAAI,MAAM,CAAC;IAErB,EAAE;IACF,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,QAAQ,aAAa,EAAE;QACtB,KAAK,mBAAmB,CAAC,aAAa;YACrC,WAAW,CACV,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,MAAM,EACN,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,CACJ,CAAC;YACF,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;gBACjE,gBAAgB,GAAG,EAAE,GAAG,qBAAqB,GAAG,CAAC,CAAC;aAClD;YACD,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,WAAW,CACV,wBAAwB,CAAC,iBAAiB,CAAC,EAC3C,0BAA0B,CAAC,mBAAmB,CAAC,EAC/C,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,CACJ,CAAC;YACF,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;gBACjE,gBAAgB,GAAG,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC;aAChD;YACD,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,WAAW,CACV,uBAAuB,CAAC,iBAAiB,CAAC,EAC1C,yBAAyB,CAAC,mBAAmB,CAAC,EAC9C,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,EACL,MAAM,EACN,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,CACJ,CAAC;YACF,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;gBACjE,gBAAgB,GAAG,EAAE,GAAG,mBAAmB,GAAG,CAAC,CAAC;aAChD;YACD,MAAM;QACP,KAAK,mBAAmB,CAAC,aAAa;YACrC,WAAW,CACV,qBAAqB,CAAC,mBAAmB,CAAC,EAC1C,mBAAmB,CAAC,iBAAiB,CAAC,EACtC,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,EACL,MAAM,EACN,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,CACJ,CAAC;YACF,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;YACb,IAAI,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;gBACjE,gBAAgB,GAAG,EAAE,GAAG,qBAAqB,GAAG,CAAC,CAAC;aAClD;YACD,MAAM;KACP;IAED,EAAE;IACF,IAAI,gBAAgB,GAAG,KAAK,EAAE;QAC7B,IAAM,MAAM,GAAG,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC;QAChD,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;QAClC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;QAClC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;QAChC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KACnB;SAAM;QACN,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACrB,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KACnB;IAED,UAAU;IACV,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC;IAE3B,IAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3B,IAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE3B,iBAAiB;IACjB,IAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IAC7B,IAAM,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IAE7B,IAAM,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;IACzB,IAAM,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;IAEzB,IAAM,OAAO,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;IAC/C,IAAM,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;IAC1B,IAAM,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;IAE1B,IAAM,YAAY,GAAG,SAAS,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;IAChF,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC;IACzC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC;IACzC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;IACtC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC;IACtC,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,IAAI,GAAG,GAAG,GAAG,CAAC;IAEd,SAAS,GAAG,CAAC,CAAC;IACd,eAAe,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,SAAS,GAAG,CAAC,CAAC;IACd,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC;IACrB,OAAO,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;QACnC,IAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,SAAS,KAAK,IAAI,EAAE;YACvB,IAAM,iBAAiB,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,GAAG,eAAe,EAAE;gBACxB,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,qBAAqB,CAAC,CAAC;aAClE;YAED,IAAM,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC;YAC3B,IAAM,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC;YAC3B,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YAEf,IAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC5C,SAAS,IAAI,CAAC,CAAC;YACf,IAAI,IAAI,EAAE;gBACT,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7B,IAAI,gBAAgB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,MAAM,EAAE;oBACtD,IAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,IAAI,EAAE;wBACT,IACC,CAAC,GAAG,SAAS;4BACb,gBAAgB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,EACrD;4BACD,SAAS,GAAG,iBAAiB,CAAC;4BAC9B,EAAE,IAAI,CAAC,CAAC;4BACR,SAAS,IAAI,CAAC,CAAC;4BACf,IAAM,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC;4BAC3B,IAAM,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC;4BAC3B,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;4BACf,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;yBACf;wBAED,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;wBAE/B,cAAc,CACb,QAAQ,EACR,GAAG,EACH,EAAE,EACF,IAAI,EACJ,SAAS,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,CACJ,CAAC;wBAEF,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE;4BAC5B,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCACjD,mBAAmB,CAClB,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACJ,CAAC;gCACF,SAAS,IAAI,CAAC,CAAC;6BACf;iCAAM;gCACN,EAAE,IAAI,CAAC,CAAC;gCACR,MAAM;6BACN;yBACD;qBACD;yBAAM;wBACN,eAAe,GAAG,OAAO,CAAC;wBAE1B,mBAAmB,CAClB,QAAQ,EACR,GAAG,EACH,EAAE,EACF,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACJ,CAAC;qBACF;iBACD;qBAAM;oBACN,eAAe,GAAG,OAAO,CAAC;oBAE1B,cAAc,CACb,QAAQ,EACR,GAAG,EACH,EAAE,EACF,IAAI,EACJ,SAAS,EACT,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,CACJ,CAAC;iBACF;aACD;iBAAM;gBACN,eAAe,GAAG,CAAC,CAAC;gBAEpB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACnF;SACD;aAAM;YACN,SAAS,IAAI,eAAe,CAAC;YAC7B,eAAe,GAAG,CAAC,CAAC;YAEpB,GAAG,IAAI,GAAG,CAAC;YACX,GAAG,IAAI,GAAG,CAAC;YACX,GAAG,IAAI,GAAG,CAAC;YACX,GAAG,IAAI,GAAG,CAAC;YACX,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,GAAG,CAAC;YACV,GAAG,GAAG,GAAG,CAAC;YAEV,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAEnF,mBAAmB,CAClB,QAAQ,EACR,GAAG,EACH,GAAG,EACH,SAAS,EACT,EAAE,EACF,KAAK,GAAG,SAAS,GAAG,MAAM,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,CACjB,CAAC;YACF,SAAS,GAAG,CAAC,CAAC;YACd,SAAS,GAAG,CAAC,CAAC;SACd;KACD;IAED,SAAS,IAAI,eAAe,CAAC;IAC7B,mBAAmB,CAClB,QAAQ,EACR,GAAG,EACH,GAAG,EACH,SAAS,EACT,EAAE,EACF,KAAK,GAAG,SAAS,GAAG,MAAM,EAC1B,aAAa,EACb,mBAAmB,EACnB,iBAAiB,CACjB,CAAC;IAEF,KAAK,IAAM,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE;QAC/D,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACvB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;KACnB;AACF,CAAC,CAAC;AAEF,IAAM,IAAI,GAAG,UACZ,mBAA8C,EAC9C,iBAA0C;IAE1C,QAAQ,mBAAmB,EAAE;QAC5B,KAAK,yBAAyB,CAAC,IAAI,CAAC;QACpC,KAAK,yBAAyB,CAAC,MAAM,CAAC;QACtC,KAAK,yBAAyB,CAAC,KAAK;YACnC,QAAQ,iBAAiB,EAAE;gBAC1B,KAAK,uBAAuB,CAAC,GAAG,CAAC;gBACjC,KAAK,uBAAuB,CAAC,MAAM,CAAC;gBACpC,KAAK,uBAAuB,CAAC,MAAM;oBAClC,OAAO,IAAI,CAAC;oBACZ,MAAM;aACP;YACD,MAAM;KACP;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAC3B,QAAsB,EACtB,GAAiB,EACjB,EAAU,EACV,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY;IAEZ,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAEvB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACpB,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UACtB,QAAsB,EACtB,GAAiB,EACjB,EAAU,EACV,IAA8B,EAC9B,KAAsB,EACtB,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,MAAc,EACd,MAAc,EACd,MAAc,EACd,MAAc,EACd,IAAY,EACZ,IAAY;IAEZ,WAAW;IACX,IAAM,WAAW,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,IAAM,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;IAC9B,IAAM,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;IAC9B,IAAM,GAAG,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;IAC5C,IAAM,GAAG,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;IAC5C,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAE7B,MAAM;IACN,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IACjC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,IAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAChD,IAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAElD,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAE1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,IAAM,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF,IAAM,QAAQ,GAAG,UAChB,QAAsB,EACtB,WAAmB,EACnB,SAAiB,EACjB,EAAU,EACV,EAAU;IAEV,IAAI,EAAE,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE;QACnC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;KACrB;AACF,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UACpB,QAAsB,EACtB,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,EAAU,EACV,EAAU;IAEV,MAAM,IAAI,GAAG,CAAC;IACd,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UACpB,QAAsB,EACtB,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,EAAU,EACV,EAAU;IAEV,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAC3B,QAAsB,EACtB,EAAU,EACV,EAAU,EACV,SAAiB,EACjB,WAAmB,EACnB,MAAc,EACd,aAAkC,EAClC,mBAA8C,EAC9C,iBAA0C;IAE1C,IAAI,SAAS,GAAG,MAAM,EAAE;QACvB,QAAQ,aAAa,EAAE;YACtB,KAAK,mBAAmB,CAAC,aAAa;gBACrC,QAAQ,mBAAmB,EAAE;oBAC5B,KAAK,yBAAyB,CAAC,aAAa,CAAC;oBAC7C,KAAK,yBAAyB,CAAC,IAAI;wBAClC,aAAa;wBACb,MAAM;oBACP,KAAK,yBAAyB,CAAC,MAAM;wBACpC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,yBAAyB,CAAC,YAAY,CAAC;oBAC5C,KAAK,yBAAyB,CAAC,KAAK;wBACnC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;iBACP;gBACD,MAAM;YACP,KAAK,mBAAmB,CAAC,aAAa;gBACrC,QAAQ,iBAAiB,EAAE;oBAC1B,KAAK,uBAAuB,CAAC,cAAc,CAAC;oBAC5C,KAAK,uBAAuB,CAAC,GAAG;wBAC/B,aAAa;wBACb,MAAM;oBACP,KAAK,uBAAuB,CAAC,MAAM;wBAClC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,uBAAuB,CAAC,WAAW,CAAC;oBACzC,KAAK,uBAAuB,CAAC,MAAM;wBAClC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;iBACP;gBACD,MAAM;YACP,KAAK,mBAAmB,CAAC,aAAa;gBACrC,QAAQ,iBAAiB,EAAE;oBAC1B,KAAK,uBAAuB,CAAC,cAAc,CAAC;oBAC5C,KAAK,uBAAuB,CAAC,GAAG;wBAC/B,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,uBAAuB,CAAC,MAAM;wBAClC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,uBAAuB,CAAC,WAAW,CAAC;oBACzC,KAAK,uBAAuB,CAAC,MAAM;wBAClC,aAAa;wBACb,MAAM;iBACP;gBACD,MAAM;YACP,KAAK,mBAAmB,CAAC,aAAa;gBACrC,QAAQ,mBAAmB,EAAE;oBAC5B,KAAK,yBAAyB,CAAC,aAAa,CAAC;oBAC7C,KAAK,yBAAyB,CAAC,IAAI;wBAClC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,yBAAyB,CAAC,MAAM;wBACpC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACP,KAAK,yBAAyB,CAAC,YAAY,CAAC;oBAC5C,KAAK,yBAAyB,CAAC,KAAK;wBACnC,aAAa;wBACb,MAAM;iBACP;gBACD,MAAM;SACP;KACD;AACF,CAAC,CAAC","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { UtilCharacterIterator } from \"../../util/util-character-iterator\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport {\n\tEShapeTextAtlas,\n\tEShapeTextAtlasCharacter,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nexport const TEXT_VERTEX_COUNT = 4;\nexport const TEXT_VERTEX_COUNT_SHIFT = 2;\nexport const TEXT_INDEX_COUNT = 2;\nexport const TEXT_INDEX_COUNT_SHIFT = 1;\nexport const TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\tconst l = shape.text.value.length;\n\treturn ((l >> 3) + (0 < (l & 0x7) ? 1 : 0)) << 3;\n};\n\nexport const buildTextClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 2;\n\t}\n};\n\nexport const buildTextIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number,\n\ticount: number\n): void => {\n\tlet ii = ioffset * 3 - 1;\n\tconst iimax = (ioffset + icount) * 3 - 1;\n\tlet iv = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = iv;\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 3;\n\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 2;\n\t\tindices[++ii] = iv + 3;\n\t\tiv += 4;\n\t}\n};\n\nexport const buildTextStep = (\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextAtlas: EShapeTextAtlas | undefined,\n\ttextSize: number,\n\ttextOutlineWidth: number,\n\ttextWeight: EShapeTextWeight,\n\tscaleX: number,\n\tscaleY: number\n): void => {\n\tlet is = voffset * 6 - 1;\n\tconst ismax = (voffset + vcount) * 6 - 1;\n\tconst scaleInvariant = toScaleInvariant(EShapeStrokeStyle.NONE);\n\tif (textAtlas != null) {\n\t\tconst scale = textAtlas.font.size / (textSize * (scaleX + scaleY) * 0.5);\n\t\tconst position = textWeight === EShapeTextWeight.NORMAL ? 0.0 : 0.05;\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = textOutlineWidth;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = scale;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = position;\n\t\t}\n\t} else {\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n};\n\nconst getTextBBox = (\n\thalign: EShapeTextAlignHorizontal,\n\tvalign: EShapeTextAlignVertical,\n\thoffset: number,\n\tvoffset: number,\n\thpadding: number,\n\tvpadding: number,\n\twidth: number,\n\theight: number,\n\tx0: number,\n\ty0: number,\n\tx1: number,\n\ty1: number,\n\tx2: number,\n\ty2: number,\n\tx3: number,\n\ty3: number,\n\thnx: number,\n\thny: number,\n\tvnx: number,\n\tvny: number,\n\tresult: Point\n): void => {\n\tswitch (halign) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n};\n\nconst rotateAlignHorizontalRight = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nconst rotateAlignVerticalRight = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t}\n};\n\nconst rotateAlignHorizontalLeft = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t}\n};\n\nconst rotateAlignVerticalLeft = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignHorizontal = (align: EShapeTextAlignHorizontal): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignVertical = (align: EShapeTextAlignVertical): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nexport const buildTextVertex = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\ttextAtlas: EShapeTextAtlas,\n\ttextSize: number,\n\ttextValue: string,\n\ttextStyle: EShapeTextStyle,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical,\n\ttextOffsetHorizontal: number,\n\ttextOffsetVertical: number,\n\ttextSpacingHorizontal: number,\n\ttextSpacingVertical: number,\n\ttextDirection: EShapeTextDirection,\n\ttextPaddingHorizontal: number,\n\ttextPaddingVertical: number,\n\ttextClipping: boolean,\n\ttextFitting: boolean,\n\ttextWorld: number[],\n\ttextureUvs: TextureUvs,\n\tinternalTransform: Matrix\n): void => {\n\t// Calculate the transformed positions\n\t//\n\t// 0 1\n\t// |---------------|\n\t// | |\n\t// |3 |2\n\t// |---------------|\n\t//\n\tconst sx = sizeX * 0.5;\n\tconst sy = sizeY * 0.5;\n\n\tconst a = internalTransform.a;\n\tconst b = internalTransform.b;\n\tconst c = internalTransform.c;\n\tconst d = internalTransform.d;\n\tconst tx = internalTransform.tx;\n\tconst ty = internalTransform.ty;\n\n\tconst ltx = originX - sx;\n\tconst lty = originY - sy;\n\tconst rtx = originX + sx;\n\tconst rty = originY - sy;\n\tconst rbx = originX + sx;\n\tconst rby = originY + sy;\n\tconst x0 = a * ltx + c * lty + tx;\n\tconst y0 = b * ltx + d * lty + ty;\n\tconst x1 = a * rtx + c * rty + tx;\n\tconst y1 = b * rtx + d * rty + ty;\n\tconst x2 = a * rbx + c * rby + tx;\n\tconst y2 = b * rbx + d * rby + ty;\n\tconst x3 = x0 + (x2 - x1);\n\tconst y3 = y0 + (y2 - y1);\n\n\t// Horizontal normal\n\tconst hl = toLength(x0, y0, x1, y1);\n\tlet hnl = toLength(0, 0, a, b);\n\tlet hnx = 1;\n\tlet hny = 0;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst hnli = 1 / hnl;\n\t\thnx = a * hnli;\n\t\thny = b * hnli;\n\t}\n\n\t// Vertical normal\n\tconst vl = toLength(x0, y0, x3, y3);\n\tlet vnl = toLength(0, 0, c, d);\n\tlet vnx = 0;\n\tlet vny = 1;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst vnli = 1 / vnl;\n\t\tvnx = c * vnli;\n\t\tvny = d * vnli;\n\t}\n\n\tconst work = TEXT_WORK_POINT;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t// DO NOTHING\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = -hnx;\n\t\t\tvny = -hny;\n\t\t\thnx = work.x;\n\t\t\thny = work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = hnx;\n\t\t\tvny = hny;\n\t\t\thnx = -work.x;\n\t\t\thny = -work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\thnx = -hnx;\n\t\t\thny = -hny;\n\t\t\tvnx = -vnx;\n\t\t\tvny = -vny;\n\t\t\tbreak;\n\t}\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tlet textSizeY = textSize * vnl;\n\tlet lineHeight = Math.max(0, textSize + textSpacingVertical) * vnl;\n\tlet lineWidth = 0;\n\tlet lineCount = 1;\n\tconst textAtlasCharacters = textAtlas.characters;\n\tconst iterator = UtilCharacterIterator.from(textValue);\n\tlet advancePrevious = 0;\n\twhile (iterator.hasNext()) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tif (data) {\n\t\t\t\tadvancePrevious = data.advance;\n\t\t\t\theightChar = data.height;\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\t\t\twidth = Math.max(width, lineWidth);\n\t\t\tlineWidth = 0;\n\t\t\theight += lineHeight;\n\t\t\tlineCount += 1;\n\t\t}\n\t}\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth);\n\theight += textSizeY;\n\tlineWidth = 0;\n\n\tif (textFitting && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\tlet w0 = 0;\n\t\tlet h0 = 0;\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\t\tw0 = Math.max(0, hl - textPaddingHorizontal * 2);\n\t\t\t\th0 = Math.max(0, vl - textPaddingVertical * 2);\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tw0 = Math.max(0, vl - textPaddingVertical * 2);\n\t\t\t\th0 = Math.max(0, hl - textPaddingHorizontal * 2);\n\t\t\t\tbreak;\n\t\t}\n\t\tconst w1 = width * hnl * (textSize / textAtlas.font.size);\n\t\tconst h1 = height;\n\t\tconst s = Math.min(1, Math.min(w0 / w1, h0 / h1));\n\t\ttextSize *= s;\n\t\ttextSizeY *= s;\n\t\tlineHeight *= s;\n\t\theight *= s;\n\t}\n\n\tconst scaleZ = textSize / textAtlas.font.size;\n\tconst scaleX = hnl * scaleZ;\n\tconst scaleY = vnl * scaleZ;\n\twidth *= scaleX;\n\theightChar *= scaleY;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = width;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tgetTextBBox(\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalRight(textAlignVertical),\n\t\t\t\trotateAlignHorizontalRight(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalLeft(textAlignVertical),\n\t\t\t\trotateAlignHorizontalLeft(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\tgetTextBBox(\n\t\t\t\tinvertAlignHorizontal(textAlignHorizontal),\n\t\t\t\tinvertAlignVertical(textAlignVertical),\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\t//\n\tif (lineWidthMaximum < width) {\n\t\tconst dwidth = (width - lineWidthMaximum) * 0.5;\n\t\ttextWorld[0] = tx0 + hnx * dwidth;\n\t\ttextWorld[1] = ty0 + hny * dwidth;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = lineWidthMaximum;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t} else {\n\t\ttextWorld[0] = tx0;\n\t\ttextWorld[1] = ty0;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = width;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t}\n\n\t// Texture\n\tconst uvx0 = textureUvs.x0;\n\tconst uvx1 = textureUvs.x1;\n\tconst uvx3 = textureUvs.x3;\n\tconst uvy0 = textureUvs.y0;\n\tconst uvy1 = textureUvs.y1;\n\tconst uvy3 = textureUvs.y3;\n\n\tconst duvx01 = uvx1 - uvx0;\n\tconst duvy01 = uvy1 - uvy0;\n\tconst duvx03 = uvx3 - uvx0;\n\tconst duvy03 = uvy3 - uvy0;\n\n\t// Vertices & UVs\n\tconst lhx = lineHeight * vnx;\n\tconst lhy = lineHeight * vny;\n\n\tconst snx = scaleX * hnx;\n\tconst sny = scaleX * hny;\n\n\tconst offsetY = (heightChar - textSizeY) * 0.5;\n\tconst oyx = offsetY * vnx;\n\tconst oyy = offsetY * vny;\n\n\tconst offsetItalic = textStyle === EShapeTextStyle.NORMAL ? 0 : textSize * 0.25;\n\tlet bx0 = tx0 - oyx + offsetItalic * snx;\n\tlet by0 = ty0 - oyy + offsetItalic * sny;\n\tlet bx3 = tx0 + oyx + textSizeY * vnx;\n\tlet by3 = ty0 + oyy + textSizeY * vny;\n\tlet cx0 = bx0;\n\tlet cy0 = by0;\n\tlet cx3 = bx3;\n\tlet cy3 = by3;\n\n\tlineWidth = 0;\n\tadvancePrevious = 0;\n\titerator.position = 0;\n\tlineCount = 0;\n\tlet iv = voffset * 2;\n\tfor (; iterator.hasNext(); iv += 8) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tconst lineWidthPrevious = lineWidth;\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\n\t\t\tconst ax = lineWidth * snx;\n\t\t\tconst ay = lineWidth * sny;\n\t\t\tcx0 = bx0 + ax;\n\t\t\tcy0 = by0 + ay;\n\t\t\tcx3 = bx3 + ax;\n\t\t\tcy3 = by3 + ay;\n\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tlineCount += 1;\n\t\t\tif (data) {\n\t\t\t\tconst advance = data.advance;\n\t\t\t\tif (lineWidthMaximum < (lineWidth + advance) * scaleX) {\n\t\t\t\t\tconst dots = textAtlasCharacters[\"...\"];\n\t\t\t\t\tif (dots) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t1 < lineCount &&\n\t\t\t\t\t\t\tlineWidthMaximum < (lineWidth + dots.advance) * scaleX\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlineWidth = lineWidthPrevious;\n\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\tlineCount -= 1;\n\t\t\t\t\t\t\tconst bx = lineWidth * snx;\n\t\t\t\t\t\t\tconst by = lineWidth * sny;\n\t\t\t\t\t\t\tcx0 = bx0 + bx;\n\t\t\t\t\t\t\tcy0 = by0 + by;\n\t\t\t\t\t\t\tcx3 = bx3 + bx;\n\t\t\t\t\t\t\tcy3 = by3 + by;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadvancePrevious = dots.advance;\n\n\t\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tdots,\n\t\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\t\tsnx,\n\t\t\t\t\t\t\tsny,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfor (iv += 8; true; iv += 8) {\n\t\t\t\t\t\t\tif (iterator.hasNext() && iterator.advance(\"\\n\")) {\n\t\t\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tlineCount += 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tuvs,\n\t\t\t\t\t\tiv,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\tsnx,\n\t\t\t\t\t\tsny,\n\t\t\t\t\t\tcx0,\n\t\t\t\t\t\tcy0,\n\t\t\t\t\t\tcx3,\n\t\t\t\t\t\tcy3,\n\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\tuvy0\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\n\t\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\n\t\t\tbx0 += lhx;\n\t\t\tby0 += lhy;\n\t\t\tbx3 += lhx;\n\t\t\tby3 += lhy;\n\t\t\tcx0 = bx0;\n\t\t\tcy0 = by0;\n\t\t\tcx3 = bx3;\n\t\t\tcy3 = by3;\n\n\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\n\t\t\tadjustTextAlignment(\n\t\t\t\tvertices,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tlineCount,\n\t\t\t\tiv,\n\t\t\t\twidth - lineWidth * scaleX,\n\t\t\t\ttextDirection,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical\n\t\t\t);\n\t\t\tlineWidth = 0;\n\t\t\tlineCount = 0;\n\t\t}\n\t}\n\n\tlineWidth += advancePrevious;\n\tadjustTextAlignment(\n\t\tvertices,\n\t\thnx,\n\t\thny,\n\t\tlineCount,\n\t\tiv,\n\t\twidth - lineWidth * scaleX,\n\t\ttextDirection,\n\t\ttextAlignHorizontal,\n\t\ttextAlignVertical\n\t);\n\n\tfor (const ivmax = (voffset + vcount) * 2; iv < ivmax; iv += 2) {\n\t\tvertices[iv + 0] = tx0;\n\t\tvertices[iv + 1] = ty0;\n\t\tuvs[iv + 0] = uvx0;\n\t\tuvs[iv + 1] = uvy0;\n\t}\n};\n\nconst isIn = (\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): boolean => {\n\tswitch (textAlignHorizontal) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (textAlignVertical) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\treturn true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn false;\n};\n\nconst writeCharacterEmpty = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tuvx0: number,\n\tuvy0: number,\n\tuvx3: number,\n\tuvy3: number\n): void => {\n\tvertices[iv + 0] = cx0;\n\tvertices[iv + 1] = cy0;\n\tvertices[iv + 2] = cx0;\n\tvertices[iv + 3] = cy0;\n\tvertices[iv + 4] = cx3;\n\tvertices[iv + 5] = cy3;\n\tvertices[iv + 6] = cx3;\n\tvertices[iv + 7] = cy3;\n\n\tuvs[iv + 0] = uvx0;\n\tuvs[iv + 1] = uvy0;\n\tuvs[iv + 2] = uvx0;\n\tuvs[iv + 3] = uvy0;\n\tuvs[iv + 4] = uvx3;\n\tuvs[iv + 5] = uvy3;\n\tuvs[iv + 6] = uvx3;\n\tuvs[iv + 7] = uvy3;\n};\n\nconst writeCharacter = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tdata: EShapeTextAtlasCharacter,\n\tatlas: EShapeTextAtlas,\n\tsnx: number,\n\tsny: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tduvx01: number,\n\tduvy01: number,\n\tduvx03: number,\n\tduvy03: number,\n\tuvx0: number,\n\tuvy0: number\n): void => {\n\t// Vertices\n\tconst dataOffsetX = data.x - data.origin.x;\n\tconst dataWidth = data.width;\n\tconst dx0 = dataOffsetX * snx;\n\tconst dy0 = dataOffsetX * sny;\n\tconst dx1 = (dataOffsetX + dataWidth) * snx;\n\tconst dy1 = (dataOffsetX + dataWidth) * sny;\n\tvertices[iv + 0] = cx0 + dx0;\n\tvertices[iv + 1] = cy0 + dy0;\n\tvertices[iv + 2] = cx0 + dx1;\n\tvertices[iv + 3] = cy0 + dy1;\n\tvertices[iv + 4] = cx3 + dx1;\n\tvertices[iv + 5] = cy3 + dy1;\n\tvertices[iv + 6] = cx3 + dx0;\n\tvertices[iv + 7] = cy3 + dy0;\n\n\t// UVs\n\tconst px0 = data.x / atlas.width;\n\tconst py0 = data.y / atlas.height;\n\tconst px1 = (data.x + data.width) / atlas.width;\n\tconst py1 = (data.y + data.height) / atlas.height;\n\n\tconst dux0 = duvx01 * px0;\n\tconst duy0 = duvy01 * px0;\n\tconst dux1 = duvx01 * px1;\n\tconst duy1 = duvy01 * px1;\n\n\tconst dvx0 = duvx03 * py0;\n\tconst dvy0 = duvy03 * py0;\n\tconst dvx1 = duvx03 * py1;\n\tconst dvy1 = duvy03 * py1;\n\tuvs[iv + 0] = uvx0 + dux0 + dvx0;\n\tuvs[iv + 1] = uvy0 + duy0 + dvy0;\n\tuvs[iv + 2] = uvx0 + dux1 + dvx0;\n\tuvs[iv + 3] = uvy0 + duy1 + dvy0;\n\tuvs[iv + 4] = uvx0 + dux1 + dvx1;\n\tuvs[iv + 5] = uvy0 + duy1 + dvy1;\n\tuvs[iv + 6] = uvx0 + dux0 + dvx1;\n\tuvs[iv + 7] = uvy0 + duy0 + dvy1;\n};\n\nconst moveText = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\tdx: number,\n\tdy: number\n): void => {\n\tlet iv = vertexIndex - 8 * textCount - 1;\n\tfor (let i = 0; i < textCount; ++i) {\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t}\n};\n\nconst moveTextHalf = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\toffset *= 0.5;\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst moveTextFull = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst adjustTextAlignment = (\n\tvertices: Float32Array,\n\tnx: number,\n\tny: number,\n\tlineCount: number,\n\tvertexIndex: number,\n\toffset: number,\n\ttextDirection: EShapeTextDirection,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): void => {\n\tif (TEXT_FMIN < offset) {\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n"]}
1
+ {"version":3,"file":"build-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { UtilCharacterIterator } from \"../../util/util-character-iterator\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport {\n\tEShapeTextAtlas,\n\tEShapeTextAtlasCharacter,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nexport const TEXT_VERTEX_COUNT = 4;\nexport const TEXT_VERTEX_COUNT_SHIFT = 2;\nexport const TEXT_INDEX_COUNT = 2;\nexport const TEXT_INDEX_COUNT_SHIFT = 1;\nexport const TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\tconst l = shape.text.plength;\n\treturn ((l >> 3) + (0 < (l & 0x7) ? 1 : 0)) << 3;\n};\n\nexport const buildTextClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 2;\n\t}\n};\n\nexport const buildTextIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number,\n\ticount: number\n): void => {\n\tlet ii = ioffset * 3 - 1;\n\tconst iimax = (ioffset + icount) * 3 - 1;\n\tlet iv = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = iv;\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 3;\n\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 2;\n\t\tindices[++ii] = iv + 3;\n\t\tiv += 4;\n\t}\n};\n\nexport const buildTextStep = (\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextAtlas: EShapeTextAtlas | undefined,\n\ttextSize: number,\n\ttextOutlineWidth: number,\n\ttextWeight: EShapeTextWeight,\n\tscaleX: number,\n\tscaleY: number\n): void => {\n\tlet is = voffset * 6 - 1;\n\tconst ismax = (voffset + vcount) * 6 - 1;\n\tconst scaleInvariant = toScaleInvariant(EShapeStrokeStyle.NONE);\n\tif (textAtlas != null) {\n\t\tconst scale = textAtlas.font.size / (textSize * (scaleX + scaleY) * 0.5);\n\t\tconst position = textWeight === EShapeTextWeight.NORMAL ? 0.0 : 0.05;\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = textOutlineWidth;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = scale;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = position;\n\t\t}\n\t} else {\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n};\n\nconst getTextBBox = (\n\thalign: EShapeTextAlignHorizontal,\n\tvalign: EShapeTextAlignVertical,\n\thoffset: number,\n\tvoffset: number,\n\thpadding: number,\n\tvpadding: number,\n\twidth: number,\n\theight: number,\n\tx0: number,\n\ty0: number,\n\tx1: number,\n\ty1: number,\n\tx2: number,\n\ty2: number,\n\tx3: number,\n\ty3: number,\n\thnx: number,\n\thny: number,\n\tvnx: number,\n\tvny: number,\n\tresult: Point\n): void => {\n\tswitch (halign) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n};\n\nconst rotateAlignHorizontalRight = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nconst rotateAlignVerticalRight = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t}\n};\n\nconst rotateAlignHorizontalLeft = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t}\n};\n\nconst rotateAlignVerticalLeft = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignHorizontal = (align: EShapeTextAlignHorizontal): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignVertical = (align: EShapeTextAlignVertical): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nexport const buildTextVertex = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\ttextAtlas: EShapeTextAtlas,\n\ttextSize: number,\n\ttextValue: string,\n\ttextStyle: EShapeTextStyle,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical,\n\ttextOffsetHorizontal: number,\n\ttextOffsetVertical: number,\n\ttextSpacingHorizontal: number,\n\ttextSpacingVertical: number,\n\ttextDirection: EShapeTextDirection,\n\ttextPaddingHorizontal: number,\n\ttextPaddingVertical: number,\n\ttextClipping: boolean,\n\ttextFitting: boolean,\n\ttextWorld: number[],\n\ttextureUvs: TextureUvs,\n\tinternalTransform: Matrix\n): void => {\n\t// Calculate the transformed positions\n\t//\n\t// 0 1\n\t// |---------------|\n\t// | |\n\t// |3 |2\n\t// |---------------|\n\t//\n\tconst sx = sizeX * 0.5;\n\tconst sy = sizeY * 0.5;\n\n\tconst a = internalTransform.a;\n\tconst b = internalTransform.b;\n\tconst c = internalTransform.c;\n\tconst d = internalTransform.d;\n\tconst tx = internalTransform.tx;\n\tconst ty = internalTransform.ty;\n\n\tconst ltx = originX - sx;\n\tconst lty = originY - sy;\n\tconst rtx = originX + sx;\n\tconst rty = originY - sy;\n\tconst rbx = originX + sx;\n\tconst rby = originY + sy;\n\tconst x0 = a * ltx + c * lty + tx;\n\tconst y0 = b * ltx + d * lty + ty;\n\tconst x1 = a * rtx + c * rty + tx;\n\tconst y1 = b * rtx + d * rty + ty;\n\tconst x2 = a * rbx + c * rby + tx;\n\tconst y2 = b * rbx + d * rby + ty;\n\tconst x3 = x0 + (x2 - x1);\n\tconst y3 = y0 + (y2 - y1);\n\n\t// Horizontal normal\n\tconst hl = toLength(x0, y0, x1, y1);\n\tlet hnl = toLength(0, 0, a, b);\n\tlet hnx = 1;\n\tlet hny = 0;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst hnli = 1 / hnl;\n\t\thnx = a * hnli;\n\t\thny = b * hnli;\n\t}\n\n\t// Vertical normal\n\tconst vl = toLength(x0, y0, x3, y3);\n\tlet vnl = toLength(0, 0, c, d);\n\tlet vnx = 0;\n\tlet vny = 1;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst vnli = 1 / vnl;\n\t\tvnx = c * vnli;\n\t\tvny = d * vnli;\n\t}\n\n\tconst work = TEXT_WORK_POINT;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t// DO NOTHING\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = -hnx;\n\t\t\tvny = -hny;\n\t\t\thnx = work.x;\n\t\t\thny = work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = hnx;\n\t\t\tvny = hny;\n\t\t\thnx = -work.x;\n\t\t\thny = -work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\thnx = -hnx;\n\t\t\thny = -hny;\n\t\t\tvnx = -vnx;\n\t\t\tvny = -vny;\n\t\t\tbreak;\n\t}\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tlet textSizeY = textSize * vnl;\n\tlet lineHeight = Math.max(0, textSize + textSpacingVertical) * vnl;\n\tlet lineWidth = 0;\n\tlet lineCount = 1;\n\tconst textAtlasCharacters = textAtlas.characters;\n\tconst iterator = UtilCharacterIterator.from(textValue);\n\tlet advancePrevious = 0;\n\twhile (iterator.hasNext()) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tif (data) {\n\t\t\t\tadvancePrevious = data.advance;\n\t\t\t\theightChar = data.height;\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\t\t\twidth = Math.max(width, lineWidth);\n\t\t\tlineWidth = 0;\n\t\t\theight += lineHeight;\n\t\t\tlineCount += 1;\n\t\t}\n\t}\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth);\n\theight += textSizeY;\n\tlineWidth = 0;\n\n\tif (textFitting && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\tlet w0 = 0;\n\t\tlet h0 = 0;\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\t\tw0 = Math.max(0, hl - textPaddingHorizontal * 2);\n\t\t\t\th0 = Math.max(0, vl - textPaddingVertical * 2);\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tw0 = Math.max(0, vl - textPaddingVertical * 2);\n\t\t\t\th0 = Math.max(0, hl - textPaddingHorizontal * 2);\n\t\t\t\tbreak;\n\t\t}\n\t\tconst w1 = width * hnl * (textSize / textAtlas.font.size);\n\t\tconst h1 = height;\n\t\tconst s = Math.min(1, Math.min(w0 / w1, h0 / h1));\n\t\ttextSize *= s;\n\t\ttextSizeY *= s;\n\t\tlineHeight *= s;\n\t\theight *= s;\n\t}\n\n\tconst scaleZ = textSize / textAtlas.font.size;\n\tconst scaleX = hnl * scaleZ;\n\tconst scaleY = vnl * scaleZ;\n\twidth *= scaleX;\n\theightChar *= scaleY;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = width;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tgetTextBBox(\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalRight(textAlignVertical),\n\t\t\t\trotateAlignHorizontalRight(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalLeft(textAlignVertical),\n\t\t\t\trotateAlignHorizontalLeft(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\tgetTextBBox(\n\t\t\t\tinvertAlignHorizontal(textAlignHorizontal),\n\t\t\t\tinvertAlignVertical(textAlignVertical),\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping && isIn(textAlignHorizontal, textAlignVertical)) {\n\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\t//\n\tif (lineWidthMaximum < width) {\n\t\tconst dwidth = (width - lineWidthMaximum) * 0.5;\n\t\ttextWorld[0] = tx0 + hnx * dwidth;\n\t\ttextWorld[1] = ty0 + hny * dwidth;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = lineWidthMaximum;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t} else {\n\t\ttextWorld[0] = tx0;\n\t\ttextWorld[1] = ty0;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = width;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t}\n\n\t// Texture\n\tconst uvx0 = textureUvs.x0;\n\tconst uvx1 = textureUvs.x1;\n\tconst uvx3 = textureUvs.x3;\n\tconst uvy0 = textureUvs.y0;\n\tconst uvy1 = textureUvs.y1;\n\tconst uvy3 = textureUvs.y3;\n\n\tconst duvx01 = uvx1 - uvx0;\n\tconst duvy01 = uvy1 - uvy0;\n\tconst duvx03 = uvx3 - uvx0;\n\tconst duvy03 = uvy3 - uvy0;\n\n\t// Vertices & UVs\n\tconst lhx = lineHeight * vnx;\n\tconst lhy = lineHeight * vny;\n\n\tconst snx = scaleX * hnx;\n\tconst sny = scaleX * hny;\n\n\tconst offsetY = (heightChar - textSizeY) * 0.5;\n\tconst oyx = offsetY * vnx;\n\tconst oyy = offsetY * vny;\n\n\tconst offsetItalic = textStyle === EShapeTextStyle.NORMAL ? 0 : textSize * 0.25;\n\tlet bx0 = tx0 - oyx + offsetItalic * snx;\n\tlet by0 = ty0 - oyy + offsetItalic * sny;\n\tlet bx3 = tx0 + oyx + textSizeY * vnx;\n\tlet by3 = ty0 + oyy + textSizeY * vny;\n\tlet cx0 = bx0;\n\tlet cy0 = by0;\n\tlet cx3 = bx3;\n\tlet cy3 = by3;\n\n\tlineWidth = 0;\n\tadvancePrevious = 0;\n\titerator.position = 0;\n\tlineCount = 0;\n\tlet iv = voffset * 2;\n\tfor (; iterator.hasNext(); iv += 8) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tconst lineWidthPrevious = lineWidth;\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\n\t\t\tconst ax = lineWidth * snx;\n\t\t\tconst ay = lineWidth * sny;\n\t\t\tcx0 = bx0 + ax;\n\t\t\tcy0 = by0 + ay;\n\t\t\tcx3 = bx3 + ax;\n\t\t\tcy3 = by3 + ay;\n\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tlineCount += 1;\n\t\t\tif (data) {\n\t\t\t\tconst advance = data.advance;\n\t\t\t\tif (lineWidthMaximum < (lineWidth + advance) * scaleX) {\n\t\t\t\t\tconst dots = textAtlasCharacters[\"...\"];\n\t\t\t\t\tif (dots) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t1 < lineCount &&\n\t\t\t\t\t\t\tlineWidthMaximum < (lineWidth + dots.advance) * scaleX\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlineWidth = lineWidthPrevious;\n\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\tlineCount -= 1;\n\t\t\t\t\t\t\tconst bx = lineWidth * snx;\n\t\t\t\t\t\t\tconst by = lineWidth * sny;\n\t\t\t\t\t\t\tcx0 = bx0 + bx;\n\t\t\t\t\t\t\tcy0 = by0 + by;\n\t\t\t\t\t\t\tcx3 = bx3 + bx;\n\t\t\t\t\t\t\tcy3 = by3 + by;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadvancePrevious = dots.advance;\n\n\t\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tdots,\n\t\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\t\tsnx,\n\t\t\t\t\t\t\tsny,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfor (iv += 8; true; iv += 8) {\n\t\t\t\t\t\t\tif (iterator.hasNext() && iterator.advance(\"\\n\")) {\n\t\t\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tlineCount += 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tuvs,\n\t\t\t\t\t\tiv,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\tsnx,\n\t\t\t\t\t\tsny,\n\t\t\t\t\t\tcx0,\n\t\t\t\t\t\tcy0,\n\t\t\t\t\t\tcx3,\n\t\t\t\t\t\tcy3,\n\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\tuvy0\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\n\t\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\n\t\t\tbx0 += lhx;\n\t\t\tby0 += lhy;\n\t\t\tbx3 += lhx;\n\t\t\tby3 += lhy;\n\t\t\tcx0 = bx0;\n\t\t\tcy0 = by0;\n\t\t\tcx3 = bx3;\n\t\t\tcy3 = by3;\n\n\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\n\t\t\tadjustTextAlignment(\n\t\t\t\tvertices,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tlineCount,\n\t\t\t\tiv,\n\t\t\t\twidth - lineWidth * scaleX,\n\t\t\t\ttextDirection,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical\n\t\t\t);\n\t\t\tlineWidth = 0;\n\t\t\tlineCount = 0;\n\t\t}\n\t}\n\n\tlineWidth += advancePrevious;\n\tadjustTextAlignment(\n\t\tvertices,\n\t\thnx,\n\t\thny,\n\t\tlineCount,\n\t\tiv,\n\t\twidth - lineWidth * scaleX,\n\t\ttextDirection,\n\t\ttextAlignHorizontal,\n\t\ttextAlignVertical\n\t);\n\n\tfor (const ivmax = (voffset + vcount) * 2; iv < ivmax; iv += 2) {\n\t\tvertices[iv + 0] = tx0;\n\t\tvertices[iv + 1] = ty0;\n\t\tuvs[iv + 0] = uvx0;\n\t\tuvs[iv + 1] = uvy0;\n\t}\n};\n\nconst isIn = (\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): boolean => {\n\tswitch (textAlignHorizontal) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (textAlignVertical) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\treturn true;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn false;\n};\n\nconst writeCharacterEmpty = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tuvx0: number,\n\tuvy0: number,\n\tuvx3: number,\n\tuvy3: number\n): void => {\n\tvertices[iv + 0] = cx0;\n\tvertices[iv + 1] = cy0;\n\tvertices[iv + 2] = cx0;\n\tvertices[iv + 3] = cy0;\n\tvertices[iv + 4] = cx3;\n\tvertices[iv + 5] = cy3;\n\tvertices[iv + 6] = cx3;\n\tvertices[iv + 7] = cy3;\n\n\tuvs[iv + 0] = uvx0;\n\tuvs[iv + 1] = uvy0;\n\tuvs[iv + 2] = uvx0;\n\tuvs[iv + 3] = uvy0;\n\tuvs[iv + 4] = uvx3;\n\tuvs[iv + 5] = uvy3;\n\tuvs[iv + 6] = uvx3;\n\tuvs[iv + 7] = uvy3;\n};\n\nconst writeCharacter = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tdata: EShapeTextAtlasCharacter,\n\tatlas: EShapeTextAtlas,\n\tsnx: number,\n\tsny: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tduvx01: number,\n\tduvy01: number,\n\tduvx03: number,\n\tduvy03: number,\n\tuvx0: number,\n\tuvy0: number\n): void => {\n\t// Vertices\n\tconst dataOffsetX = data.x - data.origin.x;\n\tconst dataWidth = data.width;\n\tconst dx0 = dataOffsetX * snx;\n\tconst dy0 = dataOffsetX * sny;\n\tconst dx1 = (dataOffsetX + dataWidth) * snx;\n\tconst dy1 = (dataOffsetX + dataWidth) * sny;\n\tvertices[iv + 0] = cx0 + dx0;\n\tvertices[iv + 1] = cy0 + dy0;\n\tvertices[iv + 2] = cx0 + dx1;\n\tvertices[iv + 3] = cy0 + dy1;\n\tvertices[iv + 4] = cx3 + dx1;\n\tvertices[iv + 5] = cy3 + dy1;\n\tvertices[iv + 6] = cx3 + dx0;\n\tvertices[iv + 7] = cy3 + dy0;\n\n\t// UVs\n\tconst px0 = data.x / atlas.width;\n\tconst py0 = data.y / atlas.height;\n\tconst px1 = (data.x + data.width) / atlas.width;\n\tconst py1 = (data.y + data.height) / atlas.height;\n\n\tconst dux0 = duvx01 * px0;\n\tconst duy0 = duvy01 * px0;\n\tconst dux1 = duvx01 * px1;\n\tconst duy1 = duvy01 * px1;\n\n\tconst dvx0 = duvx03 * py0;\n\tconst dvy0 = duvy03 * py0;\n\tconst dvx1 = duvx03 * py1;\n\tconst dvy1 = duvy03 * py1;\n\tuvs[iv + 0] = uvx0 + dux0 + dvx0;\n\tuvs[iv + 1] = uvy0 + duy0 + dvy0;\n\tuvs[iv + 2] = uvx0 + dux1 + dvx0;\n\tuvs[iv + 3] = uvy0 + duy1 + dvy0;\n\tuvs[iv + 4] = uvx0 + dux1 + dvx1;\n\tuvs[iv + 5] = uvy0 + duy1 + dvy1;\n\tuvs[iv + 6] = uvx0 + dux0 + dvx1;\n\tuvs[iv + 7] = uvy0 + duy0 + dvy1;\n};\n\nconst moveText = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\tdx: number,\n\tdy: number\n): void => {\n\tlet iv = vertexIndex - 8 * textCount - 1;\n\tfor (let i = 0; i < textCount; ++i) {\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t}\n};\n\nconst moveTextHalf = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\toffset *= 0.5;\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst moveTextFull = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst adjustTextAlignment = (\n\tvertices: Float32Array,\n\tnx: number,\n\tny: number,\n\tlineCount: number,\n\tvertexIndex: number,\n\toffset: number,\n\ttextDirection: EShapeTextDirection,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): void => {\n\tif (TEXT_FMIN < offset) {\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n"]}
@@ -11,22 +11,24 @@ import { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } fro
11
11
  import { EShapeBar } from "./e-shape-bar";
12
12
  var BuilderBar = /** @class */ (function (_super) {
13
13
  __extends(BuilderBar, _super);
14
- function BuilderBar(vertexOffset, indexOffset) {
15
- var _this = _super.call(this, vertexOffset, indexOffset, BAR_VERTEX_COUNT, BAR_INDEX_COUNT) || this;
14
+ function BuilderBar(buffer, vertexOffset, indexOffset) {
15
+ var _this = _super.call(this, buffer, vertexOffset, indexOffset, BAR_VERTEX_COUNT, BAR_INDEX_COUNT) || this;
16
16
  _this.pointsId = -1;
17
17
  _this.pointsStyle = EShapePointsStyle.NONE;
18
18
  return _this;
19
19
  }
20
- BuilderBar.prototype.init = function (buffer) {
20
+ BuilderBar.prototype.init = function () {
21
21
  var voffset = this.vertexOffset;
22
22
  var ioffset = this.indexOffset;
23
+ var buffer = this.buffer;
23
24
  buffer.updateClippings();
24
25
  buffer.updateIndices();
25
26
  buildBarClipping(buffer.clippings, voffset);
26
27
  buildBarIndex(buffer.indices, voffset, ioffset);
27
28
  this.inited |= BuilderFlag.CLIPPING_AND_INDEX;
28
29
  };
29
- BuilderBar.prototype.update = function (buffer, shape) {
30
+ BuilderBar.prototype.update = function (shape) {
31
+ var buffer = this.buffer;
30
32
  this.updateVertexStepAndColorFill(buffer, shape);
31
33
  this.updateColorStroke(buffer, shape);
32
34
  this.updateUv(buffer, shape);
@@ -1 +1 @@
1
- {"version":3,"file":"builder-bar.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-bar.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACN,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,8BAA8B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiB,WAAW,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C;IAAgC,8BAAW;IAI1C,oBAAY,YAAoB,EAAE,WAAmB;QAArD,YACC,kBAAM,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,CAAC,SAGnE;QAFA,KAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnB,KAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC;;IAC3C,CAAC;IAED,yBAAI,GAAJ,UAAK,MAAqB;QACzB,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;QACjC,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5C,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IAED,2BAAM,GAAN,UAAO,MAAqB,EAAE,KAAa;QAC1C,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAES,iDAA4B,GAAtC,UAAuC,MAAqB,EAAE,KAAa;QAC1E,IAAI,KAAK,YAAY,SAAS,EAAE;YAC/B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YACrB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YACrB,IAAM,aAAa,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;YAEnE,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YACjC,IAAM,oBAAoB,GACzB,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC;YAEtE,IAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACnD,IAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC;YAEtE,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAM,iBAAiB,GAAG,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;YAErD,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YACjC,IAAM,oBAAoB,GAAG,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC;YAE9D,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAC;YAE5E,IACC,WAAW;gBACX,aAAa;gBACb,kBAAkB;gBAClB,oBAAoB;gBACpB,iBAAiB;gBACjB,oBAAoB,EACnB;gBACD,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,0BAA0B,CAAC;gBACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;gBAE/B,IAAI,iBAAiB,EAAE;oBACtB,2BAA2B;oBAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;iBAC/B;gBAED,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,8BAA8B,CAC7B,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,UAAU,EACjB,IAAI,CAAC,YAAY,EACjB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,IAAI,EACX,WAAW,EACX,WAAW,EACX,KAAK,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;aACF;SACD;IACF,CAAC;IAES,6BAAQ,GAAlB,UAAmB,MAAqB,EAAE,KAAa;QACtD,IAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,IAAM,kBAAkB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QACpD,IACC,WAAW;YACX,OAAO,KAAK,IAAI,CAAC,OAAO;YACxB,kBAAkB,KAAK,IAAI,CAAC,kBAAkB,EAC7C;YACD,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAE7C,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;SACjE;IACF,CAAC;IACF,iBAAC;AAAD,CAAC,AA5GD,CAAgC,WAAW,GA4G1C","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport {\n\tBAR_INDEX_COUNT,\n\tBAR_VERTEX_COUNT,\n\tbuildBarClipping,\n\tbuildBarIndex,\n\tbuildBarUv,\n\tbuildBarVertexStepAndColorFill\n} from \"./build-bar\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\nimport { EShapeBar } from \"./e-shape-bar\";\n\nexport class BuilderBar extends BuilderBase {\n\tprotected pointsId: number;\n\tprotected pointsStyle: EShapePointsStyle;\n\n\tconstructor(vertexOffset: number, indexOffset: number) {\n\t\tsuper(vertexOffset, indexOffset, BAR_VERTEX_COUNT, BAR_INDEX_COUNT);\n\t\tthis.pointsId = -1;\n\t\tthis.pointsStyle = EShapePointsStyle.NONE;\n\t}\n\n\tinit(buffer: BuilderBuffer): void {\n\t\tconst voffset = this.vertexOffset;\n\t\tconst ioffset = this.indexOffset;\n\t\tbuffer.updateClippings();\n\t\tbuffer.updateIndices();\n\t\tbuildBarClipping(buffer.clippings, voffset);\n\t\tbuildBarIndex(buffer.indices, voffset, ioffset);\n\t\tthis.inited |= BuilderFlag.CLIPPING_AND_INDEX;\n\t}\n\n\tupdate(buffer: BuilderBuffer, shape: EShape): void {\n\t\tthis.updateVertexStepAndColorFill(buffer, shape);\n\t\tthis.updateColorStroke(buffer, shape);\n\t\tthis.updateUv(buffer, shape);\n\t}\n\n\tprotected updateVertexStepAndColorFill(buffer: BuilderBuffer, shape: EShape): void {\n\t\tif (shape instanceof EShapeBar) {\n\t\t\tconst size = shape.size;\n\t\t\tconst sizeX = size.x;\n\t\t\tconst sizeY = size.y;\n\t\t\tconst isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;\n\n\t\t\tconst stroke = shape.stroke;\n\t\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\t\tconst strokeStyle = stroke.style;\n\t\t\tconst isStrokeWidthChanged =\n\t\t\t\tstrokeWidth !== this.strokeWidth || strokeStyle !== this.strokeStyle;\n\n\t\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t\tconst points = shape.points;\n\t\t\tconst pointsId = points.id;\n\t\t\tconst isPointsIdChanged = pointsId !== this.pointsId;\n\n\t\t\tconst pointsStyle = points.style;\n\t\t\tconst isPointsStyleChanged = pointsStyle !== this.pointsStyle;\n\n\t\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_AND_COLOR_FILL);\n\n\t\t\tif (\n\t\t\t\tisNotInited ||\n\t\t\t\tisSizeChanged ||\n\t\t\t\tisTransformChanged ||\n\t\t\t\tisStrokeWidthChanged ||\n\t\t\t\tisPointsIdChanged ||\n\t\t\t\tisPointsStyleChanged\n\t\t\t) {\n\t\t\t\tthis.inited |= BuilderFlag.VERTEX_STEP_AND_COLOR_FILL;\n\t\t\t\tthis.sizeX = sizeX;\n\t\t\t\tthis.sizeY = sizeY;\n\t\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\t\tthis.pointsId = pointsId;\n\t\t\t\tthis.pointsStyle = pointsStyle;\n\n\t\t\t\tif (isPointsIdChanged) {\n\t\t\t\t\t// Invalidate the UV buffer\n\t\t\t\t\tthis.inited &= ~BuilderFlag.UV;\n\t\t\t\t}\n\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tbuffer.updateColorFills();\n\t\t\t\tbuildBarVertexStepAndColorFill(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\tbuffer.colorFills,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tpoints.values,\n\t\t\t\t\tpoints.size,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tbuildBarUv(buffer.uvs, this.vertexOffset, toTextureUvs(texture));\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"builder-bar.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-bar.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport {\n\tBAR_INDEX_COUNT,\n\tBAR_VERTEX_COUNT,\n\tbuildBarClipping,\n\tbuildBarIndex,\n\tbuildBarUv,\n\tbuildBarVertexStepAndColorFill\n} from \"./build-bar\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\nimport { EShapeBar } from \"./e-shape-bar\";\n\nexport class BuilderBar extends BuilderBase {\n\tprotected pointsId: number;\n\tprotected pointsStyle: EShapePointsStyle;\n\n\tconstructor(buffer: BuilderBuffer, vertexOffset: number, indexOffset: number) {\n\t\tsuper(buffer, vertexOffset, indexOffset, BAR_VERTEX_COUNT, BAR_INDEX_COUNT);\n\t\tthis.pointsId = -1;\n\t\tthis.pointsStyle = EShapePointsStyle.NONE;\n\t}\n\n\toverride init(): void {\n\t\tconst voffset = this.vertexOffset;\n\t\tconst ioffset = this.indexOffset;\n\t\tconst buffer = this.buffer;\n\t\tbuffer.updateClippings();\n\t\tbuffer.updateIndices();\n\t\tbuildBarClipping(buffer.clippings, voffset);\n\t\tbuildBarIndex(buffer.indices, voffset, ioffset);\n\t\tthis.inited |= BuilderFlag.CLIPPING_AND_INDEX;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tconst buffer = this.buffer;\n\t\tthis.updateVertexStepAndColorFill(buffer, shape);\n\t\tthis.updateColorStroke(buffer, shape);\n\t\tthis.updateUv(buffer, shape);\n\t}\n\n\tprotected updateVertexStepAndColorFill(buffer: BuilderBuffer, shape: EShape): void {\n\t\tif (shape instanceof EShapeBar) {\n\t\t\tconst size = shape.size;\n\t\t\tconst sizeX = size.x;\n\t\t\tconst sizeY = size.y;\n\t\t\tconst isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;\n\n\t\t\tconst stroke = shape.stroke;\n\t\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\t\tconst strokeStyle = stroke.style;\n\t\t\tconst isStrokeWidthChanged =\n\t\t\t\tstrokeWidth !== this.strokeWidth || strokeStyle !== this.strokeStyle;\n\n\t\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t\tconst points = shape.points;\n\t\t\tconst pointsId = points.id;\n\t\t\tconst isPointsIdChanged = pointsId !== this.pointsId;\n\n\t\t\tconst pointsStyle = points.style;\n\t\t\tconst isPointsStyleChanged = pointsStyle !== this.pointsStyle;\n\n\t\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_AND_COLOR_FILL);\n\n\t\t\tif (\n\t\t\t\tisNotInited ||\n\t\t\t\tisSizeChanged ||\n\t\t\t\tisTransformChanged ||\n\t\t\t\tisStrokeWidthChanged ||\n\t\t\t\tisPointsIdChanged ||\n\t\t\t\tisPointsStyleChanged\n\t\t\t) {\n\t\t\t\tthis.inited |= BuilderFlag.VERTEX_STEP_AND_COLOR_FILL;\n\t\t\t\tthis.sizeX = sizeX;\n\t\t\t\tthis.sizeY = sizeY;\n\t\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\t\tthis.pointsId = pointsId;\n\t\t\t\tthis.pointsStyle = pointsStyle;\n\n\t\t\t\tif (isPointsIdChanged) {\n\t\t\t\t\t// Invalidate the UV buffer\n\t\t\t\t\tthis.inited &= ~BuilderFlag.UV;\n\t\t\t\t}\n\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tbuffer.updateColorFills();\n\t\t\t\tbuildBarVertexStepAndColorFill(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\tbuffer.colorFills,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tpoints.values,\n\t\t\t\t\tpoints.size,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tbuildBarUv(buffer.uvs, this.vertexOffset, toTextureUvs(texture));\n\t\t}\n\t}\n}\n"]}
@@ -8,7 +8,8 @@ import { BuilderFlag } from "./builder";
8
8
  import { EShapeStrokeSide } from "../e-shape-stroke-side";
9
9
  import { EShapeStrokeStyle } from "../e-shape-stroke-style";
10
10
  var BuilderBase = /** @class */ (function () {
11
- function BuilderBase(vertexOffset, indexOffset, vertexCount, indexCount) {
11
+ function BuilderBase(buffer, vertexOffset, indexOffset, vertexCount, indexCount) {
12
+ this.buffer = buffer;
12
13
  this.vertexOffset = vertexOffset;
13
14
  this.indexOffset = indexOffset;
14
15
  this.vertexCount = vertexCount;
@@ -28,6 +29,26 @@ var BuilderBase = /** @class */ (function () {
28
29
  this.texture = null;
29
30
  this.textureTransformId = -1;
30
31
  }
32
+ BuilderBase.prototype.reinit = function (buffer, shape, vertexOffset, indexOffset) {
33
+ if (this.buffer !== buffer ||
34
+ this.vertexOffset !== vertexOffset ||
35
+ this.indexOffset !== indexOffset) {
36
+ if (buffer.check(vertexOffset, indexOffset, this.vertexCount, this.indexCount)) {
37
+ this.inited = BuilderFlag.NONE;
38
+ this.buffer = buffer;
39
+ this.vertexOffset = vertexOffset;
40
+ this.indexOffset = indexOffset;
41
+ this.init();
42
+ return true;
43
+ }
44
+ else {
45
+ return false;
46
+ }
47
+ }
48
+ else {
49
+ return true;
50
+ }
51
+ };
31
52
  BuilderBase.prototype.isCompatible = function (shape) {
32
53
  return true;
33
54
  };
@@ -1 +1 @@
1
- {"version":3,"file":"builder-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\nimport { buildColor } from \"./build-color\";\nimport { Builder, BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { EShapeStrokeSide } from \"../e-shape-stroke-side\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\n\nexport abstract class BuilderBase implements Builder {\n\treadonly vertexOffset: number;\n\treadonly vertexCount: number;\n\treadonly indexOffset: number;\n\treadonly indexCount: number;\n\n\tprotected inited: BuilderFlag;\n\n\tprotected sizeX: number;\n\tprotected sizeY: number;\n\n\tprotected transformLocalId: number;\n\n\tprotected strokeAlign: number;\n\tprotected strokeWidth: number;\n\tprotected strokeSide: EShapeStrokeSide;\n\tprotected strokeStyle: EShapeStrokeStyle;\n\n\tprotected colorFill: number;\n\tprotected alphaFill: number;\n\tprotected colorStroke: number;\n\tprotected alphaStroke: number;\n\n\tprotected texture: Texture | null;\n\tprotected textureTransformId: number;\n\n\tconstructor(\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tthis.vertexOffset = vertexOffset;\n\t\tthis.indexOffset = indexOffset;\n\t\tthis.vertexCount = vertexCount;\n\t\tthis.indexCount = indexCount;\n\n\t\tthis.inited = BuilderFlag.NONE;\n\n\t\tthis.sizeX = 0;\n\t\tthis.sizeY = 0;\n\n\t\tthis.transformLocalId = -1;\n\n\t\tthis.strokeAlign = 0;\n\t\tthis.strokeWidth = 0;\n\t\tthis.strokeSide = EShapeStrokeSide.NONE;\n\t\tthis.strokeStyle = EShapeStrokeStyle.NONE;\n\n\t\tthis.colorFill = 0;\n\t\tthis.alphaFill = 0;\n\t\tthis.colorStroke = 0;\n\t\tthis.alphaStroke = 0;\n\n\t\tthis.texture = null;\n\t\tthis.textureTransformId = -1;\n\t}\n\n\tabstract init(buffer: BuilderBuffer): void;\n\n\tisCompatible(shape: EShape): boolean {\n\t\treturn true;\n\t}\n\n\tabstract update(buffer: BuilderBuffer, shape: EShape): void;\n\n\tprotected updateColorFill(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst fill = shape.fill;\n\t\tconst color = fill.color;\n\t\tconst alpha = shape.visible && fill.enable ? fill.alpha : 0;\n\t\tconst isNotInited = !(this.inited & BuilderFlag.COLOR_FILL);\n\t\tif (isNotInited || color !== this.colorFill || alpha !== this.alphaFill) {\n\t\t\tthis.inited |= BuilderFlag.COLOR_FILL;\n\t\t\tthis.colorFill = color;\n\t\t\tthis.alphaFill = alpha;\n\t\t\tbuffer.updateColorFills();\n\n\t\t\tbuildColor(color, alpha, this.vertexOffset, this.vertexCount, buffer.colorFills);\n\t\t}\n\t}\n\n\tprotected updateColorStroke(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst stroke = shape.stroke;\n\t\tconst color = stroke.color;\n\t\tconst alpha = shape.visible && stroke.enable && 0 < stroke.width ? stroke.alpha : 0;\n\t\tconst isNotInited = !(this.inited & BuilderFlag.COLOR_STROKE);\n\t\tif (isNotInited || color !== this.colorStroke || alpha !== this.alphaStroke) {\n\t\t\tthis.inited |= BuilderFlag.COLOR_STROKE;\n\t\t\tthis.colorStroke = color;\n\t\t\tthis.alphaStroke = alpha;\n\t\t\tbuffer.updateColorStrokes();\n\n\t\t\tbuildColor(color, alpha, this.vertexOffset, this.vertexCount, buffer.colorStrokes);\n\t\t}\n\t}\n\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void {\n\t\tconst texture = this.texture || Texture.WHITE;\n\t\tconst baseTexture = texture.baseTexture;\n\t\tif (baseTexture !== builder.baseTexture) {\n\t\t\tbuilder.baseTexture = baseTexture;\n\t\t\tconst indexOffset = this.indexOffset;\n\t\t\tbuilder.push(texture, indexOffset);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"builder-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-base.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\nimport { buildColor } from \"./build-color\";\nimport { Builder, BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { EShapeStrokeSide } from \"../e-shape-stroke-side\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\n\nexport abstract class BuilderBase implements Builder {\n\tbuffer: BuilderBuffer;\n\tvertexOffset: number;\n\tvertexCount: number;\n\tindexOffset: number;\n\tindexCount: number;\n\n\tprotected inited: BuilderFlag;\n\n\tprotected sizeX: number;\n\tprotected sizeY: number;\n\n\tprotected transformLocalId: number;\n\n\tprotected strokeAlign: number;\n\tprotected strokeWidth: number;\n\tprotected strokeSide: EShapeStrokeSide;\n\tprotected strokeStyle: EShapeStrokeStyle;\n\n\tprotected colorFill: number;\n\tprotected alphaFill: number;\n\tprotected colorStroke: number;\n\tprotected alphaStroke: number;\n\n\tprotected texture: Texture | null;\n\tprotected textureTransformId: number;\n\n\tconstructor(\n\t\tbuffer: BuilderBuffer,\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tthis.buffer = buffer;\n\t\tthis.vertexOffset = vertexOffset;\n\t\tthis.indexOffset = indexOffset;\n\t\tthis.vertexCount = vertexCount;\n\t\tthis.indexCount = indexCount;\n\n\t\tthis.inited = BuilderFlag.NONE;\n\n\t\tthis.sizeX = 0;\n\t\tthis.sizeY = 0;\n\n\t\tthis.transformLocalId = -1;\n\n\t\tthis.strokeAlign = 0;\n\t\tthis.strokeWidth = 0;\n\t\tthis.strokeSide = EShapeStrokeSide.NONE;\n\t\tthis.strokeStyle = EShapeStrokeStyle.NONE;\n\n\t\tthis.colorFill = 0;\n\t\tthis.alphaFill = 0;\n\t\tthis.colorStroke = 0;\n\t\tthis.alphaStroke = 0;\n\n\t\tthis.texture = null;\n\t\tthis.textureTransformId = -1;\n\t}\n\n\tabstract init(): void;\n\n\treinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tif (\n\t\t\tthis.buffer !== buffer ||\n\t\t\tthis.vertexOffset !== vertexOffset ||\n\t\t\tthis.indexOffset !== indexOffset\n\t\t) {\n\t\t\tif (buffer.check(vertexOffset, indexOffset, this.vertexCount, this.indexCount)) {\n\t\t\t\tthis.inited = BuilderFlag.NONE;\n\t\t\t\tthis.buffer = buffer;\n\t\t\t\tthis.vertexOffset = vertexOffset;\n\t\t\t\tthis.indexOffset = indexOffset;\n\t\t\t\tthis.init();\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tisCompatible(shape: EShape): boolean {\n\t\treturn true;\n\t}\n\n\tabstract update(shape: EShape): void;\n\n\tprotected updateColorFill(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst fill = shape.fill;\n\t\tconst color = fill.color;\n\t\tconst alpha = shape.visible && fill.enable ? fill.alpha : 0;\n\t\tconst isNotInited = !(this.inited & BuilderFlag.COLOR_FILL);\n\t\tif (isNotInited || color !== this.colorFill || alpha !== this.alphaFill) {\n\t\t\tthis.inited |= BuilderFlag.COLOR_FILL;\n\t\t\tthis.colorFill = color;\n\t\t\tthis.alphaFill = alpha;\n\t\t\tbuffer.updateColorFills();\n\n\t\t\tbuildColor(color, alpha, this.vertexOffset, this.vertexCount, buffer.colorFills);\n\t\t}\n\t}\n\n\tprotected updateColorStroke(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst stroke = shape.stroke;\n\t\tconst color = stroke.color;\n\t\tconst alpha = shape.visible && stroke.enable && 0 < stroke.width ? stroke.alpha : 0;\n\t\tconst isNotInited = !(this.inited & BuilderFlag.COLOR_STROKE);\n\t\tif (isNotInited || color !== this.colorStroke || alpha !== this.alphaStroke) {\n\t\t\tthis.inited |= BuilderFlag.COLOR_STROKE;\n\t\t\tthis.colorStroke = color;\n\t\t\tthis.alphaStroke = alpha;\n\t\t\tbuffer.updateColorStrokes();\n\n\t\t\tbuildColor(color, alpha, this.vertexOffset, this.vertexCount, buffer.colorStrokes);\n\t\t}\n\t}\n\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void {\n\t\tconst texture = this.texture || Texture.WHITE;\n\t\tconst baseTexture = texture.baseTexture;\n\t\tif (baseTexture !== builder.baseTexture) {\n\t\t\tbuilder.baseTexture = baseTexture;\n\t\t\tconst indexOffset = this.indexOffset;\n\t\t\tbuilder.push(texture, indexOffset);\n\t\t}\n\t}\n}\n"]}
@@ -9,10 +9,11 @@ import { BuilderBase } from "./builder-base";
9
9
  import { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from "./builders";
10
10
  var BuilderCircle = /** @class */ (function (_super) {
11
11
  __extends(BuilderCircle, _super);
12
- function BuilderCircle(vertexOffset, indexOffset) {
13
- return _super.call(this, vertexOffset, indexOffset, CIRCLE_VERTEX_COUNT, CIRCLE_INDEX_COUNT) || this;
12
+ function BuilderCircle(buffer, vertexOffset, indexOffset) {
13
+ return _super.call(this, buffer, vertexOffset, indexOffset, CIRCLE_VERTEX_COUNT, CIRCLE_INDEX_COUNT) || this;
14
14
  }
15
- BuilderCircle.prototype.init = function (buffer) {
15
+ BuilderCircle.prototype.init = function () {
16
+ var buffer = this.buffer;
16
17
  buffer.updateClippings();
17
18
  buffer.updateIndices();
18
19
  var voffset = this.vertexOffset;
@@ -20,7 +21,8 @@ var BuilderCircle = /** @class */ (function (_super) {
20
21
  buildCircleIndex(buffer.indices, voffset, this.indexOffset);
21
22
  this.inited |= BuilderFlag.CLIPPING_AND_INDEX;
22
23
  };
23
- BuilderCircle.prototype.update = function (buffer, shape) {
24
+ BuilderCircle.prototype.update = function (shape) {
25
+ var buffer = this.buffer;
24
26
  this.updateVertexAndStep(buffer, shape);
25
27
  this.updateColorFill(buffer, shape);
26
28
  this.updateColorStroke(buffer, shape);
@@ -1 +1 @@
1
- {"version":3,"file":"builder-circle.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-circle.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport {\n\tbuildCircleClipping,\n\tbuildCircleIndex,\n\tbuildCircleStep,\n\tbuildCircleUv,\n\tbuildCircleVertex,\n\tCIRCLE_INDEX_COUNT,\n\tCIRCLE_VERTEX_COUNT,\n\tCIRCLE_WORLD_SIZE\n} from \"./build-circle\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderCircle extends BuilderBase {\n\tconstructor(vertexOffset: number, indexOffset: number) {\n\t\tsuper(vertexOffset, indexOffset, CIRCLE_VERTEX_COUNT, CIRCLE_INDEX_COUNT);\n\t}\n\n\tinit(buffer: BuilderBuffer): void {\n\t\tbuffer.updateClippings();\n\t\tbuffer.updateIndices();\n\t\tconst voffset = this.vertexOffset;\n\t\tbuildCircleClipping(buffer.clippings, voffset);\n\t\tbuildCircleIndex(buffer.indices, voffset, this.indexOffset);\n\t\tthis.inited |= BuilderFlag.CLIPPING_AND_INDEX;\n\t}\n\n\tupdate(buffer: BuilderBuffer, shape: EShape): void {\n\t\tthis.updateVertexAndStep(buffer, shape);\n\t\tthis.updateColorFill(buffer, shape);\n\t\tthis.updateColorStroke(buffer, shape);\n\t\tthis.updateUv(buffer, shape);\n\t}\n\n\tprotected updateVertexAndStep(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst size = shape.size;\n\t\tconst sizeX = size.x;\n\t\tconst sizeY = size.y;\n\t\tconst isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;\n\n\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\tconst stroke = shape.stroke;\n\t\tconst strokeAlign = stroke.align;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeStyle = stroke.style;\n\t\tconst isStrokeChanged =\n\t\t\tthis.strokeAlign !== strokeAlign ||\n\t\t\tthis.strokeWidth !== strokeWidth ||\n\t\t\tthis.strokeStyle !== strokeStyle;\n\n\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_AND_STEP);\n\n\t\tif (isNotInited || isSizeChanged || isTransformChanged || isStrokeChanged) {\n\t\t\tthis.inited |= BuilderFlag.VERTEX_AND_STEP;\n\t\t\tthis.sizeX = sizeX;\n\t\t\tthis.sizeY = sizeY;\n\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\tthis.strokeAlign = strokeAlign;\n\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\tthis.strokeStyle = strokeStyle;\n\n\t\t\t// Buffer\n\t\t\tbuffer.updateVertices();\n\t\t\tbuffer.updateSteps();\n\t\t\tbuildCircleVertex(\n\t\t\t\tbuffer.vertices,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tsizeX,\n\t\t\t\tsizeY,\n\t\t\t\tstrokeAlign,\n\t\t\t\tstrokeWidth,\n\t\t\t\tshape.transform.internalTransform,\n\t\t\t\tCIRCLE_WORLD_SIZE\n\t\t\t);\n\t\t\tbuildCircleStep(\n\t\t\t\tbuffer.steps,\n\t\t\t\tbuffer.clippings,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle,\n\t\t\t\tCIRCLE_WORLD_SIZE\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected updateUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tconst textureUvs = toTextureUvs(texture);\n\t\t\tbuildCircleUv(buffer.uvs, this.vertexOffset, textureUvs);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"builder-circle.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-circle.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport {\n\tbuildCircleClipping,\n\tbuildCircleIndex,\n\tbuildCircleStep,\n\tbuildCircleUv,\n\tbuildCircleVertex,\n\tCIRCLE_INDEX_COUNT,\n\tCIRCLE_VERTEX_COUNT,\n\tCIRCLE_WORLD_SIZE\n} from \"./build-circle\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderCircle extends BuilderBase {\n\tconstructor(buffer: BuilderBuffer, vertexOffset: number, indexOffset: number) {\n\t\tsuper(buffer, vertexOffset, indexOffset, CIRCLE_VERTEX_COUNT, CIRCLE_INDEX_COUNT);\n\t}\n\n\toverride init(): void {\n\t\tconst buffer = this.buffer;\n\t\tbuffer.updateClippings();\n\t\tbuffer.updateIndices();\n\t\tconst voffset = this.vertexOffset;\n\t\tbuildCircleClipping(buffer.clippings, voffset);\n\t\tbuildCircleIndex(buffer.indices, voffset, this.indexOffset);\n\t\tthis.inited |= BuilderFlag.CLIPPING_AND_INDEX;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tconst buffer = this.buffer;\n\t\tthis.updateVertexAndStep(buffer, shape);\n\t\tthis.updateColorFill(buffer, shape);\n\t\tthis.updateColorStroke(buffer, shape);\n\t\tthis.updateUv(buffer, shape);\n\t}\n\n\tprotected updateVertexAndStep(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst size = shape.size;\n\t\tconst sizeX = size.x;\n\t\tconst sizeY = size.y;\n\t\tconst isSizeChanged = sizeX !== this.sizeX || sizeY !== this.sizeY;\n\n\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\tconst stroke = shape.stroke;\n\t\tconst strokeAlign = stroke.align;\n\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\tconst strokeStyle = stroke.style;\n\t\tconst isStrokeChanged =\n\t\t\tthis.strokeAlign !== strokeAlign ||\n\t\t\tthis.strokeWidth !== strokeWidth ||\n\t\t\tthis.strokeStyle !== strokeStyle;\n\n\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_AND_STEP);\n\n\t\tif (isNotInited || isSizeChanged || isTransformChanged || isStrokeChanged) {\n\t\t\tthis.inited |= BuilderFlag.VERTEX_AND_STEP;\n\t\t\tthis.sizeX = sizeX;\n\t\t\tthis.sizeY = sizeY;\n\t\t\tthis.transformLocalId = transformLocalId;\n\t\t\tthis.strokeAlign = strokeAlign;\n\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\tthis.strokeStyle = strokeStyle;\n\n\t\t\t// Buffer\n\t\t\tbuffer.updateVertices();\n\t\t\tbuffer.updateSteps();\n\t\t\tbuildCircleVertex(\n\t\t\t\tbuffer.vertices,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tsizeX,\n\t\t\t\tsizeY,\n\t\t\t\tstrokeAlign,\n\t\t\t\tstrokeWidth,\n\t\t\t\tshape.transform.internalTransform,\n\t\t\t\tCIRCLE_WORLD_SIZE\n\t\t\t);\n\t\t\tbuildCircleStep(\n\t\t\t\tbuffer.steps,\n\t\t\t\tbuffer.clippings,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle,\n\t\t\t\tCIRCLE_WORLD_SIZE\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected updateUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tconst textureUvs = toTextureUvs(texture);\n\t\t\tbuildCircleUv(buffer.uvs, this.vertexOffset, textureUvs);\n\t\t}\n\t}\n}\n"]}
@@ -9,21 +9,23 @@ import { BuilderBase } from "./builder-base";
9
9
  import { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from "./builders";
10
10
  var BuilderImageSdf = /** @class */ (function (_super) {
11
11
  __extends(BuilderImageSdf, _super);
12
- function BuilderImageSdf(vertexOffset, indexOffset) {
13
- var _this = _super.call(this, vertexOffset, indexOffset, IMAGE_SDF_VERTEX_COUNT, IMAGE_SDF_INDEX_COUNT) || this;
12
+ function BuilderImageSdf(buffer, vertexOffset, indexOffset) {
13
+ var _this = _super.call(this, buffer, vertexOffset, indexOffset, IMAGE_SDF_VERTEX_COUNT, IMAGE_SDF_INDEX_COUNT) || this;
14
14
  _this.textureWidth = -1;
15
15
  _this.textureHeight = -1;
16
16
  return _this;
17
17
  }
18
- BuilderImageSdf.prototype.init = function (buffer) {
18
+ BuilderImageSdf.prototype.init = function () {
19
19
  var voffset = this.vertexOffset;
20
+ var buffer = this.buffer;
20
21
  buffer.updateClippings();
21
22
  buffer.updateIndices();
22
23
  buildImageSdfClipping(buffer.clippings, voffset);
23
24
  buildImageSdfIndex(buffer.indices, voffset, this.indexOffset);
24
25
  this.inited |= BuilderFlag.CLIPPING_AND_INDEX;
25
26
  };
26
- BuilderImageSdf.prototype.update = function (buffer, shape) {
27
+ BuilderImageSdf.prototype.update = function (shape) {
28
+ var buffer = this.buffer;
27
29
  this.updateVertexAndStep(buffer, shape);
28
30
  this.updateColorFill(buffer, shape);
29
31
  this.updateColorStroke(buffer, shape);