@wcardinal/wcardinal-ui 0.408.0 → 0.409.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/dist/types/wcardinal/ui/shape/e-shape-buffer.d.ts +3 -9
  2. package/dist/types/wcardinal/ui/shape/e-shape-container.d.ts +1 -1
  3. package/dist/types/wcardinal/ui/shape/variant/build-bar.d.ts +1 -2
  4. package/dist/types/wcardinal/ui/shape/variant/build-circle.d.ts +1 -2
  5. package/dist/types/wcardinal/ui/shape/variant/build-color.d.ts +1 -1
  6. package/dist/types/wcardinal/ui/shape/variant/build-image-sdf.d.ts +0 -1
  7. package/dist/types/wcardinal/ui/shape/variant/build-line-of-any.d.ts +17 -1
  8. package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +2 -3
  9. package/dist/types/wcardinal/ui/shape/variant/build-null.d.ts +0 -1
  10. package/dist/types/wcardinal/ui/shape/variant/build-rectangle-rounded.d.ts +2 -3
  11. package/dist/types/wcardinal/ui/shape/variant/build-rectangle.d.ts +4 -5
  12. package/dist/types/wcardinal/ui/shape/variant/build-semicircle.d.ts +1 -2
  13. package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +0 -1
  14. package/dist/types/wcardinal/ui/shape/variant/build-triangle-rounded.d.ts +1 -2
  15. package/dist/types/wcardinal/ui/shape/variant/build-triangle.d.ts +1 -2
  16. package/dist/types/wcardinal/ui/shape/variant/builder-bar.d.ts +1 -1
  17. package/dist/types/wcardinal/ui/shape/variant/builder-base.d.ts +1 -2
  18. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-any.d.ts +1 -2
  19. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.d.ts +1 -1
  20. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangles.d.ts +1 -1
  21. package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.d.ts +1 -1
  22. package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +1 -2
  23. package/dist/types/wcardinal/ui/shape/variant/builder-marker-base.d.ts +1 -1
  24. package/dist/types/wcardinal/ui/shape/variant/builder-marker-rectangle.d.ts +1 -1
  25. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-pivoted.d.ts +1 -1
  26. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-rounded.d.ts +1 -1
  27. package/dist/types/wcardinal/ui/shape/variant/builder-rectangle.d.ts +1 -1
  28. package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +1 -2
  29. package/dist/types/wcardinal/ui/shape/variant/builder-triangle-rounded.d.ts +1 -1
  30. package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +9 -18
  31. package/dist/types/wcardinal/ui/shape/variant/index.d.ts +0 -1
  32. package/dist/types/wcardinal/ui/shape/variant/to-dash.d.ts +1 -2
  33. package/dist/types/wcardinal/ui/shape/variant/to-normal-packed.d.ts +1 -0
  34. package/dist/types/wcardinal/ui/shape/variant/to-normal.d.ts +1 -0
  35. package/dist/types/wcardinal/ui/shape/variant/to-packed.d.ts +2 -0
  36. package/dist/types/wcardinal/ui/shape/variant/to-vector-length.d.ts +1 -0
  37. package/dist/types/wcardinal/ui/shape/variant/to-vector.d.ts +1 -0
  38. package/dist/wcardinal/ui/shape/e-shape-buffer.js +10 -30
  39. package/dist/wcardinal/ui/shape/e-shape-buffer.js.map +1 -1
  40. package/dist/wcardinal/ui/shape/e-shape-container.js +1 -1
  41. package/dist/wcardinal/ui/shape/e-shape-container.js.map +1 -1
  42. package/dist/wcardinal/ui/shape/e-shape-renderer.js +4 -5
  43. package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
  44. package/dist/wcardinal/ui/shape/variant/build-bar.js +37 -63
  45. package/dist/wcardinal/ui/shape/variant/build-bar.js.map +1 -1
  46. package/dist/wcardinal/ui/shape/variant/build-circle.js +63 -40
  47. package/dist/wcardinal/ui/shape/variant/build-circle.js.map +1 -1
  48. package/dist/wcardinal/ui/shape/variant/build-color.js +8 -11
  49. package/dist/wcardinal/ui/shape/variant/build-color.js.map +1 -1
  50. package/dist/wcardinal/ui/shape/variant/build-image-sdf.js +30 -37
  51. package/dist/wcardinal/ui/shape/variant/build-image-sdf.js.map +1 -1
  52. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js +244 -25
  53. package/dist/wcardinal/ui/shape/variant/build-line-of-any.js.map +1 -1
  54. package/dist/wcardinal/ui/shape/variant/build-line.js +149 -129
  55. package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
  56. package/dist/wcardinal/ui/shape/variant/build-null.js +0 -7
  57. package/dist/wcardinal/ui/shape/variant/build-null.js.map +1 -1
  58. package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js +917 -849
  59. package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js.map +1 -1
  60. package/dist/wcardinal/ui/shape/variant/build-rectangle.js +279 -353
  61. package/dist/wcardinal/ui/shape/variant/build-rectangle.js.map +1 -1
  62. package/dist/wcardinal/ui/shape/variant/build-semicircle.js +45 -31
  63. package/dist/wcardinal/ui/shape/variant/build-semicircle.js.map +1 -1
  64. package/dist/wcardinal/ui/shape/variant/build-text.js +6 -13
  65. package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
  66. package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js +255 -128
  67. package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js.map +1 -1
  68. package/dist/wcardinal/ui/shape/variant/build-triangle.js +55 -35
  69. package/dist/wcardinal/ui/shape/variant/build-triangle.js.map +1 -1
  70. package/dist/wcardinal/ui/shape/variant/builder-bar.js +8 -11
  71. package/dist/wcardinal/ui/shape/variant/builder-bar.js.map +1 -1
  72. package/dist/wcardinal/ui/shape/variant/builder-base.js +18 -22
  73. package/dist/wcardinal/ui/shape/variant/builder-base.js.map +1 -1
  74. package/dist/wcardinal/ui/shape/variant/builder-circle.js +4 -7
  75. package/dist/wcardinal/ui/shape/variant/builder-circle.js.map +1 -1
  76. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js +3 -6
  77. package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js.map +1 -1
  78. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js +13 -17
  79. package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js.map +1 -1
  80. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js +5 -12
  81. package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js.map +1 -1
  82. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js +10 -26
  83. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js.map +1 -1
  84. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js +9 -25
  85. package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js.map +1 -1
  86. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js +9 -25
  87. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js.map +1 -1
  88. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js +5 -12
  89. package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js.map +1 -1
  90. package/dist/wcardinal/ui/shape/variant/builder-line.js +13 -27
  91. package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
  92. package/dist/wcardinal/ui/shape/variant/builder-marker-base.js +27 -19
  93. package/dist/wcardinal/ui/shape/variant/builder-marker-base.js.map +1 -1
  94. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js +4 -7
  95. package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js.map +1 -1
  96. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js +7 -13
  97. package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js.map +1 -1
  98. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js +4 -7
  99. package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js.map +1 -1
  100. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js +7 -13
  101. package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js.map +1 -1
  102. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js +6 -12
  103. package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js.map +1 -1
  104. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js +7 -13
  105. package/dist/wcardinal/ui/shape/variant/builder-rectangle.js.map +1 -1
  106. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js +4 -7
  107. package/dist/wcardinal/ui/shape/variant/builder-semicircle.js.map +1 -1
  108. package/dist/wcardinal/ui/shape/variant/builder-text.js +19 -28
  109. package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
  110. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js +7 -12
  111. package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js.map +1 -1
  112. package/dist/wcardinal/ui/shape/variant/builder-triangle.js +4 -7
  113. package/dist/wcardinal/ui/shape/variant/builder-triangle.js.map +1 -1
  114. package/dist/wcardinal/ui/shape/variant/builder.js +18 -14
  115. package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
  116. package/dist/wcardinal/ui/shape/variant/index.js +0 -1
  117. package/dist/wcardinal/ui/shape/variant/index.js.map +1 -1
  118. package/dist/wcardinal/ui/shape/variant/to-dash.js +8 -9
  119. package/dist/wcardinal/ui/shape/variant/to-dash.js.map +1 -1
  120. package/dist/wcardinal/ui/shape/variant/to-normal-packed.js +7 -0
  121. package/dist/wcardinal/ui/shape/variant/to-normal-packed.js.map +1 -0
  122. package/dist/wcardinal/ui/shape/variant/to-normal.js +15 -0
  123. package/dist/wcardinal/ui/shape/variant/to-normal.js.map +1 -0
  124. package/dist/wcardinal/ui/shape/variant/to-packed.js +7 -0
  125. package/dist/wcardinal/ui/shape/variant/to-packed.js.map +1 -0
  126. package/dist/wcardinal/ui/shape/variant/to-vector-length.js +4 -0
  127. package/dist/wcardinal/ui/shape/variant/to-vector-length.js.map +1 -0
  128. package/dist/wcardinal/ui/shape/variant/to-vector.js +6 -0
  129. package/dist/wcardinal/ui/shape/variant/to-vector.js.map +1 -0
  130. package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
  131. package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
  132. package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
  133. package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
  134. package/dist/wcardinal-ui-theme-dark.js +1 -1
  135. package/dist/wcardinal-ui-theme-dark.min.js +1 -1
  136. package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
  137. package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
  138. package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
  139. package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
  140. package/dist/wcardinal-ui-theme-white.js +1 -1
  141. package/dist/wcardinal-ui-theme-white.min.js +1 -1
  142. package/dist/wcardinal-ui.cjs.js +2306 -2094
  143. package/dist/wcardinal-ui.js +2302 -2090
  144. package/dist/wcardinal-ui.min.js +2 -2
  145. package/dist/wcardinal-ui.min.js.map +1 -1
  146. package/package.json +1 -1
  147. package/dist/types/wcardinal/ui/shape/variant/copy-clipping.d.ts +0 -1
  148. package/dist/wcardinal/ui/shape/variant/copy-clipping.js +0 -20
  149. package/dist/wcardinal/ui/shape/variant/copy-clipping.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build-line-of-any.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line-of-any.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildColor } from \"./build-color\";\nimport { EShapeLineOfAnyPointsFill } from \"./e-shape-line-of-any-points-fill\";\nimport { EShapeLineOfAnyPointsStroke } from \"./e-shape-line-of-any-points-stroke\";\n\nexport const toLineOfAnyPointCount = (pointCount: number): number => {\n\treturn ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;\n};\n\nexport const buildLineOfAnyColor = (\n\tvoffset: number,\n\tvcountPerPoint: number,\n\tpoint: EShapeLineOfAnyPointsStroke | EShapeLineOfAnyPointsFill,\n\tpointCount: number,\n\tcolors: Float32Array,\n\tisEnabled: boolean,\n\tcolorDef: number,\n\talphaDef: number\n): void => {\n\tif (isEnabled) {\n\t\tif (point.isStaticColor()) {\n\t\t\tconst color = point.getColor(0, colorDef);\n\t\t\tif (point.isStaticAlpha()) {\n\t\t\t\tconst alpha = point.getAlpha(0, alphaDef);\n\t\t\t\tbuildColor(color, alpha, voffset, vcountPerPoint * pointCount, colors);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst alpha = point.getAlpha(i, alphaDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (point.isStaticAlpha()) {\n\t\t\t\tconst alpha = point.getAlpha(0, alphaDef);\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\t\tconst alpha = point.getAlpha(i, alphaDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (point.isStaticColor()) {\n\t\t\tconst color = point.getColor(0, colorDef);\n\t\t\tbuildColor(color, 0, voffset, vcountPerPoint * pointCount, colors);\n\t\t} else {\n\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\tbuildColor(color, 0, iv, vcountPerPoint, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n"]}
1
+ {"version":3,"file":"build-line-of-any.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line-of-any.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildColor } from \"./build-color\";\nimport { EShapeLineOfAnyPointsFill } from \"./e-shape-line-of-any-points-fill\";\nimport { EShapeLineOfAnyPointsStroke } from \"./e-shape-line-of-any-points-stroke\";\n\nexport const toLineOfAnyPointCount = (pointCount: number): number => {\n\treturn ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;\n};\n\n/**\n * Build a vertex buffer of colors.\n *\n * @param vo Vertex pffset\n * @param vcpp Vertex count per point\n * @param pf Point Fill\n * @param ps Point stroke\n * @param pc Point count\n * @param colors Vertex buffer of colors\n * @param ife True if fills are enabled\n * @param ise True if strokes are enabled\n * @param cfd Default fill color\n * @param afd Default fill alpha\n * @param csd Default stroke color\n * @param asd Default stroke alpha\n */\nexport const buildLineOfAnyColor = (\n\tvo: number,\n\tvcpp: number,\n\tpf: EShapeLineOfAnyPointsFill,\n\tps: EShapeLineOfAnyPointsStroke,\n\tpc: number,\n\tcolors: Float32Array,\n\tife: boolean,\n\tise: boolean,\n\tcfd: number,\n\tafd: number,\n\tcsd: number,\n\tasd: number\n): void => {\n\tif (ife) {\n\t\tif (pf.isStaticColor()) {\n\t\t\tconst cf = pf.getColor(0, cfd);\n\t\t\tif (pf.isStaticAlpha()) {\n\t\t\t\tconst af = pf.getAlpha(0, afd);\n\t\t\t\tbuildLineOfAnyColor0(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cf, af);\n\t\t\t} else {\n\t\t\t\tbuildLineOfAnyColor1(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cf, afd);\n\t\t\t}\n\t\t} else {\n\t\t\tif (pf.isStaticAlpha()) {\n\t\t\t\tconst af = pf.getAlpha(0, afd);\n\t\t\t\tbuildLineOfAnyColor2(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cfd, af);\n\t\t\t} else {\n\t\t\t\tbuildLineOfAnyColor3(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cfd, afd);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (pf.isStaticColor()) {\n\t\t\tconst cf = pf.getColor(0, cfd);\n\t\t\tbuildLineOfAnyColor0(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cf, 0);\n\t\t} else {\n\t\t\tbuildLineOfAnyColor2(vo, vcpp, pf, ps, pc, colors, ise, csd, asd, cfd, 0);\n\t\t}\n\t}\n};\n\nconst buildLineOfAnyColor0 = (\n\tvo: number,\n\tvcpp: number,\n\tpf: EShapeLineOfAnyPointsFill,\n\tps: EShapeLineOfAnyPointsStroke,\n\tpc: number,\n\tcolors: Float32Array,\n\tise: boolean,\n\tcsd: number,\n\tasd: number,\n\tcf: number,\n\taf: number\n): void => {\n\tif (ise) {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tbuildColor(cf, af, cs, as, vo, vcpp * pc, colors);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tbuildColor(cf, af, cs, 0, vo, vcpp * pc, colors);\n\t\t} else {\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst buildLineOfAnyColor1 = (\n\tvo: number,\n\tvcpp: number,\n\tpf: EShapeLineOfAnyPointsFill,\n\tps: EShapeLineOfAnyPointsStroke,\n\tpc: number,\n\tcolors: Float32Array,\n\tise: boolean,\n\tcsd: number,\n\tasd: number,\n\tcf: number,\n\tafd: number\n): void => {\n\tif (ise) {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst buildLineOfAnyColor2 = (\n\tvo: number,\n\tvcpp: number,\n\tpf: EShapeLineOfAnyPointsFill,\n\tps: EShapeLineOfAnyPointsStroke,\n\tpc: number,\n\tcolors: Float32Array,\n\tise: boolean,\n\tcsd: number,\n\tasd: number,\n\tcfd: number,\n\taf: number\n): void => {\n\tif (ise) {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst buildLineOfAnyColor3 = (\n\tvo: number,\n\tvcpp: number,\n\tpf: EShapeLineOfAnyPointsFill,\n\tps: EShapeLineOfAnyPointsStroke,\n\tpc: number,\n\tcolors: Float32Array,\n\tise: boolean,\n\tcsd: number,\n\tasd: number,\n\tcfd: number,\n\tafd: number\n): void => {\n\tif (ise) {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (ps.isStaticAlpha()) {\n\t\t\t\tconst as = ps.getAlpha(0, asd);\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\t\tconst as = ps.getAlpha(i, asd);\n\t\t\t\t\tbuildColor(cf, af, cs, as, iv, vcpp, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (ps.isStaticColor()) {\n\t\t\tconst cs = ps.getColor(0, csd);\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let i = 0, iv = vo; i < pc; i += 1, iv += vcpp) {\n\t\t\t\tconst cf = pf.getColor(i, cfd);\n\t\t\t\tconst af = pf.getAlpha(i, afd);\n\t\t\t\tconst cs = ps.getColor(i, csd);\n\t\t\t\tbuildColor(cf, af, cs, 0, iv, vcpp, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n"]}
@@ -1,9 +1,13 @@
1
- import { Point } from "pixi.js";
2
1
  import { toDash } from "./to-dash";
3
- import { toLength } from "./to-length";
4
2
  import { toScaleInvariant } from "./to-scale-invariant";
3
+ import { toNormalPacked } from "./to-normal-packed";
4
+ import { toVectorLength } from "./to-vector-length";
5
+ import { toVector } from "./to-vector";
6
+ import { toNormal } from "./to-normal";
7
+ import { toPackedI4x64 } from "./to-packed";
5
8
  var LINE_FMIN = 0.00001;
6
- var LINE_WORK_POINT = new Point();
9
+ var LINE_NPREV = [0, 1];
10
+ var LINE_NNEXT = [0, 1];
7
11
  export var toPointCount = function (points) {
8
12
  if (points) {
9
13
  return points.formatted.plength;
@@ -25,32 +29,6 @@ export var toLineVertexCount = function (pointCount, isClosed) {
25
29
  export var toLineIndexCount = function (pointCount, isClosed) {
26
30
  return toLineVertexCount(pointCount, isClosed) - 2;
27
31
  };
28
- export var buildLineClipping = function (clippings, voffset, vcount, pointCount) {
29
- var ic = voffset * 3 - 1;
30
- var icmax = (voffset + vcount) * 3 - 1;
31
- for (var i = 0; i < pointCount; ++i) {
32
- clippings[++ic] = 1;
33
- clippings[++ic] = 0;
34
- clippings[++ic] = 3;
35
- clippings[++ic] = 0;
36
- clippings[++ic] = 1;
37
- clippings[++ic] = 5;
38
- clippings[++ic] = 1;
39
- clippings[++ic] = 0;
40
- clippings[++ic] = 4;
41
- clippings[++ic] = 0;
42
- clippings[++ic] = 1;
43
- clippings[++ic] = 6;
44
- }
45
- for (; ic < icmax;) {
46
- clippings[++ic] = 1;
47
- clippings[++ic] = 0;
48
- clippings[++ic] = 3;
49
- clippings[++ic] = 0;
50
- clippings[++ic] = 1;
51
- clippings[++ic] = 5;
52
- }
53
- };
54
32
  export var buildLineIndex = function (indices, voffset, ioffset, icount) {
55
33
  var ii = ioffset * 3 - 1;
56
34
  var iimax = (ioffset + icount) * 3 - 1;
@@ -65,7 +43,7 @@ export var buildLineIndex = function (indices, voffset, ioffset, icount) {
65
43
  io += 2;
66
44
  }
67
45
  };
68
- export var buildLineUv = function (uvs, colorFills, voffset, vcount, textureUvs, length) {
46
+ export var buildLineUv = function (uvs, steps, voffset, vcount, textureUvs, length) {
69
47
  var lengthInverse = 1 / Math.max(LINE_FMIN, length);
70
48
  var x0 = textureUvs.x0;
71
49
  var x1 = textureUvs.x1;
@@ -81,9 +59,9 @@ export var buildLineUv = function (uvs, colorFills, voffset, vcount, textureUvs,
81
59
  var dy32 = y2 - y3;
82
60
  var iuv = (voffset << 1) - 1;
83
61
  var iuvmax = ((voffset + vcount) << 1) - 1;
84
- var icf = (voffset << 2) - 8;
62
+ var is = voffset * 6 - 9;
85
63
  for (; iuv < iuvmax;) {
86
- var r = colorFills[(icf += 8)] * lengthInverse;
64
+ var r = steps[(is += 12)] * lengthInverse;
87
65
  uvs[++iuv] = x0 + r * dx01;
88
66
  uvs[++iuv] = y0 + r * dy01;
89
67
  uvs[++iuv] = x3 + r * dx32;
@@ -91,7 +69,7 @@ export var buildLineUv = function (uvs, colorFills, voffset, vcount, textureUvs,
91
69
  }
92
70
  };
93
71
  var TRANSFORMED_POINT_VALUES;
94
- export var buildLineVertexStepAndColorFill = function (vertices, steps, colorFills, voffset, vcount, pointCount, pointsClosed, pointValues, pointSegments, strokeWidth, strokeStyle, internalTransform) {
72
+ export var buildLineVertexStep = function (vertices, steps, voffset, vcount, pointCount, pointsClosed, pointValues, pointSegments, strokeWidth, strokeStyle, internalTransform) {
95
73
  var transformedPointValues = TRANSFORMED_POINT_VALUES;
96
74
  if (transformedPointValues == null) {
97
75
  transformedPointValues = [];
@@ -110,29 +88,29 @@ export var buildLineVertexStepAndColorFill = function (vertices, steps, colorFil
110
88
  transformedPointValues[iv] = a * x + c * y + tx;
111
89
  transformedPointValues[iv + 1] = b * x + d * y + ty;
112
90
  }
113
- return buildTransformedLineVertexStepAndColorFill(vertices, steps, colorFills, voffset, vcount, pointCount, pointsClosed, transformedPointValues, pointSegments, strokeWidth, strokeStyle);
91
+ return buildTransformedLineVertexStep(vertices, steps, voffset, vcount, pointCount, pointsClosed, transformedPointValues, pointSegments, strokeWidth, strokeStyle);
114
92
  };
115
- var fillTransformedLineVertexStepAndColorFill = function (iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, llo) {
93
+ var fillTransformedLineVertexStep = function (iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, llo, e0, e1) {
94
+ var d = toNormalPacked(nprev, nnext);
95
+ var l = Math.min(lprev, lnext);
116
96
  vertices[++iv] = px;
117
97
  vertices[++iv] = py;
118
98
  steps[++is] = strokeWidth;
119
- steps[++is] = scaleInvariant;
120
- steps[++is] = pprevx;
121
- steps[++is] = pprevy;
122
- steps[++is] = pnextx;
123
- steps[++is] = pnexty;
124
- colorFills[(icf += 1)] = llo;
99
+ steps[++is] = e0;
100
+ steps[++is] = d;
101
+ steps[++is] = llo;
102
+ steps[++is] = llo;
103
+ steps[++is] = l;
125
104
  vertices[++iv] = px;
126
105
  vertices[++iv] = py;
127
106
  steps[++is] = strokeWidth;
128
- steps[++is] = scaleInvariant;
129
- steps[++is] = pprevx;
130
- steps[++is] = pprevy;
131
- steps[++is] = pnextx;
132
- steps[++is] = pnexty;
133
- colorFills[(icf += 4)] = llo;
107
+ steps[++is] = e1;
108
+ steps[++is] = d;
109
+ steps[++is] = llo;
110
+ steps[++is] = llo;
111
+ steps[++is] = l;
134
112
  };
135
- var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colorFills, voffset, vcount, lineVertexCount, lineIsClosed, lineVertices, lineSegments, strokeWidth, strokeStyle) {
113
+ var buildTransformedLineVertexStep = function (vertices, steps, voffset, vcount, lineVertexCount, lineIsClosed, lineVertices, lineSegments, strokeWidth, strokeStyle) {
136
114
  var lineSegmentsLength = lineSegments.length;
137
115
  if (0 < lineSegmentsLength) {
138
116
  if (lineIsClosed) {
@@ -144,7 +122,7 @@ var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colo
144
122
  for (var i = 1; i < lineSegmentsLength; ++i) {
145
123
  iseg = lineSegments[i];
146
124
  if (2 <= iseg - iprevseg) {
147
- lprev = buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
125
+ lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
148
126
  lmax = Math.max(lmax, lprev);
149
127
  ivoffset += toLineVertexCount(iseg - iprevseg, false);
150
128
  }
@@ -153,12 +131,12 @@ var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colo
153
131
  // Last
154
132
  iseg = lineSegments[0] + lineVertexCount;
155
133
  if (2 <= iseg - iprevseg) {
156
- lprev = buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
134
+ lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
157
135
  lmax = Math.max(lmax, lprev);
158
136
  ivoffset += toLineVertexCount(iseg - iprevseg, false);
159
137
  }
160
138
  else {
161
- buildTransformedLineEmptyVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
139
+ buildTransformedLineEmptyVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
162
140
  }
163
141
  return lmax;
164
142
  }
@@ -169,7 +147,7 @@ var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colo
169
147
  // First
170
148
  var iseg = lineSegments[0];
171
149
  if (2 <= iseg) {
172
- lprev = buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, -1, lineVertices, 0, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
150
+ lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, 0, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
173
151
  lmax = Math.max(lmax, lprev);
174
152
  ivoffset += toLineVertexCount(iseg, false);
175
153
  }
@@ -178,7 +156,7 @@ var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colo
178
156
  for (var i = 1; i < lineSegmentsLength; ++i) {
179
157
  iseg = lineSegments[i];
180
158
  if (2 <= iseg - iprevseg) {
181
- lprev = buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
159
+ lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
182
160
  lmax = Math.max(lmax, lprev);
183
161
  ivoffset += toLineVertexCount(iseg - iprevseg, false);
184
162
  }
@@ -187,31 +165,33 @@ var buildTransformedLineVertexStepAndColorFill = function (vertices, steps, colo
187
165
  // Last
188
166
  iseg = lineVertexCount;
189
167
  if (2 <= iseg - iprevseg) {
190
- lprev = buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
168
+ lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
191
169
  lmax = Math.max(lmax, lprev);
192
170
  ivoffset += toLineVertexCount(iseg - iprevseg, false);
193
171
  }
194
172
  else {
195
- buildTransformedLineEmptyVertexStepAndColorFill(vertices, steps, colorFills, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
173
+ buildTransformedLineEmptyVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
196
174
  }
197
175
  return lmax;
198
176
  }
199
177
  }
200
178
  else {
201
179
  if (lineIsClosed) {
202
- return buildTransformedLineClosedSegmentVertexStepAndColorFill(vertices, steps, colorFills, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle);
180
+ return buildTransformedLineClosedSegmentVertexStep(vertices, steps, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle);
203
181
  }
204
182
  else {
205
- return buildTransformedLineOpenSegmentVertexStepAndColorFill(vertices, steps, colorFills, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle, 0);
183
+ return buildTransformedLineOpenSegmentVertexStep(vertices, steps, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle, 0);
206
184
  }
207
185
  }
208
186
  };
209
- var buildTransformedLineEmptyVertexStepAndColorFill = function (vertices, steps, colorFills, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle, length) {
187
+ var buildTransformedLineEmptyVertexStep = function (vertices, steps, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle, length) {
210
188
  if (0 <= vcount) {
211
189
  var scaleInvariant = toScaleInvariant(strokeStyle);
190
+ var dash = toDash(strokeStyle);
191
+ var e3 = toPackedI4x64(3, scaleInvariant, dash, 0);
192
+ var e5 = toPackedI4x64(5, scaleInvariant, dash, 0);
212
193
  var iv = (voffset << 1) - 1;
213
194
  var is = voffset * 6 - 1;
214
- var icf = (voffset << 2) - 1;
215
195
  var ivmax = ((voffset + vcount) << 1) - 1;
216
196
  var ifirst = lineVertexFrom % lineVertexCount << 1;
217
197
  var px = lineVertices[ifirst];
@@ -220,21 +200,30 @@ var buildTransformedLineEmptyVertexStepAndColorFill = function (vertices, steps,
220
200
  vertices[++iv] = px;
221
201
  vertices[++iv] = py;
222
202
  steps[++is] = 0;
223
- steps[++is] = scaleInvariant;
224
- steps[++is] = -1;
203
+ steps[++is] = e3;
204
+ steps[++is] = 0;
205
+ steps[++is] = length;
206
+ steps[++is] = length;
207
+ steps[++is] = 0;
208
+ vertices[++iv] = px;
209
+ vertices[++iv] = py;
210
+ steps[++is] = 0;
211
+ steps[++is] = e5;
225
212
  steps[++is] = 0;
226
- steps[++is] = +1;
213
+ steps[++is] = length;
214
+ steps[++is] = length;
227
215
  steps[++is] = 0;
228
- colorFills[++icf] = length;
229
- colorFills[++icf] = 0;
230
- colorFills[++icf] = 0;
231
- colorFills[++icf] = length;
232
216
  }
233
217
  }
234
218
  return 0;
235
219
  };
236
- var buildTransformedLineOpenSegmentVertexStepAndColorFill = function (vertices, steps, colorFills, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle, length) {
220
+ var buildTransformedLineOpenSegmentVertexStep = function (vertices, steps, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle, length) {
237
221
  var scaleInvariant = toScaleInvariant(strokeStyle);
222
+ var dash = toDash(strokeStyle);
223
+ var e3 = toPackedI4x64(3, scaleInvariant, dash, 0);
224
+ var e4 = toPackedI4x64(4, scaleInvariant, dash, 0);
225
+ var e5 = toPackedI4x64(5, scaleInvariant, dash, 0);
226
+ var e6 = toPackedI4x64(6, scaleInvariant, dash, 0);
238
227
  // First segment
239
228
  var ifirst = lineVertexFrom % lineVertexCount << 1;
240
229
  var px = lineVertices[ifirst];
@@ -244,90 +233,105 @@ var buildTransformedLineOpenSegmentVertexStepAndColorFill = function (vertices,
244
233
  var pnexty = lineVertices[isecond + 1];
245
234
  var pprevx = px - (pnextx - px);
246
235
  var pprevy = py - (pnexty - py);
236
+ var nprev = LINE_NPREV;
237
+ var nnext = LINE_NNEXT;
238
+ toVector(pprevx, pprevy, px, py, nprev);
239
+ toVector(px, py, pnextx, pnexty, nnext);
240
+ var lprev = toVectorLength(nprev);
241
+ var lnext = lprev;
242
+ toNormal(nprev, lprev);
243
+ toNormal(nnext, lnext);
247
244
  var iv = (voffset << 1) - 1;
248
245
  var is = voffset * 6 - 1;
249
- var icf = (voffset << 2) - 1;
250
246
  var l = 0;
251
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, length);
247
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, length, e3, e5);
252
248
  iv += 4;
253
249
  is += 12;
254
- icf += 8;
255
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
250
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e4, e6);
256
251
  iv += 4;
257
252
  is += 12;
258
- icf += 8;
259
253
  // Middle segments
260
254
  for (var i = lineVertexFrom + 1, imax = lineVertexTo - 1; i < imax; ++i) {
261
255
  pprevx = px;
262
256
  pprevy = py;
263
257
  px = pnextx;
264
258
  py = pnexty;
259
+ nprev[0] = nnext[0];
260
+ nprev[1] = nnext[1];
261
+ lprev = lnext;
265
262
  var imiddle = (i + 1) % lineVertexCount << 1;
266
263
  pnextx = lineVertices[imiddle];
267
264
  pnexty = lineVertices[imiddle + 1];
268
- l += toLength(pprevx, pprevy, px, py);
269
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
265
+ toVector(px, py, pnextx, pnexty, nnext);
266
+ lnext = toVectorLength(nnext);
267
+ toNormal(nnext, lnext);
268
+ l += lprev;
269
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e3, e5);
270
270
  iv += 4;
271
271
  is += 12;
272
- icf += 8;
273
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
272
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e4, e6);
274
273
  iv += 4;
275
274
  is += 12;
276
- icf += 8;
277
275
  }
278
276
  // Last segment
279
277
  pprevx = px;
280
278
  pprevy = py;
281
279
  px = pnextx;
282
280
  py = pnexty;
281
+ nprev[0] = nnext[0];
282
+ nprev[1] = nnext[1];
283
+ lprev = lnext;
283
284
  pnextx = px + (px - pprevx);
284
285
  pnexty = py + (py - pprevy);
285
- l += toLength(pprevx, pprevy, px, py);
286
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
286
+ toVector(px, py, pnextx, pnexty, nnext);
287
+ toNormal(nnext, lnext);
288
+ l += lprev;
289
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e3, e5);
287
290
  iv += 4;
288
291
  is += 12;
289
- icf += 8;
290
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
292
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e4, e6);
291
293
  iv += 4;
292
294
  is += 12;
293
- icf += 8;
294
295
  // Total length
295
- var dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);
296
- var dash0 = dash.x;
297
- var dash1 = dash.y;
298
- var icf0 = (voffset << 2) - 1;
299
- for (var i = icf0, imax = icf0 + 8; i < imax; i += 4) {
300
- colorFills[i + 2] = dash0;
301
- colorFills[i + 3] = dash1;
302
- colorFills[i + 4] = length;
296
+ var is0 = voffset * 6 - 1;
297
+ for (var i = is0, imax = is0 + 12; i < imax; i += 6) {
298
+ steps[i + 5] = length;
303
299
  }
304
- for (var i = icf0 + 8; i < icf; i += 4) {
305
- colorFills[i + 2] = dash0;
306
- colorFills[i + 3] = dash1;
307
- colorFills[i + 4] = l;
300
+ for (var i = is0 + 12; i < is; i += 6) {
301
+ steps[i + 5] = l;
308
302
  }
309
303
  // Fill the rest
310
304
  if (0 <= vcount) {
305
+ var d = toNormalPacked(nprev, nnext);
311
306
  var ivmax = ((voffset + vcount) << 1) - 1;
312
307
  for (; iv < ivmax;) {
313
308
  vertices[++iv] = px;
314
309
  vertices[++iv] = py;
315
310
  steps[++is] = 0;
316
- steps[++is] = scaleInvariant;
317
- steps[++is] = pprevx;
318
- steps[++is] = pprevy;
319
- steps[++is] = pnextx;
320
- steps[++is] = pnexty;
321
- colorFills[++icf] = l;
322
- colorFills[++icf] = dash0;
323
- colorFills[++icf] = dash1;
324
- colorFills[++icf] = l;
311
+ steps[++is] = e3;
312
+ steps[++is] = d;
313
+ steps[++is] = l;
314
+ steps[++is] = l;
315
+ steps[++is] = 0;
316
+ vertices[++iv] = px;
317
+ vertices[++iv] = py;
318
+ steps[++is] = 0;
319
+ steps[++is] = e5;
320
+ steps[++is] = d;
321
+ steps[++is] = l;
322
+ steps[++is] = l;
323
+ steps[++is] = 0;
325
324
  }
326
325
  }
327
326
  return l;
328
327
  };
329
- var buildTransformedLineClosedSegmentVertexStepAndColorFill = function (vertices, steps, colorFills, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle) {
328
+ var buildTransformedLineClosedSegmentVertexStep = function (vertices, steps, voffset, vcount, lineVertices, lineVertexFrom, lineVertexTo, lineVertexCount, strokeWidth, strokeStyle) {
330
329
  var scaleInvariant = toScaleInvariant(strokeStyle);
330
+ var dash = toDash(strokeStyle);
331
+ var e3 = toPackedI4x64(3, scaleInvariant, dash, 0);
332
+ var e4 = toPackedI4x64(4, scaleInvariant, dash, 0);
333
+ var e5 = toPackedI4x64(5, scaleInvariant, dash, 0);
334
+ var e6 = toPackedI4x64(6, scaleInvariant, dash, 0);
331
335
  var ilast = (lineVertexTo - 1) % lineVertexCount << 1;
332
336
  var pprevx = 0;
333
337
  var pprevy = 0;
@@ -336,66 +340,82 @@ var buildTransformedLineClosedSegmentVertexStepAndColorFill = function (vertices
336
340
  var ifirst = lineVertexFrom % lineVertexCount << 1;
337
341
  var pnextx = lineVertices[ifirst];
338
342
  var pnexty = lineVertices[ifirst + 1];
343
+ var nprev = LINE_NPREV;
344
+ var nnext = LINE_NNEXT;
345
+ toVector(pprevx, pprevy, px, py, nprev);
346
+ toVector(px, py, pnextx, pnexty, nnext);
347
+ var lprev = toVectorLength(nprev);
348
+ var lnext = toVectorLength(nnext);
349
+ toNormal(nprev, lprev);
350
+ toNormal(nnext, lnext);
339
351
  var l = 0;
340
352
  var iv = (voffset << 1) - 1;
341
353
  var is = voffset * 6 - 1;
342
- var icf = (voffset << 2) - 1;
343
354
  for (var i = lineVertexFrom; i < lineVertexTo; ++i) {
344
355
  pprevx = px;
345
356
  pprevy = py;
346
357
  px = pnextx;
347
358
  py = pnexty;
359
+ nprev[0] = nnext[0];
360
+ nprev[1] = nnext[1];
361
+ lprev = lnext;
348
362
  var imiddle = (i + 1) % lineVertexCount << 1;
349
363
  pnextx = lineVertices[imiddle];
350
364
  pnexty = lineVertices[imiddle + 1];
351
- l += toLength(pprevx, pprevy, px, py);
352
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
365
+ toVector(px, py, pnextx, pnexty, nnext);
366
+ lnext = toVectorLength(nnext);
367
+ toNormal(nnext, lnext);
368
+ l += lprev;
369
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e3, e5);
353
370
  iv += 4;
354
371
  is += 12;
355
- icf += 8;
356
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
372
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e4, e6);
357
373
  iv += 4;
358
374
  is += 12;
359
- icf += 8;
360
375
  }
361
376
  // Last segment
362
377
  pprevx = px;
363
378
  pprevy = py;
364
379
  px = pnextx;
365
380
  py = pnexty;
381
+ nprev[0] = nnext[0];
382
+ nprev[1] = nnext[1];
383
+ lprev = lnext;
366
384
  var isecond = (lineVertexFrom + 1) % lineVertexCount << 1;
367
385
  pnextx = lineVertices[isecond];
368
386
  pnexty = lineVertices[isecond + 1];
369
- l += toLength(pprevx, pprevy, px, py);
370
- fillTransformedLineVertexStepAndColorFill(iv, vertices, is, steps, icf, colorFills, px, py, strokeWidth, scaleInvariant, pprevx, pprevy, pnextx, pnexty, l);
387
+ toVector(px, py, pnextx, pnexty, nnext);
388
+ lnext = toVectorLength(nnext);
389
+ toNormal(nnext, lnext);
390
+ l += lprev;
391
+ fillTransformedLineVertexStep(iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, l, e3, e5);
371
392
  iv += 4;
372
393
  is += 12;
373
- icf += 8;
374
394
  // Total length
375
- var dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);
376
- var dash0 = dash.x;
377
- var dash1 = dash.y;
378
- for (var i = (voffset << 2) - 1; i < icf; i += 4) {
379
- colorFills[i + 2] = dash0;
380
- colorFills[i + 3] = dash1;
381
- colorFills[i + 4] = -1;
395
+ for (var i = voffset * 6 - 1; i < is; i += 6) {
396
+ steps[i + 5] = -l;
382
397
  }
383
398
  // Fill the rest
384
399
  if (0 <= vcount) {
400
+ var d = toNormalPacked(nprev, nnext);
385
401
  var ivmax = ((voffset + vcount) << 1) - 1;
386
402
  for (; iv < ivmax;) {
387
403
  vertices[++iv] = px;
388
404
  vertices[++iv] = py;
389
405
  steps[++is] = strokeWidth;
390
- steps[++is] = scaleInvariant;
391
- steps[++is] = pprevx;
392
- steps[++is] = pprevy;
393
- steps[++is] = pnextx;
394
- steps[++is] = pnexty;
395
- colorFills[++icf] = l;
396
- colorFills[++icf] = dash0;
397
- colorFills[++icf] = dash1;
398
- colorFills[++icf] = -1;
406
+ steps[++is] = e3;
407
+ steps[++is] = d;
408
+ steps[++is] = l;
409
+ steps[++is] = -l;
410
+ steps[++is] = 0;
411
+ vertices[++iv] = px;
412
+ vertices[++iv] = py;
413
+ steps[++is] = strokeWidth;
414
+ steps[++is] = e5;
415
+ steps[++is] = d;
416
+ steps[++is] = l;
417
+ steps[++is] = -l;
418
+ steps[++is] = 0;
399
419
  }
400
420
  }
401
421
  return l;