@wcardinal/wcardinal-ui 0.200.2 → 0.202.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 (225) hide show
  1. package/dist/types/wcardinal/ui/{d-controller-default-command.d.ts → d-controller-command-impl.d.ts} +1 -1
  2. package/dist/types/wcardinal/ui/{d-controller-default-focus.d.ts → d-controller-focus-impl.d.ts} +1 -1
  3. package/dist/types/wcardinal/ui/d-diagram-base.d.ts +1 -0
  4. package/dist/types/wcardinal/ui/d-diagram-canvas-data-impl.d.ts +7 -4
  5. package/dist/types/wcardinal/ui/d-diagram-canvas-data.d.ts +7 -4
  6. package/dist/types/wcardinal/ui/d-diagram-canvas.d.ts +2 -3
  7. package/dist/types/wcardinal/ui/d-diagram-data-extended-impl.d.ts +2 -1
  8. package/dist/types/wcardinal/ui/d-diagram-data-impl.d.ts +7 -4
  9. package/dist/types/wcardinal/ui/d-diagram-data-private-impl.d.ts +2 -1
  10. package/dist/types/wcardinal/ui/d-diagram-data-protected-impl.d.ts +2 -1
  11. package/dist/types/wcardinal/ui/d-diagram-data-remote-impl.d.ts +1 -1
  12. package/dist/types/wcardinal/ui/d-diagram-data-remote.d.ts +1 -1
  13. package/dist/types/wcardinal/ui/d-diagram-data-scoped.d.ts +2 -1
  14. package/dist/types/wcardinal/ui/d-diagram-data.d.ts +5 -2
  15. package/dist/types/wcardinal/ui/d-diagram-serialized.d.ts +4 -0
  16. package/dist/types/wcardinal/ui/d-table-body-cell-color.d.ts +1 -1
  17. package/dist/types/wcardinal/ui/d-table-body-cell-options.d.ts +18 -0
  18. package/dist/types/wcardinal/ui/d-table-body-cell-select-dialog.d.ts +1 -1
  19. package/dist/types/wcardinal/ui/d-table-body-cell-select-promise.d.ts +1 -1
  20. package/dist/types/wcardinal/ui/d-table-body-cell-time.d.ts +1 -1
  21. package/dist/types/wcardinal/ui/d-table-body-cells.d.ts +7 -5
  22. package/dist/types/wcardinal/ui/d-table-body-row.d.ts +6 -4
  23. package/dist/types/wcardinal/ui/d-table-body.d.ts +2 -0
  24. package/dist/types/wcardinal/ui/d-table-column-editing.d.ts +16 -0
  25. package/dist/types/wcardinal/ui/d-table-column-formatter.d.ts +1 -0
  26. package/dist/types/wcardinal/ui/d-table-column-getter.d.ts +1 -0
  27. package/dist/types/wcardinal/ui/d-table-column-renderable.d.ts +1 -0
  28. package/dist/types/wcardinal/ui/d-table-column-selecting.d.ts +25 -0
  29. package/dist/types/wcardinal/ui/d-table-column-setter.d.ts +1 -0
  30. package/dist/types/wcardinal/ui/d-table-column-sorting.d.ts +9 -0
  31. package/dist/types/wcardinal/ui/d-table-column-state.d.ts +11 -0
  32. package/dist/types/wcardinal/ui/d-table-column-type.d.ts +18 -0
  33. package/dist/types/wcardinal/ui/d-table-column.d.ts +33 -101
  34. package/dist/types/wcardinal/ui/index.d.ts +12 -2
  35. package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtimes.d.ts +7 -15
  36. package/dist/types/wcardinal/ui/shape/e-shape-data-impl.d.ts +7 -0
  37. package/dist/types/wcardinal/ui/shape/e-shape-data-scoped-impl.d.ts +2 -1
  38. package/dist/types/wcardinal/ui/shape/e-shape-data-scoped.d.ts +2 -1
  39. package/dist/types/wcardinal/ui/shape/e-shape-data-value-formatter.d.ts +1 -0
  40. package/dist/types/wcardinal/ui/shape/e-shape-data-value-impl.d.ts +10 -1
  41. package/dist/types/wcardinal/ui/shape/e-shape-data-value-state.d.ts +32 -0
  42. package/dist/types/wcardinal/ui/shape/e-shape-data-value.d.ts +6 -1
  43. package/dist/types/wcardinal/ui/shape/e-shape-data.d.ts +4 -0
  44. package/dist/types/wcardinal/ui/shape/index.d.ts +2 -0
  45. package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +2 -1
  46. package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +2 -0
  47. package/dist/types/wcardinal/ui/shape/variant/e-shape-embedded-layer.d.ts +1 -1
  48. package/dist/types/wcardinal/ui/shape/variant/e-shape-embedded.d.ts +1 -1
  49. package/dist/types/wcardinal/ui/shape/variant/e-shape-group-viewer.d.ts +2 -4
  50. package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.d.ts +2 -0
  51. package/dist/types/wcardinal/ui/theme/white/d-theme-white-table-header-cell.d.ts +2 -0
  52. package/dist/types/wcardinal/ui/util/index.d.ts +3 -0
  53. package/dist/types/wcardinal/ui/util/is-object.d.ts +1 -0
  54. package/dist/types/wcardinal/ui/util/to-cloned.d.ts +1 -0
  55. package/dist/types/wcardinal/ui/util/to-merged.d.ts +1 -0
  56. package/dist/wcardinal/ui/d-application.js +2 -2
  57. package/dist/wcardinal/ui/d-application.js.map +1 -1
  58. package/dist/wcardinal/ui/d-base.js +2 -2
  59. package/dist/wcardinal/ui/d-base.js.map +1 -1
  60. package/dist/wcardinal/ui/{d-controller-default-command.js → d-controller-command-impl.js} +24 -24
  61. package/dist/wcardinal/ui/d-controller-command-impl.js.map +1 -0
  62. package/dist/wcardinal/ui/{d-controller-default-focus.js → d-controller-focus-impl.js} +18 -18
  63. package/dist/wcardinal/ui/d-controller-focus-impl.js.map +1 -0
  64. package/dist/wcardinal/ui/d-controllers.js +2 -2
  65. package/dist/wcardinal/ui/d-controllers.js.map +1 -1
  66. package/dist/wcardinal/ui/d-diagram-base.js.map +1 -1
  67. package/dist/wcardinal/ui/d-diagram-canvas-data-impl.js +50 -16
  68. package/dist/wcardinal/ui/d-diagram-canvas-data-impl.js.map +1 -1
  69. package/dist/wcardinal/ui/d-diagram-canvas-data.js.map +1 -1
  70. package/dist/wcardinal/ui/d-diagram-canvas.js +13 -16
  71. package/dist/wcardinal/ui/d-diagram-canvas.js.map +1 -1
  72. package/dist/wcardinal/ui/d-diagram-data-extended-impl.js +2 -2
  73. package/dist/wcardinal/ui/d-diagram-data-extended-impl.js.map +1 -1
  74. package/dist/wcardinal/ui/d-diagram-data-impl.js +22 -8
  75. package/dist/wcardinal/ui/d-diagram-data-impl.js.map +1 -1
  76. package/dist/wcardinal/ui/d-diagram-data-private-impl.js +2 -2
  77. package/dist/wcardinal/ui/d-diagram-data-private-impl.js.map +1 -1
  78. package/dist/wcardinal/ui/d-diagram-data-protected-impl.js +2 -2
  79. package/dist/wcardinal/ui/d-diagram-data-protected-impl.js.map +1 -1
  80. package/dist/wcardinal/ui/d-diagram-data-remote-impl.js +1 -1
  81. package/dist/wcardinal/ui/d-diagram-data-remote-impl.js.map +1 -1
  82. package/dist/wcardinal/ui/d-diagram-data-remote.js.map +1 -1
  83. package/dist/wcardinal/ui/d-diagram-data-scoped.js.map +1 -1
  84. package/dist/wcardinal/ui/d-diagram-data.js.map +1 -1
  85. package/dist/wcardinal/ui/d-diagram-serialized.js.map +1 -1
  86. package/dist/wcardinal/ui/d-table-body-cell-action-menu.js +1 -3
  87. package/dist/wcardinal/ui/d-table-body-cell-action-menu.js.map +1 -1
  88. package/dist/wcardinal/ui/d-table-body-cell-check.js +2 -4
  89. package/dist/wcardinal/ui/d-table-body-cell-check.js.map +1 -1
  90. package/dist/wcardinal/ui/d-table-body-cell-color.js +17 -19
  91. package/dist/wcardinal/ui/d-table-body-cell-color.js.map +1 -1
  92. package/dist/wcardinal/ui/d-table-body-cell-date.js +1 -3
  93. package/dist/wcardinal/ui/d-table-body-cell-date.js.map +1 -1
  94. package/dist/wcardinal/ui/d-table-body-cell-datetime.js +2 -4
  95. package/dist/wcardinal/ui/d-table-body-cell-datetime.js.map +1 -1
  96. package/dist/wcardinal/ui/d-table-body-cell-index.js +1 -3
  97. package/dist/wcardinal/ui/d-table-body-cell-index.js.map +1 -1
  98. package/dist/wcardinal/ui/d-table-body-cell-input-integer.js +1 -3
  99. package/dist/wcardinal/ui/d-table-body-cell-input-integer.js.map +1 -1
  100. package/dist/wcardinal/ui/d-table-body-cell-input-real.js +1 -3
  101. package/dist/wcardinal/ui/d-table-body-cell-input-real.js.map +1 -1
  102. package/dist/wcardinal/ui/d-table-body-cell-input-text.js +1 -3
  103. package/dist/wcardinal/ui/d-table-body-cell-input-text.js.map +1 -1
  104. package/dist/wcardinal/ui/d-table-body-cell-input-tree.js +1 -3
  105. package/dist/wcardinal/ui/d-table-body-cell-input-tree.js.map +1 -1
  106. package/dist/wcardinal/ui/d-table-body-cell-options.js +6 -0
  107. package/dist/wcardinal/ui/d-table-body-cell-options.js.map +1 -0
  108. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js +1 -3
  109. package/dist/wcardinal/ui/d-table-body-cell-select-dialog.js.map +1 -1
  110. package/dist/wcardinal/ui/d-table-body-cell-select-menu.js +1 -3
  111. package/dist/wcardinal/ui/d-table-body-cell-select-menu.js.map +1 -1
  112. package/dist/wcardinal/ui/d-table-body-cell-select-multiple.js +1 -3
  113. package/dist/wcardinal/ui/d-table-body-cell-select-multiple.js.map +1 -1
  114. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js +1 -3
  115. package/dist/wcardinal/ui/d-table-body-cell-select-promise.js.map +1 -1
  116. package/dist/wcardinal/ui/d-table-body-cell-text.js +1 -3
  117. package/dist/wcardinal/ui/d-table-body-cell-text.js.map +1 -1
  118. package/dist/wcardinal/ui/d-table-body-cell-time.js +1 -3
  119. package/dist/wcardinal/ui/d-table-body-cell-time.js.map +1 -1
  120. package/dist/wcardinal/ui/d-table-body-cell-tree.js +1 -2
  121. package/dist/wcardinal/ui/d-table-body-cell-tree.js.map +1 -1
  122. package/dist/wcardinal/ui/d-table-body-cells.js +13 -5
  123. package/dist/wcardinal/ui/d-table-body-cells.js.map +1 -1
  124. package/dist/wcardinal/ui/d-table-body-row.js +43 -39
  125. package/dist/wcardinal/ui/d-table-body-row.js.map +1 -1
  126. package/dist/wcardinal/ui/d-table-body.js +2 -1
  127. package/dist/wcardinal/ui/d-table-body.js.map +1 -1
  128. package/dist/wcardinal/ui/d-table-column-editing.js +6 -0
  129. package/dist/wcardinal/ui/d-table-column-editing.js.map +1 -0
  130. package/dist/wcardinal/ui/d-table-column-formatter.js +6 -0
  131. package/dist/wcardinal/ui/d-table-column-formatter.js.map +1 -0
  132. package/dist/wcardinal/ui/d-table-column-getter.js +6 -0
  133. package/dist/wcardinal/ui/d-table-column-getter.js.map +1 -0
  134. package/dist/wcardinal/ui/d-table-column-renderable.js +6 -0
  135. package/dist/wcardinal/ui/d-table-column-renderable.js.map +1 -0
  136. package/dist/wcardinal/ui/d-table-column-selecting.js +6 -0
  137. package/dist/wcardinal/ui/d-table-column-selecting.js.map +1 -0
  138. package/dist/wcardinal/ui/d-table-column-setter.js +6 -0
  139. package/dist/wcardinal/ui/d-table-column-setter.js.map +1 -0
  140. package/dist/wcardinal/ui/d-table-column-sorting.js +6 -0
  141. package/dist/wcardinal/ui/d-table-column-sorting.js.map +1 -0
  142. package/dist/wcardinal/ui/d-table-column-state.js +6 -0
  143. package/dist/wcardinal/ui/d-table-column-state.js.map +1 -0
  144. package/dist/wcardinal/ui/d-table-column-type.js +22 -0
  145. package/dist/wcardinal/ui/d-table-column-type.js.map +1 -0
  146. package/dist/wcardinal/ui/d-table-column.js +1 -17
  147. package/dist/wcardinal/ui/d-table-column.js.map +1 -1
  148. package/dist/wcardinal/ui/d-table.js +23 -1
  149. package/dist/wcardinal/ui/d-table.js.map +1 -1
  150. package/dist/wcardinal/ui/index.js +12 -2
  151. package/dist/wcardinal/ui/index.js.map +1 -1
  152. package/dist/wcardinal/ui/shape/action/e-shape-action-expressions.js +2 -0
  153. package/dist/wcardinal/ui/shape/action/e-shape-action-expressions.js.map +1 -1
  154. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-both.js +2 -2
  155. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-both.js.map +1 -1
  156. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-local.js +1 -1
  157. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-local.js.map +1 -1
  158. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-remote.js +1 -1
  159. package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-misc-write-remote.js.map +1 -1
  160. package/dist/wcardinal/ui/shape/action/e-shape-action-runtimes.js +30 -29
  161. package/dist/wcardinal/ui/shape/action/e-shape-action-runtimes.js.map +1 -1
  162. package/dist/wcardinal/ui/shape/action/e-shape-action-value-on-input-actions.js +4 -4
  163. package/dist/wcardinal/ui/shape/action/e-shape-action-value-on-input-actions.js.map +1 -1
  164. package/dist/wcardinal/ui/shape/e-shape-data-impl.js +57 -0
  165. package/dist/wcardinal/ui/shape/e-shape-data-impl.js.map +1 -1
  166. package/dist/wcardinal/ui/shape/e-shape-data-scoped-impl.js +5 -1
  167. package/dist/wcardinal/ui/shape/e-shape-data-scoped-impl.js.map +1 -1
  168. package/dist/wcardinal/ui/shape/e-shape-data-scoped.js.map +1 -1
  169. package/dist/wcardinal/ui/shape/e-shape-data-value-formatter.js +6 -0
  170. package/dist/wcardinal/ui/shape/e-shape-data-value-formatter.js.map +1 -0
  171. package/dist/wcardinal/ui/shape/e-shape-data-value-impl.js +211 -56
  172. package/dist/wcardinal/ui/shape/e-shape-data-value-impl.js.map +1 -1
  173. package/dist/wcardinal/ui/shape/e-shape-data-value-state.js +36 -0
  174. package/dist/wcardinal/ui/shape/e-shape-data-value-state.js.map +1 -0
  175. package/dist/wcardinal/ui/shape/e-shape-data-value.js.map +1 -1
  176. package/dist/wcardinal/ui/shape/e-shape-data.js.map +1 -1
  177. package/dist/wcardinal/ui/shape/e-shape-runtime.js +4 -2
  178. package/dist/wcardinal/ui/shape/e-shape-runtime.js.map +1 -1
  179. package/dist/wcardinal/ui/shape/index.js +2 -0
  180. package/dist/wcardinal/ui/shape/index.js.map +1 -1
  181. package/dist/wcardinal/ui/shape/variant/build-text.js +84 -63
  182. package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
  183. package/dist/wcardinal/ui/shape/variant/builder-text.js +18 -3
  184. package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
  185. package/dist/wcardinal/ui/shape/variant/deserialize-embedded-layer.js +2 -3
  186. package/dist/wcardinal/ui/shape/variant/deserialize-embedded-layer.js.map +1 -1
  187. package/dist/wcardinal/ui/shape/variant/deserialize-embedded.js +4 -3
  188. package/dist/wcardinal/ui/shape/variant/deserialize-embedded.js.map +1 -1
  189. package/dist/wcardinal/ui/shape/variant/e-shape-base.js +3 -1
  190. package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
  191. package/dist/wcardinal/ui/shape/variant/e-shape-embedded-layer.js +3 -3
  192. package/dist/wcardinal/ui/shape/variant/e-shape-embedded-layer.js.map +1 -1
  193. package/dist/wcardinal/ui/shape/variant/e-shape-embedded.js +3 -3
  194. package/dist/wcardinal/ui/shape/variant/e-shape-embedded.js.map +1 -1
  195. package/dist/wcardinal/ui/shape/variant/e-shape-embeddeds.js +1 -1
  196. package/dist/wcardinal/ui/shape/variant/e-shape-embeddeds.js.map +1 -1
  197. package/dist/wcardinal/ui/shape/variant/e-shape-group-viewer.js +4 -18
  198. package/dist/wcardinal/ui/shape/variant/e-shape-group-viewer.js.map +1 -1
  199. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js +11 -0
  200. package/dist/wcardinal/ui/theme/dark/d-theme-dark-table-header-cell.js.map +1 -1
  201. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js +11 -0
  202. package/dist/wcardinal/ui/theme/white/d-theme-white-table-header-cell.js.map +1 -1
  203. package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js +1 -1
  204. package/dist/wcardinal/ui/util/dynamic-sdf-font-generator.js.map +1 -1
  205. package/dist/wcardinal/ui/util/index.js +3 -0
  206. package/dist/wcardinal/ui/util/index.js.map +1 -1
  207. package/dist/wcardinal/ui/util/is-object.js +13 -0
  208. package/dist/wcardinal/ui/util/is-object.js.map +1 -0
  209. package/dist/wcardinal/ui/util/to-cloned.js +32 -0
  210. package/dist/wcardinal/ui/util/to-cloned.js.map +1 -0
  211. package/dist/wcardinal/ui/util/to-merged.js +45 -0
  212. package/dist/wcardinal/ui/util/to-merged.js.map +1 -0
  213. package/dist/wcardinal-ui-theme-dark.js +12 -1
  214. package/dist/wcardinal-ui-theme-dark.min.js +2 -2
  215. package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
  216. package/dist/wcardinal-ui-theme-white.js +12 -1
  217. package/dist/wcardinal-ui-theme-white.min.js +2 -2
  218. package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
  219. package/dist/wcardinal-ui.cjs.js +1451 -1014
  220. package/dist/wcardinal-ui.js +1429 -1014
  221. package/dist/wcardinal-ui.min.js +2 -2
  222. package/dist/wcardinal-ui.min.js.map +1 -1
  223. package/package.json +1 -1
  224. package/dist/wcardinal/ui/d-controller-default-command.js.map +0 -1
  225. package/dist/wcardinal/ui/d-controller-default-focus.js.map +0 -1
@@ -1 +1 @@
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_INDEX_COUNT = 2;\nconst TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\treturn Math.ceil(shape.text.value.length / 12) * 12;\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): 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;\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 toNormalized = (\n\tdx: number,\n\tdy: number,\n\tdefx: number,\n\tdefy: number,\n\tresult: Point\n): number => {\n\tconst d = dx * dx + dy * dy;\n\tif (TEXT_FMIN < d) {\n\t\tconst l = Math.sqrt(d);\n\t\tconst li = 1 / l;\n\t\tresult.set(dx * li, dy * li);\n\t\treturn l;\n\t} else {\n\t\tresult.set(defx, defy);\n\t\treturn 0;\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\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\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\tconst work = TEXT_WORK_POINT;\n\twork.set(originX - sx, originY - sy);\n\tinternalTransform.apply(work, work);\n\tconst x0 = work.x;\n\tconst y0 = work.y;\n\twork.set(originX + sx, originY - sy);\n\tinternalTransform.apply(work, work);\n\tconst x1 = work.x;\n\tconst y1 = work.y;\n\twork.set(originX + sx, originY + sy);\n\tinternalTransform.apply(work, work);\n\tconst x2 = work.x;\n\tconst y2 = work.y;\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\ttoNormalized(internalTransform.a, internalTransform.b, 1, 0, work);\n\tlet hnx = work.x;\n\tlet hny = work.y;\n\n\t// Vertical normal\n\tconst vl = toLength(x0, y0, x3, y3);\n\ttoNormalized(internalTransform.c, internalTransform.d, 0, 1, work);\n\tlet vnx = work.x;\n\tlet vny = work.y;\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tconst lineHeight = Math.max(0, textSize + textSpacingVertical);\n\tlet lineWidth = 0;\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}\n\t}\n\n\tconst scale = textSize / textAtlas.font.size;\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth) * scale;\n\tlineWidth = 0;\n\theightChar *= scale;\n\theight += textSize;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = NaN;\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) {\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\t// Swap normals\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\t// Get text bbox\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) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t// Swap normals\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\t// Get text bbox\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) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\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} 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}\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 = scale * hnx;\n\tconst sny = scale * hny;\n\n\tconst offsetY = (heightChar - textSize) * 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 + textSize * vnx;\n\tlet by3 = ty0 + oyy + textSize * 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\tlet lineCount = 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) * scale) {\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) * scale\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 * scale,\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 * scale,\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 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}\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_INDEX_COUNT = 2;\nexport const TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\treturn Math.ceil(shape.text.value.length / 12) * 12;\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\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\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}\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tconst textSizeY = textSize * vnl;\n\tconst lineHeight = Math.max(0, textSize + textSpacingVertical) * vnl;\n\tlet lineWidth = 0;\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}\n\t}\n\n\tconst scaleZ = textSize / textAtlas.font.size;\n\tconst scaleX = hnl * scaleZ;\n\tconst scaleY = vnl * scaleZ;\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth) * scaleX;\n\tlineWidth = 0;\n\theightChar *= scaleY;\n\theight += textSizeY;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = NaN;\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) {\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\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) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\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) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\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\tlet lineCount = 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 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}\n\t}\n};\n"]}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { Texture } from "pixi.js";
6
6
  import { buildColor } from "./build-color";
7
- import { buildTextClipping, buildTextIndex, buildTextStep, buildTextVertex, TEXT_VERTEX_COUNT, toTextBufferCount } from "./build-text";
7
+ import { buildTextClipping, buildTextIndex, buildTextStep, buildTextVertex, TEXT_FMIN, TEXT_VERTEX_COUNT, toTextBufferCount } from "./build-text";
8
8
  import { toTextureTransformId, toTextureUvs, toTransformLocalId } from "./builders";
9
9
  var BuilderText = /** @class */ (function () {
10
10
  function BuilderText(vertexOffset, indexOffset, vertexCount, indexCount) {
@@ -15,6 +15,8 @@ var BuilderText = /** @class */ (function () {
15
15
  this.sizeX = NaN;
16
16
  this.sizeY = NaN;
17
17
  this.transformLocalId = NaN;
18
+ this.scaleX = 1;
19
+ this.scaleY = 1;
18
20
  this.size = NaN;
19
21
  this.family = "auto";
20
22
  this.value = "";
@@ -173,12 +175,25 @@ var BuilderText = /** @class */ (function () {
173
175
  var text = shape.text;
174
176
  var textOutline = text.outline;
175
177
  var textOutlineWidth = textOutline.enable ? textOutline.width : 0;
178
+ var isOutlineWidthChanged = textOutlineWidth !== this.outlineWidth;
176
179
  var textWeight = text.weight;
177
- if (textWeight !== this.weight || textOutlineWidth !== this.outlineWidth) {
180
+ var isWeightChanged = textWeight !== this.weight;
181
+ var scaleX = 1;
182
+ var scaleY = 1;
183
+ var textWorld = text.world;
184
+ if (textWorld != null) {
185
+ scaleX = textWorld[8];
186
+ scaleY = textWorld[9];
187
+ }
188
+ var isScaleChanged = TEXT_FMIN < Math.abs(this.scaleX - scaleX) ||
189
+ TEXT_FMIN < Math.abs(this.scaleY - scaleY);
190
+ if (isWeightChanged || isOutlineWidthChanged || isScaleChanged) {
178
191
  this.weight = textWeight;
179
192
  this.outlineWidth = textOutlineWidth;
193
+ this.scaleX = scaleX;
194
+ this.scaleY = scaleY;
180
195
  buffer.updateSteps();
181
- buildTextStep(buffer.steps, this.vertexOffset, this.vertexCount, text.atlas, text.size, textOutlineWidth, textWeight);
196
+ buildTextStep(buffer.steps, this.vertexOffset, this.vertexCount, text.atlas, text.size, textOutlineWidth, textWeight, this.scaleX, this.scaleY);
182
197
  }
183
198
  };
184
199
  BuilderText.prototype.buildUnit = function (builder) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKlC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEpF;IAiCC,qBACC,YAAoB,EACpB,WAAmB,EACnB,WAAmB,EACnB,UAAkB;QAElB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QAEjB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,0BAAI,GAAJ,UAAK,MAAoB;QACxB,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,GAAG,MAAM,EAAE;YACf,YAAY;YACZ,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;YAClC,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAErD,UAAU;YACV,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3E;IACF,CAAC;IAED,kCAAY,GAAZ,UAAa,KAAa;QACzB,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG,iBAAiB,KAAK,IAAI,CAAC,WAAW,CAAC;IAC1E,CAAC;IAED,4BAAM,GAAN,UAAO,MAAoB,EAAE,KAAa;QACzC,IAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,IAAI,CAAC,GAAG,MAAM,EAAE;YACf,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,SAAS,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC/B;SACD;IACF,CAAC;IAES,kCAAY,GAAtB,UAAuB,MAAoB,EAAE,KAAa,EAAE,SAA0B;QACrF,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACrB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;QACrB,IAAM,aAAa,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;QAEnE,IAAM,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,CAAC;QAEtE,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAClD,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9C,IAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACpD,IAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,IAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtD,IAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,IAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtD,IAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QAClD,IAAM,sBAAsB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAEjE,IAAM,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;QAC7E,IAAM,iBAAiB,GAAG,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC;QACjD,IAAM,kBAAkB,GAAG,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC;QACpD,IAAM,kBAAkB,GACvB,mBAAmB,KAAK,IAAI,CAAC,eAAe;YAC5C,iBAAiB,KAAK,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAM,mBAAmB,GACxB,oBAAoB,KAAK,IAAI,CAAC,gBAAgB;YAC9C,kBAAkB,KAAK,IAAI,CAAC,cAAc,CAAC;QAC5C,IAAM,oBAAoB,GACzB,qBAAqB,KAAK,IAAI,CAAC,iBAAiB;YAChD,mBAAmB,KAAK,IAAI,CAAC,eAAe;YAC5C,qBAAqB,KAAK,IAAI,CAAC,iBAAiB;YAChD,mBAAmB,KAAK,IAAI,CAAC,eAAe,CAAC;QAC9C,IAAM,sBAAsB,GAAG,aAAa,KAAK,IAAI,CAAC,SAAS,CAAC;QAChE,IAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,KAAK,YAAY,CAAC;QACzD,IAAM,gBAAgB,GACrB,WAAW,KAAK,IAAI,CAAC,OAAO,IAAI,sBAAsB,KAAK,IAAI,CAAC,kBAAkB,CAAC;QAEpF,IACC,aAAa;YACb,kBAAkB;YAClB,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,kBAAkB;YAClB,mBAAmB;YACnB,oBAAoB;YACpB,sBAAsB;YACtB,iBAAiB;YACjB,gBAAgB,EACf;YACD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;YAC3C,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,CAAC;YAC7C,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC;YACzC,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;YAC/C,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC;YAC/C,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC;YAC3C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC;YAEjD,IAAI,iBAAiB,EAAE;gBACtB,uDAAuD;gBACvD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;aAClB;YAED,iBAAiB;YACjB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,SAAS,IAAI,IAAI,EAAE;gBACtB,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;aACvB;YACD,eAAe,CACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,GAAG,EACV,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,EAChB,CAAC,EACD,CAAC,EACD,SAAS,CAAC,CAAC,EACX,SAAS,CAAC,CAAC,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,YAAY,CAAC,WAAW,CAAC,EACzB,KAAK,CAAC,SAAS,CAAC,iBAAiB,CACjC,CAAC;SACF;IACF,CAAC;IAES,qCAAe,GAAzB,UAA0B,MAAoB,EAAE,KAAa;QAC5D,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;YACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAE1B,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;SACjF;IACF,CAAC;IAES,uCAAiB,GAA3B,UAA4B,MAAoB,EAAE,KAAa;QAC9D,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE;YAC/D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAE5B,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;SACnF;IACF,CAAC;IAES,gCAAU,GAApB,UAAqB,MAAoB,EAAE,KAAa;QACvD,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QACjC,IAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,UAAU,KAAK,IAAI,CAAC,MAAM,IAAI,gBAAgB,KAAK,IAAI,CAAC,YAAY,EAAE;YACzE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;YAErC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,aAAa,CACZ,MAAM,CAAC,KAAK,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,IAAI,EACT,gBAAgB,EAChB,UAAU,CACV,CAAC;SACF;IACF,CAAC;IAED,+BAAS,GAAT,UAAU,OAAgC;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;YACzB,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;YAClD,IAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC;YAChD,IAAI,eAAe,KAAK,OAAO,CAAC,WAAW,EAAE;gBAC5C,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC5C;SACD;IACF,CAAC;IACF,kBAAC;AAAD,CAAC,AA3RD,IA2RC","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 { EShapeBuffer } from \"../e-shape-buffer\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\nimport { EShapeTextAtlas } from \"../e-shape-text\";\nimport { buildColor } from \"./build-color\";\nimport {\n\tbuildTextClipping,\n\tbuildTextIndex,\n\tbuildTextStep,\n\tbuildTextVertex,\n\tTEXT_VERTEX_COUNT,\n\ttoTextBufferCount\n} from \"./build-text\";\nimport { Builder } from \"./builder\";\nimport { toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderText implements Builder {\n\treadonly vertexOffset: number;\n\treadonly indexOffset: number;\n\treadonly vertexCount: number;\n\treadonly indexCount: number;\n\n\tprotected sizeX: number;\n\tprotected sizeY: number;\n\tprotected transformLocalId: number;\n\n\tprotected texture: Texture | null;\n\tprotected textureTransformId: number;\n\tprotected value: string;\n\tprotected family: string;\n\tprotected size: number;\n\tprotected color: number;\n\tprotected alpha: number;\n\tprotected weight: number;\n\tprotected style: number;\n\tprotected alignHorizontal: number;\n\tprotected alignVertical: number;\n\tprotected offsetHorizontal: number;\n\tprotected offsetVertical: number;\n\tprotected outlineWidth: number;\n\tprotected outlineColor: number;\n\tprotected outlineAlpha: number;\n\tprotected spacingHorizontal: number;\n\tprotected spacingVertical: number;\n\tprotected direction: number;\n\tprotected paddingHorizontal: number;\n\tprotected paddingVertical: number;\n\tprotected clipping: boolean;\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.sizeX = NaN;\n\t\tthis.sizeY = NaN;\n\n\t\tthis.transformLocalId = NaN;\n\n\t\tthis.size = NaN;\n\t\tthis.family = \"auto\";\n\t\tthis.value = \"\";\n\t\tthis.texture = null;\n\t\tthis.textureTransformId = NaN;\n\t\tthis.color = NaN;\n\t\tthis.alpha = NaN;\n\t\tthis.weight = NaN;\n\t\tthis.style = NaN;\n\t\tthis.alignHorizontal = NaN;\n\t\tthis.alignVertical = NaN;\n\t\tthis.offsetHorizontal = NaN;\n\t\tthis.offsetVertical = NaN;\n\t\tthis.outlineWidth = NaN;\n\t\tthis.outlineColor = NaN;\n\t\tthis.outlineAlpha = NaN;\n\t\tthis.spacingHorizontal = NaN;\n\t\tthis.spacingVertical = NaN;\n\t\tthis.direction = NaN;\n\t\tthis.paddingHorizontal = NaN;\n\t\tthis.paddingVertical = NaN;\n\t\tthis.clipping = false;\n\t}\n\n\tinit(buffer: EShapeBuffer): void {\n\t\tconst vcount = this.vertexCount;\n\t\tif (0 < vcount) {\n\t\t\t// Clippings\n\t\t\tconst voffset = this.vertexOffset;\n\t\t\tbuffer.updateClippings();\n\t\t\tbuildTextClipping(buffer.clippings, voffset, vcount);\n\n\t\t\t// Indices\n\t\t\tbuffer.updateIndices();\n\t\t\tbuildTextIndex(buffer.indices, voffset, this.indexOffset, this.indexCount);\n\t\t}\n\t}\n\n\tisCompatible(shape: EShape): boolean {\n\t\treturn toTextBufferCount(shape) * TEXT_VERTEX_COUNT === this.vertexCount;\n\t}\n\n\tupdate(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst vcount = this.vertexCount;\n\t\tif (0 < vcount) {\n\t\t\tconst textAtlas = shape.text.atlas;\n\t\t\tif (textAtlas != null) {\n\t\t\t\tthis.updateVertex(buffer, shape, textAtlas);\n\t\t\t\tthis.updateColorFill(buffer, shape);\n\t\t\t\tthis.updateColorStroke(buffer, shape);\n\t\t\t\tthis.updateStep(buffer, shape);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateVertex(buffer: EShapeBuffer, shape: EShape, textAtlas: EShapeTextAtlas): 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 text = shape.text;\n\t\tconst textSize = text.size;\n\t\tconst textFamily = text.family;\n\t\tconst textValue = text.value;\n\t\tconst textStyle = text.style;\n\t\tconst textAlignHorizontal = text.align.horizontal;\n\t\tconst textAlignVertical = text.align.vertical;\n\t\tconst textOffsetHorizontal = text.offset.horizontal;\n\t\tconst textOffsetVertical = text.offset.vertical;\n\t\tconst textSpacingHorizontal = text.spacing.horizontal;\n\t\tconst textSpacingVertical = text.spacing.vertical;\n\t\tconst textDirection = text.direction;\n\t\tconst textPaddingHorizontal = text.padding.horizontal;\n\t\tconst textPaddingVertical = text.padding.vertical;\n\t\tconst textClipping = text.clipping;\n\t\tconst textTexture = text.texture || Texture.WHITE;\n\t\tconst textTextureTransformId = toTextureTransformId(textTexture);\n\n\t\tconst isCharChanged = textValue !== this.value || textFamily !== this.family;\n\t\tconst isCharSizeChanged = textSize !== this.size;\n\t\tconst isCharStyleChanged = textStyle !== this.style;\n\t\tconst isCharAlignChanged =\n\t\t\ttextAlignHorizontal !== this.alignHorizontal ||\n\t\t\ttextAlignVertical !== this.alignVertical;\n\t\tconst isCharOffsetChanged =\n\t\t\ttextOffsetHorizontal !== this.offsetHorizontal ||\n\t\t\ttextOffsetVertical !== this.offsetVertical;\n\t\tconst isCharSpacingChanged =\n\t\t\ttextSpacingHorizontal !== this.spacingHorizontal ||\n\t\t\ttextSpacingVertical !== this.spacingVertical ||\n\t\t\ttextPaddingHorizontal !== this.paddingHorizontal ||\n\t\t\ttextPaddingVertical !== this.paddingVertical;\n\t\tconst isCharDirectionChanged = textDirection !== this.direction;\n\t\tconst isClippingChanged = this.clipping !== textClipping;\n\t\tconst isTextureChanged =\n\t\t\ttextTexture !== this.texture || textTextureTransformId !== this.textureTransformId;\n\n\t\tif (\n\t\t\tisSizeChanged ||\n\t\t\tisTransformChanged ||\n\t\t\tisCharChanged ||\n\t\t\tisCharSizeChanged ||\n\t\t\tisCharStyleChanged ||\n\t\t\tisCharAlignChanged ||\n\t\t\tisCharOffsetChanged ||\n\t\t\tisCharSpacingChanged ||\n\t\t\tisCharDirectionChanged ||\n\t\t\tisClippingChanged ||\n\t\t\tisTextureChanged\n\t\t) {\n\t\t\tthis.size = textSize;\n\t\t\tthis.family = textFamily;\n\t\t\tthis.value = textValue;\n\t\t\tthis.style = textStyle;\n\t\t\tthis.alignHorizontal = textAlignHorizontal;\n\t\t\tthis.alignVertical = textAlignVertical;\n\t\t\tthis.offsetHorizontal = textOffsetHorizontal;\n\t\t\tthis.offsetVertical = textOffsetVertical;\n\t\t\tthis.spacingHorizontal = textSpacingHorizontal;\n\t\t\tthis.spacingVertical = textSpacingVertical;\n\t\t\tthis.direction = textDirection;\n\t\t\tthis.paddingHorizontal = textPaddingHorizontal;\n\t\t\tthis.paddingVertical = textPaddingVertical;\n\t\t\tthis.clipping = textClipping;\n\t\t\tthis.texture = textTexture;\n\t\t\tthis.textureTransformId = textTextureTransformId;\n\n\t\t\tif (isCharSizeChanged) {\n\t\t\t\t// Invalidate the text weight to update the text steps.\n\t\t\t\tthis.weight = NaN;\n\t\t\t}\n\n\t\t\t// Vertices & UVs\n\t\t\tbuffer.updateVertices();\n\t\t\tbuffer.updateUvs();\n\t\t\tconst shapeSize = shape.size;\n\t\t\tlet textWorld = text.world;\n\t\t\tif (textWorld == null) {\n\t\t\t\ttextWorld = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];\n\t\t\t\ttext.world = textWorld;\n\t\t\t}\n\t\t\tbuildTextVertex(\n\t\t\t\tbuffer.vertices,\n\t\t\t\tbuffer.uvs,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tshapeSize.x,\n\t\t\t\tshapeSize.y,\n\t\t\t\ttextAtlas,\n\t\t\t\ttextSize,\n\t\t\t\ttextValue,\n\t\t\t\ttextStyle,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextSpacingHorizontal,\n\t\t\t\ttextSpacingVertical,\n\t\t\t\ttextDirection,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextClipping,\n\t\t\t\ttextWorld,\n\t\t\t\ttoTextureUvs(textTexture),\n\t\t\t\tshape.transform.internalTransform\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected updateColorFill(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\t\tconst color = text.color;\n\t\tconst alpha = shape.visible && text.enable ? text.alpha : 0;\n\t\tif (color !== this.color || alpha !== this.alpha) {\n\t\t\tthis.color = color;\n\t\t\tthis.alpha = 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: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\t\tconst outline = text.outline;\n\t\tconst color = outline.color;\n\t\tconst alpha = shape.visible && text.enable ? outline.alpha : 0;\n\t\tif (color !== this.outlineColor || alpha !== this.outlineAlpha) {\n\t\t\tthis.outlineColor = color;\n\t\t\tthis.outlineAlpha = 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\tprotected updateStep(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\t\tconst textOutline = text.outline;\n\t\tconst textOutlineWidth = textOutline.enable ? textOutline.width : 0;\n\t\tconst textWeight = text.weight;\n\t\tif (textWeight !== this.weight || textOutlineWidth !== this.outlineWidth) {\n\t\t\tthis.weight = textWeight;\n\t\t\tthis.outlineWidth = textOutlineWidth;\n\n\t\t\tbuffer.updateSteps();\n\t\t\tbuildTextStep(\n\t\t\t\tbuffer.steps,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\ttext.atlas,\n\t\t\t\ttext.size,\n\t\t\t\ttextOutlineWidth,\n\t\t\t\ttextWeight\n\t\t\t);\n\t\t}\n\t}\n\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void {\n\t\tif (0 < this.vertexCount) {\n\t\t\tconst textTexture = this.texture || Texture.WHITE;\n\t\t\tconst textBaseTexture = textTexture.baseTexture;\n\t\t\tif (textBaseTexture !== builder.baseTexture) {\n\t\t\t\tbuilder.baseTexture = textBaseTexture;\n\t\t\t\tbuilder.push(textTexture, this.indexOffset);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"builder-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-text.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 { EShapeBuffer } from \"../e-shape-buffer\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\nimport { EShapeTextAtlas } from \"../e-shape-text\";\nimport { buildColor } from \"./build-color\";\nimport {\n\tbuildTextClipping,\n\tbuildTextIndex,\n\tbuildTextStep,\n\tbuildTextVertex,\n\tTEXT_FMIN,\n\tTEXT_VERTEX_COUNT,\n\ttoTextBufferCount\n} from \"./build-text\";\nimport { Builder } from \"./builder\";\nimport { toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderText implements Builder {\n\treadonly vertexOffset: number;\n\treadonly indexOffset: number;\n\treadonly vertexCount: number;\n\treadonly indexCount: number;\n\n\tprotected sizeX: number;\n\tprotected sizeY: number;\n\tprotected transformLocalId: number;\n\tprotected scaleX: number;\n\tprotected scaleY: number;\n\n\tprotected texture: Texture | null;\n\tprotected textureTransformId: number;\n\tprotected value: string;\n\tprotected family: string;\n\tprotected size: number;\n\tprotected color: number;\n\tprotected alpha: number;\n\tprotected weight: number;\n\tprotected style: number;\n\tprotected alignHorizontal: number;\n\tprotected alignVertical: number;\n\tprotected offsetHorizontal: number;\n\tprotected offsetVertical: number;\n\tprotected outlineWidth: number;\n\tprotected outlineColor: number;\n\tprotected outlineAlpha: number;\n\tprotected spacingHorizontal: number;\n\tprotected spacingVertical: number;\n\tprotected direction: number;\n\tprotected paddingHorizontal: number;\n\tprotected paddingVertical: number;\n\tprotected clipping: boolean;\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.sizeX = NaN;\n\t\tthis.sizeY = NaN;\n\n\t\tthis.transformLocalId = NaN;\n\n\t\tthis.scaleX = 1;\n\t\tthis.scaleY = 1;\n\n\t\tthis.size = NaN;\n\t\tthis.family = \"auto\";\n\t\tthis.value = \"\";\n\t\tthis.texture = null;\n\t\tthis.textureTransformId = NaN;\n\t\tthis.color = NaN;\n\t\tthis.alpha = NaN;\n\t\tthis.weight = NaN;\n\t\tthis.style = NaN;\n\t\tthis.alignHorizontal = NaN;\n\t\tthis.alignVertical = NaN;\n\t\tthis.offsetHorizontal = NaN;\n\t\tthis.offsetVertical = NaN;\n\t\tthis.outlineWidth = NaN;\n\t\tthis.outlineColor = NaN;\n\t\tthis.outlineAlpha = NaN;\n\t\tthis.spacingHorizontal = NaN;\n\t\tthis.spacingVertical = NaN;\n\t\tthis.direction = NaN;\n\t\tthis.paddingHorizontal = NaN;\n\t\tthis.paddingVertical = NaN;\n\t\tthis.clipping = false;\n\t}\n\n\tinit(buffer: EShapeBuffer): void {\n\t\tconst vcount = this.vertexCount;\n\t\tif (0 < vcount) {\n\t\t\t// Clippings\n\t\t\tconst voffset = this.vertexOffset;\n\t\t\tbuffer.updateClippings();\n\t\t\tbuildTextClipping(buffer.clippings, voffset, vcount);\n\n\t\t\t// Indices\n\t\t\tbuffer.updateIndices();\n\t\t\tbuildTextIndex(buffer.indices, voffset, this.indexOffset, this.indexCount);\n\t\t}\n\t}\n\n\tisCompatible(shape: EShape): boolean {\n\t\treturn toTextBufferCount(shape) * TEXT_VERTEX_COUNT === this.vertexCount;\n\t}\n\n\tupdate(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst vcount = this.vertexCount;\n\t\tif (0 < vcount) {\n\t\t\tconst textAtlas = shape.text.atlas;\n\t\t\tif (textAtlas != null) {\n\t\t\t\tthis.updateVertex(buffer, shape, textAtlas);\n\t\t\t\tthis.updateColorFill(buffer, shape);\n\t\t\t\tthis.updateColorStroke(buffer, shape);\n\t\t\t\tthis.updateStep(buffer, shape);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateVertex(buffer: EShapeBuffer, shape: EShape, textAtlas: EShapeTextAtlas): 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 text = shape.text;\n\t\tconst textSize = text.size;\n\t\tconst textFamily = text.family;\n\t\tconst textValue = text.value;\n\t\tconst textStyle = text.style;\n\t\tconst textAlignHorizontal = text.align.horizontal;\n\t\tconst textAlignVertical = text.align.vertical;\n\t\tconst textOffsetHorizontal = text.offset.horizontal;\n\t\tconst textOffsetVertical = text.offset.vertical;\n\t\tconst textSpacingHorizontal = text.spacing.horizontal;\n\t\tconst textSpacingVertical = text.spacing.vertical;\n\t\tconst textDirection = text.direction;\n\t\tconst textPaddingHorizontal = text.padding.horizontal;\n\t\tconst textPaddingVertical = text.padding.vertical;\n\t\tconst textClipping = text.clipping;\n\t\tconst textTexture = text.texture || Texture.WHITE;\n\t\tconst textTextureTransformId = toTextureTransformId(textTexture);\n\n\t\tconst isCharChanged = textValue !== this.value || textFamily !== this.family;\n\t\tconst isCharSizeChanged = textSize !== this.size;\n\t\tconst isCharStyleChanged = textStyle !== this.style;\n\t\tconst isCharAlignChanged =\n\t\t\ttextAlignHorizontal !== this.alignHorizontal ||\n\t\t\ttextAlignVertical !== this.alignVertical;\n\t\tconst isCharOffsetChanged =\n\t\t\ttextOffsetHorizontal !== this.offsetHorizontal ||\n\t\t\ttextOffsetVertical !== this.offsetVertical;\n\t\tconst isCharSpacingChanged =\n\t\t\ttextSpacingHorizontal !== this.spacingHorizontal ||\n\t\t\ttextSpacingVertical !== this.spacingVertical ||\n\t\t\ttextPaddingHorizontal !== this.paddingHorizontal ||\n\t\t\ttextPaddingVertical !== this.paddingVertical;\n\t\tconst isCharDirectionChanged = textDirection !== this.direction;\n\t\tconst isClippingChanged = this.clipping !== textClipping;\n\t\tconst isTextureChanged =\n\t\t\ttextTexture !== this.texture || textTextureTransformId !== this.textureTransformId;\n\n\t\tif (\n\t\t\tisSizeChanged ||\n\t\t\tisTransformChanged ||\n\t\t\tisCharChanged ||\n\t\t\tisCharSizeChanged ||\n\t\t\tisCharStyleChanged ||\n\t\t\tisCharAlignChanged ||\n\t\t\tisCharOffsetChanged ||\n\t\t\tisCharSpacingChanged ||\n\t\t\tisCharDirectionChanged ||\n\t\t\tisClippingChanged ||\n\t\t\tisTextureChanged\n\t\t) {\n\t\t\tthis.size = textSize;\n\t\t\tthis.family = textFamily;\n\t\t\tthis.value = textValue;\n\t\t\tthis.style = textStyle;\n\t\t\tthis.alignHorizontal = textAlignHorizontal;\n\t\t\tthis.alignVertical = textAlignVertical;\n\t\t\tthis.offsetHorizontal = textOffsetHorizontal;\n\t\t\tthis.offsetVertical = textOffsetVertical;\n\t\t\tthis.spacingHorizontal = textSpacingHorizontal;\n\t\t\tthis.spacingVertical = textSpacingVertical;\n\t\t\tthis.direction = textDirection;\n\t\t\tthis.paddingHorizontal = textPaddingHorizontal;\n\t\t\tthis.paddingVertical = textPaddingVertical;\n\t\t\tthis.clipping = textClipping;\n\t\t\tthis.texture = textTexture;\n\t\t\tthis.textureTransformId = textTextureTransformId;\n\n\t\t\tif (isCharSizeChanged) {\n\t\t\t\t// Invalidate the text weight to update the text steps.\n\t\t\t\tthis.weight = NaN;\n\t\t\t}\n\n\t\t\t// Vertices & UVs\n\t\t\tbuffer.updateVertices();\n\t\t\tbuffer.updateUvs();\n\t\t\tconst shapeSize = shape.size;\n\t\t\tlet textWorld = text.world;\n\t\t\tif (textWorld == null) {\n\t\t\t\ttextWorld = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];\n\t\t\t\ttext.world = textWorld;\n\t\t\t}\n\t\t\tbuildTextVertex(\n\t\t\t\tbuffer.vertices,\n\t\t\t\tbuffer.uvs,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\tshapeSize.x,\n\t\t\t\tshapeSize.y,\n\t\t\t\ttextAtlas,\n\t\t\t\ttextSize,\n\t\t\t\ttextValue,\n\t\t\t\ttextStyle,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextSpacingHorizontal,\n\t\t\t\ttextSpacingVertical,\n\t\t\t\ttextDirection,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextClipping,\n\t\t\t\ttextWorld,\n\t\t\t\ttoTextureUvs(textTexture),\n\t\t\t\tshape.transform.internalTransform\n\t\t\t);\n\t\t}\n\t}\n\n\tprotected updateColorFill(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\t\tconst color = text.color;\n\t\tconst alpha = shape.visible && text.enable ? text.alpha : 0;\n\t\tif (color !== this.color || alpha !== this.alpha) {\n\t\t\tthis.color = color;\n\t\t\tthis.alpha = 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: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\t\tconst outline = text.outline;\n\t\tconst color = outline.color;\n\t\tconst alpha = shape.visible && text.enable ? outline.alpha : 0;\n\t\tif (color !== this.outlineColor || alpha !== this.outlineAlpha) {\n\t\t\tthis.outlineColor = color;\n\t\t\tthis.outlineAlpha = 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\tprotected updateStep(buffer: EShapeBuffer, shape: EShape): void {\n\t\tconst text = shape.text;\n\n\t\tconst textOutline = text.outline;\n\t\tconst textOutlineWidth = textOutline.enable ? textOutline.width : 0;\n\t\tconst isOutlineWidthChanged = textOutlineWidth !== this.outlineWidth;\n\n\t\tconst textWeight = text.weight;\n\t\tconst isWeightChanged = textWeight !== this.weight;\n\n\t\tlet scaleX = 1;\n\t\tlet scaleY = 1;\n\t\tconst textWorld = text.world;\n\t\tif (textWorld != null) {\n\t\t\tscaleX = textWorld[8];\n\t\t\tscaleY = textWorld[9];\n\t\t}\n\t\tconst isScaleChanged =\n\t\t\tTEXT_FMIN < Math.abs(this.scaleX - scaleX) ||\n\t\t\tTEXT_FMIN < Math.abs(this.scaleY - scaleY);\n\n\t\tif (isWeightChanged || isOutlineWidthChanged || isScaleChanged) {\n\t\t\tthis.weight = textWeight;\n\t\t\tthis.outlineWidth = textOutlineWidth;\n\t\t\tthis.scaleX = scaleX;\n\t\t\tthis.scaleY = scaleY;\n\n\t\t\tbuffer.updateSteps();\n\t\t\tbuildTextStep(\n\t\t\t\tbuffer.steps,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\ttext.atlas,\n\t\t\t\ttext.size,\n\t\t\t\ttextOutlineWidth,\n\t\t\t\ttextWeight,\n\t\t\t\tthis.scaleX,\n\t\t\t\tthis.scaleY\n\t\t\t);\n\t\t}\n\t}\n\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void {\n\t\tif (0 < this.vertexCount) {\n\t\t\tconst textTexture = this.texture || Texture.WHITE;\n\t\t\tconst textBaseTexture = textTexture.baseTexture;\n\t\t\tif (textBaseTexture !== builder.baseTexture) {\n\t\t\t\tbuilder.baseTexture = textBaseTexture;\n\t\t\t\tbuilder.push(textTexture, this.indexOffset);\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -23,9 +23,7 @@ var deserializeEmbeddedLayerName = function (target, manager) {
23
23
  export var deserializeEmbeddedLayer = function (serialized, manager, width, height, creator) {
24
24
  var _a, _b, _c;
25
25
  var name = deserializeEmbeddedLayerName(serialized[0], manager);
26
- var result = creator
27
- ? creator(name, manager)
28
- : new EShapeEmbeddedLayer(name, manager.isEditMode);
26
+ var result = creator ? creator(name, manager) : new EShapeEmbeddedLayer(name);
29
27
  var visibility = serialized[1];
30
28
  var visible = visibility == null || !!(visibility & 0x2);
31
29
  if (!visible) {
@@ -38,6 +36,7 @@ export var deserializeEmbeddedLayer = function (serialized, manager, width, heig
38
36
  var sizeX = (_a = serialized[4]) !== null && _a !== void 0 ? _a : width;
39
37
  var sizeY = (_b = serialized[5]) !== null && _b !== void 0 ? _b : height;
40
38
  result.size.set(sizeX, sizeY);
39
+ result.size.init();
41
40
  var fillId = serialized[6];
42
41
  if (fillId != null) {
43
42
  result.fill.deserialize(fillId, manager);
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-embedded-layer.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-embedded-layer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedLayer } from \"../../d-diagram-serialized\";\nimport { isString } from \"../../util/is-string\";\nimport { EShapeActionValueGesture } from \"../action/e-shape-action-value-gesture\";\nimport { EShapeActionValueGestureOperationType } from \"../action/e-shape-action-value-gesture-operation-type\";\nimport { EShapeActionValueGestureType } from \"../action/e-shape-action-value-gesture-type\";\nimport { EShapeLayerState } from \"../e-shape-layer-state\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeEmbeddedLayer } from \"./e-shape-embedded-layer\";\n\nconst deserializeEmbeddedLayerName = (\n\ttarget: string | number,\n\tmanager: EShapeResourceManagerDeserialization\n): string => {\n\tif (isString(target)) {\n\t\treturn target;\n\t} else {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target <= resources.length) {\n\t\t\treturn resources[target];\n\t\t}\n\t\treturn \"\";\n\t}\n};\n\nexport const deserializeEmbeddedLayer = (\n\tserialized: DDiagramSerializedLayer,\n\tmanager: EShapeResourceManagerDeserialization,\n\twidth: number,\n\theight: number,\n\tcreator?: (name: string, manager: EShapeResourceManagerDeserialization) => EShapeEmbeddedLayer\n): EShapeEmbeddedLayer => {\n\tconst name = deserializeEmbeddedLayerName(serialized[0], manager);\n\tconst result = creator\n\t\t? creator(name, manager)\n\t\t: new EShapeEmbeddedLayer(name, manager.isEditMode);\n\n\tconst visibility = serialized[1];\n\tconst visible = visibility == null || !!(visibility & 0x2);\n\tif (!visible) {\n\t\tresult.visible = false;\n\t\tresult.state.add(EShapeLayerState.INVISIBLE);\n\t}\n\n\tconst positionX = -0.5 * width + (serialized[2] || 0);\n\tconst positionY = -0.5 * height + (serialized[3] || 0);\n\tresult.transform.position.set(positionX, positionY);\n\n\tconst sizeX = serialized[4] ?? width;\n\tconst sizeY = serialized[5] ?? height;\n\tresult.size.set(sizeX, sizeY);\n\n\tconst fillId = serialized[6];\n\tif (fillId != null) {\n\t\tresult.fill.deserialize(fillId, manager);\n\t}\n\n\tif (!manager.isEditMode) {\n\t\tconst state = serialized[7] ?? 1;\n\t\tconst isInteractive = state & 0x1;\n\t\tconst isDraggable = state & 0x2;\n\t\tconst isPinchable = state & 0x4;\n\t\tif (isDraggable || isPinchable) {\n\t\t\tconst gestureType =\n\t\t\t\t(isDraggable\n\t\t\t\t\t? EShapeActionValueGestureOperationType.DRAG\n\t\t\t\t\t: EShapeActionValueGestureOperationType.NONE) |\n\t\t\t\t(isPinchable\n\t\t\t\t\t? EShapeActionValueGestureOperationType.PINCH\n\t\t\t\t\t: EShapeActionValueGestureOperationType.NONE);\n\t\t\tresult.action.add(\n\t\t\t\tnew EShapeActionValueGesture(\"\", EShapeActionValueGestureType.LAYER, gestureType)\n\t\t\t);\n\t\t}\n\t\tif (isInteractive || isDraggable || isPinchable) {\n\t\t\tresult.interactive = true;\n\t\t}\n\t}\n\treturn result;\n};\n"]}
1
+ {"version":3,"file":"deserialize-embedded-layer.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-embedded-layer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedLayer } from \"../../d-diagram-serialized\";\nimport { isString } from \"../../util/is-string\";\nimport { EShapeActionValueGesture } from \"../action/e-shape-action-value-gesture\";\nimport { EShapeActionValueGestureOperationType } from \"../action/e-shape-action-value-gesture-operation-type\";\nimport { EShapeActionValueGestureType } from \"../action/e-shape-action-value-gesture-type\";\nimport { EShapeLayerState } from \"../e-shape-layer-state\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeEmbeddedLayer } from \"./e-shape-embedded-layer\";\n\nconst deserializeEmbeddedLayerName = (\n\ttarget: string | number,\n\tmanager: EShapeResourceManagerDeserialization\n): string => {\n\tif (isString(target)) {\n\t\treturn target;\n\t} else {\n\t\tconst resources = manager.resources;\n\t\tif (0 <= target && target <= resources.length) {\n\t\t\treturn resources[target];\n\t\t}\n\t\treturn \"\";\n\t}\n};\n\nexport const deserializeEmbeddedLayer = (\n\tserialized: DDiagramSerializedLayer,\n\tmanager: EShapeResourceManagerDeserialization,\n\twidth: number,\n\theight: number,\n\tcreator?: (name: string, manager: EShapeResourceManagerDeserialization) => EShapeEmbeddedLayer\n): EShapeEmbeddedLayer => {\n\tconst name = deserializeEmbeddedLayerName(serialized[0], manager);\n\tconst result = creator ? creator(name, manager) : new EShapeEmbeddedLayer(name);\n\n\tconst visibility = serialized[1];\n\tconst visible = visibility == null || !!(visibility & 0x2);\n\tif (!visible) {\n\t\tresult.visible = false;\n\t\tresult.state.add(EShapeLayerState.INVISIBLE);\n\t}\n\n\tconst positionX = -0.5 * width + (serialized[2] || 0);\n\tconst positionY = -0.5 * height + (serialized[3] || 0);\n\tresult.transform.position.set(positionX, positionY);\n\n\tconst sizeX = serialized[4] ?? width;\n\tconst sizeY = serialized[5] ?? height;\n\tresult.size.set(sizeX, sizeY);\n\tresult.size.init();\n\n\tconst fillId = serialized[6];\n\tif (fillId != null) {\n\t\tresult.fill.deserialize(fillId, manager);\n\t}\n\n\tif (!manager.isEditMode) {\n\t\tconst state = serialized[7] ?? 1;\n\t\tconst isInteractive = state & 0x1;\n\t\tconst isDraggable = state & 0x2;\n\t\tconst isPinchable = state & 0x4;\n\t\tif (isDraggable || isPinchable) {\n\t\t\tconst gestureType =\n\t\t\t\t(isDraggable\n\t\t\t\t\t? EShapeActionValueGestureOperationType.DRAG\n\t\t\t\t\t: EShapeActionValueGestureOperationType.NONE) |\n\t\t\t\t(isPinchable\n\t\t\t\t\t? EShapeActionValueGestureOperationType.PINCH\n\t\t\t\t\t: EShapeActionValueGestureOperationType.NONE);\n\t\t\tresult.action.add(\n\t\t\t\tnew EShapeActionValueGesture(\"\", EShapeActionValueGestureType.LAYER, gestureType)\n\t\t\t);\n\t\t}\n\t\tif (isInteractive || isDraggable || isPinchable) {\n\t\t\tresult.interactive = true;\n\t\t}\n\t}\n\treturn result;\n};\n"]}
@@ -8,7 +8,7 @@ import { EShapeEmbedded } from "./e-shape-embedded";
8
8
  import { EShapeEmbeddedLayer } from "./e-shape-embedded-layer";
9
9
  import { EShapeRectangle } from "./e-shape-rectangle";
10
10
  var create = function (name, width, height, container, manager, item, shape) {
11
- shape = shape || new EShapeEmbedded(name, manager.isEditMode);
11
+ shape = shape || new EShapeEmbedded(name);
12
12
  var result = deserializeBase(item, manager, shape);
13
13
  var shapeSize = shape.size;
14
14
  var sizeX = shapeSize.x;
@@ -21,17 +21,18 @@ var create = function (name, width, height, container, manager, item, shape) {
21
21
  return result;
22
22
  };
23
23
  var createMissing = function (name, manager, item, shape) {
24
- shape = shape || new EShapeEmbedded(name, manager.isEditMode);
24
+ shape = shape || new EShapeEmbedded(name);
25
25
  var result = deserializeBase(item, manager, shape);
26
26
  var size = shape.size;
27
27
  var sizeX = size.x;
28
28
  var sizeY = size.y;
29
29
  var children = shape.children;
30
- var layer = new EShapeEmbeddedLayer("missing", manager.isEditMode);
30
+ var layer = new EShapeEmbeddedLayer("missing");
31
31
  var px = 0.5 * sizeX;
32
32
  var py = 0.5 * sizeX;
33
33
  layer.transform.position.set(-px, -py);
34
34
  layer.size.set(sizeX, sizeY);
35
+ layer.size.init();
35
36
  layer.parent = shape;
36
37
  var rectangle = new EShapeRectangle();
37
38
  rectangle.stroke.color = 0xff0000;
@@ -1 +1 @@
1
- {"version":3,"file":"deserialize-embedded.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-embedded.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeDataMapper } from \"../e-shape-data-mapper\";\nimport { EShapeDataValueScope } from \"../e-shape-data-value-scope\";\nimport { EShapeLayerContainer } from \"../e-shape-layer-container\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { deserializeBase } from \"./deserialize-base\";\nimport { EShapeEmbedded } from \"./e-shape-embedded\";\nimport { EShapeEmbeddedLayer } from \"./e-shape-embedded-layer\";\nimport { EShapeRectangle } from \"./e-shape-rectangle\";\n\nconst create = (\n\tname: string,\n\twidth: number,\n\theight: number,\n\tcontainer: EShapeLayerContainer,\n\tmanager: EShapeResourceManagerDeserialization,\n\titem: DDiagramSerializedItem,\n\tshape?: EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded => {\n\tshape = shape || new EShapeEmbedded(name, manager.isEditMode);\n\tconst result = deserializeBase(item, manager, shape);\n\tconst shapeSize = shape.size;\n\tconst sizeX = shapeSize.x;\n\tconst sizeY = shapeSize.y;\n\tshape.size.set(width, height);\n\tcontainer.copyTo(shape);\n\tshape.size.init();\n\tshape.size.set(sizeX, sizeY);\n\tapplyDataMappings(shape, manager);\n\treturn result;\n};\n\nconst createMissing = (\n\tname: string,\n\tmanager: EShapeResourceManagerDeserialization,\n\titem: DDiagramSerializedItem,\n\tshape?: EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded => {\n\tshape = shape || new EShapeEmbedded(name, manager.isEditMode);\n\tconst result = deserializeBase(item, manager, shape);\n\n\tconst size = shape.size;\n\tconst sizeX = size.x;\n\tconst sizeY = size.y;\n\n\tconst children = shape.children;\n\tconst layer = new EShapeEmbeddedLayer(\"missing\", manager.isEditMode);\n\tconst px = 0.5 * sizeX;\n\tconst py = 0.5 * sizeX;\n\tlayer.transform.position.set(-px, -py);\n\tlayer.size.set(sizeX, sizeY);\n\tlayer.parent = shape;\n\n\tconst rectangle = new EShapeRectangle();\n\trectangle.stroke.color = 0xff0000;\n\trectangle.transform.position.set(px, py);\n\trectangle.size.copyFrom(shape.size);\n\trectangle.attach(layer);\n\n\tchildren.push(layer);\n\tshape.onChildTransformChange();\n\tshape.toDirty();\n\tshape.onAttach();\n\n\tshape.size.init();\n\tapplyDataMappings(shape, manager);\n\treturn result;\n};\n\nconst applyDataMappings = (\n\tshape: EShapeEmbedded,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tconst mapping = shape.data.getMapping();\n\tif (mapping != null) {\n\t\tconst values = mapping.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\tconst value = values[i];\n\t\t\tconst source = value[0];\n\t\t\tconst mapper = manager.getDataMapper(source);\n\t\t\tif (mapper != null) {\n\t\t\t\tconst children = shape.children;\n\t\t\t\tconst destination = manager.getDataDestination(value[1]);\n\t\t\t\tconst initial = value[2];\n\t\t\t\tapplyDataMapping(children, mapper, destination, initial);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst applyDataMapping = (\n\ttargets: EShape[],\n\tmapper: EShapeDataMapper,\n\tdestination: string[] | null,\n\tinitial: string\n): void => {\n\tfor (let i = 0, imax = targets.length; i < imax; ++i) {\n\t\tconst target = targets[i];\n\n\t\tconst targetData = target.data;\n\t\tfor (let j = 0, jmax = targetData.size(); j < jmax; ++j) {\n\t\t\tconst targetDatum = targetData.get(j);\n\t\t\tif (targetDatum && targetDatum.scope !== EShapeDataValueScope.PRIVATE) {\n\t\t\t\tmapper.map(targetDatum, destination, initial);\n\t\t\t}\n\t\t}\n\n\t\t// Children\n\t\tconst children = target.children;\n\t\tif (0 < children.length) {\n\t\t\tapplyDataMapping(children, mapper, destination, initial);\n\t\t}\n\t}\n};\n\nexport const deserializeEmbedded = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization,\n\tcreator?: (name: string, manager: EShapeResourceManagerDeserialization) => EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded | null => {\n\tconst pieces = manager.pieces;\n\tconst pieceId = item[15];\n\tif (pieces && 0 <= pieceId && pieceId < pieces.length) {\n\t\tconst pieceData = manager.pieceData;\n\t\tif (pieceData) {\n\t\t\tconst piece = pieces[pieceId];\n\t\t\tconst pieceDatum = pieceData.get(piece);\n\t\t\tconst shape = creator && creator(piece, manager);\n\t\t\tif (pieceDatum) {\n\t\t\t\treturn create(\n\t\t\t\t\tpiece,\n\t\t\t\t\tpieceDatum.width,\n\t\t\t\t\tpieceDatum.height,\n\t\t\t\t\tpieceDatum.layer,\n\t\t\t\t\tmanager,\n\t\t\t\t\titem,\n\t\t\t\t\tshape\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn createMissing(piece, manager, item, shape);\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n"]}
1
+ {"version":3,"file":"deserialize-embedded.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/deserialize-embedded.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DDiagramSerializedItem } from \"../../d-diagram-serialized\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeDataMapper } from \"../e-shape-data-mapper\";\nimport { EShapeDataValueScope } from \"../e-shape-data-value-scope\";\nimport { EShapeLayerContainer } from \"../e-shape-layer-container\";\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { deserializeBase } from \"./deserialize-base\";\nimport { EShapeEmbedded } from \"./e-shape-embedded\";\nimport { EShapeEmbeddedLayer } from \"./e-shape-embedded-layer\";\nimport { EShapeRectangle } from \"./e-shape-rectangle\";\n\nconst create = (\n\tname: string,\n\twidth: number,\n\theight: number,\n\tcontainer: EShapeLayerContainer,\n\tmanager: EShapeResourceManagerDeserialization,\n\titem: DDiagramSerializedItem,\n\tshape?: EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded => {\n\tshape = shape || new EShapeEmbedded(name);\n\tconst result = deserializeBase(item, manager, shape);\n\tconst shapeSize = shape.size;\n\tconst sizeX = shapeSize.x;\n\tconst sizeY = shapeSize.y;\n\tshape.size.set(width, height);\n\tcontainer.copyTo(shape);\n\tshape.size.init();\n\tshape.size.set(sizeX, sizeY);\n\tapplyDataMappings(shape, manager);\n\treturn result;\n};\n\nconst createMissing = (\n\tname: string,\n\tmanager: EShapeResourceManagerDeserialization,\n\titem: DDiagramSerializedItem,\n\tshape?: EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded => {\n\tshape = shape || new EShapeEmbedded(name);\n\tconst result = deserializeBase(item, manager, shape);\n\n\tconst size = shape.size;\n\tconst sizeX = size.x;\n\tconst sizeY = size.y;\n\n\tconst children = shape.children;\n\tconst layer = new EShapeEmbeddedLayer(\"missing\");\n\tconst px = 0.5 * sizeX;\n\tconst py = 0.5 * sizeX;\n\tlayer.transform.position.set(-px, -py);\n\tlayer.size.set(sizeX, sizeY);\n\tlayer.size.init();\n\tlayer.parent = shape;\n\n\tconst rectangle = new EShapeRectangle();\n\trectangle.stroke.color = 0xff0000;\n\trectangle.transform.position.set(px, py);\n\trectangle.size.copyFrom(shape.size);\n\trectangle.attach(layer);\n\n\tchildren.push(layer);\n\tshape.onChildTransformChange();\n\tshape.toDirty();\n\tshape.onAttach();\n\n\tshape.size.init();\n\tapplyDataMappings(shape, manager);\n\treturn result;\n};\n\nconst applyDataMappings = (\n\tshape: EShapeEmbedded,\n\tmanager: EShapeResourceManagerDeserialization\n): void => {\n\tconst mapping = shape.data.getMapping();\n\tif (mapping != null) {\n\t\tconst values = mapping.values;\n\t\tfor (let i = 0, imax = values.length; i < imax; ++i) {\n\t\t\tconst value = values[i];\n\t\t\tconst source = value[0];\n\t\t\tconst mapper = manager.getDataMapper(source);\n\t\t\tif (mapper != null) {\n\t\t\t\tconst children = shape.children;\n\t\t\t\tconst destination = manager.getDataDestination(value[1]);\n\t\t\t\tconst initial = value[2];\n\t\t\t\tapplyDataMapping(children, mapper, destination, initial);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst applyDataMapping = (\n\ttargets: EShape[],\n\tmapper: EShapeDataMapper,\n\tdestination: string[] | null,\n\tinitial: string\n): void => {\n\tfor (let i = 0, imax = targets.length; i < imax; ++i) {\n\t\tconst target = targets[i];\n\n\t\tconst targetData = target.data;\n\t\tfor (let j = 0, jmax = targetData.size(); j < jmax; ++j) {\n\t\t\tconst targetDatum = targetData.get(j);\n\t\t\tif (targetDatum && targetDatum.scope !== EShapeDataValueScope.PRIVATE) {\n\t\t\t\tmapper.map(targetDatum, destination, initial);\n\t\t\t}\n\t\t}\n\n\t\t// Children\n\t\tconst children = target.children;\n\t\tif (0 < children.length) {\n\t\t\tapplyDataMapping(children, mapper, destination, initial);\n\t\t}\n\t}\n};\n\nexport const deserializeEmbedded = (\n\titem: DDiagramSerializedItem,\n\tmanager: EShapeResourceManagerDeserialization,\n\tcreator?: (name: string, manager: EShapeResourceManagerDeserialization) => EShapeEmbedded\n): Promise<EShapeEmbedded> | EShapeEmbedded | null => {\n\tconst pieces = manager.pieces;\n\tconst pieceId = item[15];\n\tif (pieces && 0 <= pieceId && pieceId < pieces.length) {\n\t\tconst pieceData = manager.pieceData;\n\t\tif (pieceData) {\n\t\t\tconst piece = pieces[pieceId];\n\t\t\tconst pieceDatum = pieceData.get(piece);\n\t\t\tconst shape = creator && creator(piece, manager);\n\t\t\tif (pieceDatum) {\n\t\t\t\treturn create(\n\t\t\t\t\tpiece,\n\t\t\t\t\tpieceDatum.width,\n\t\t\t\t\tpieceDatum.height,\n\t\t\t\t\tpieceDatum.layer,\n\t\t\t\t\tmanager,\n\t\t\t\t\titem,\n\t\t\t\t\tshape\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn createMissing(piece, manager, item, shape);\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n"]}
@@ -434,7 +434,9 @@ var EShapeBase = /** @class */ (function (_super) {
434
434
  var ty = transform.b * x + transform.d * y + transform.ty - textWorld[1];
435
435
  var th = textWorld[2] * tx + textWorld[3] * ty;
436
436
  var tv = textWorld[4] * tx + textWorld[5] * ty;
437
- if (0 <= th && th <= textWorld[6] && 0 <= tv && tv <= textWorld[7]) {
437
+ var w = textWorld[6];
438
+ var h = textWorld[7];
439
+ if (0 <= th && th <= w && 0 <= tv && tv <= h) {
438
440
  return this;
439
441
  }
440
442
  }