@wcardinal/wcardinal-ui 0.408.0 → 0.410.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.
- package/dist/types/wcardinal/ui/d-base-snippet-container.d.ts +1 -0
- package/dist/types/wcardinal/ui/d-base.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/e-shape-buffer.d.ts +3 -9
- package/dist/types/wcardinal/ui/shape/e-shape-container.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/e-shape-points-formatter-curve-bezier-quadratic.d.ts +2 -0
- package/dist/types/wcardinal/ui/shape/e-shape-points-formatters.d.ts +2 -1
- package/dist/types/wcardinal/ui/shape/e-shape-points-style.d.ts +7 -1
- package/dist/types/wcardinal/ui/shape/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/build-bar.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/build-circle.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/build-color.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/build-image-sdf.d.ts +0 -1
- package/dist/types/wcardinal/ui/shape/variant/build-line-of-any.d.ts +17 -1
- package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +2 -3
- package/dist/types/wcardinal/ui/shape/variant/build-null.d.ts +0 -1
- package/dist/types/wcardinal/ui/shape/variant/build-rectangle-rounded.d.ts +2 -3
- package/dist/types/wcardinal/ui/shape/variant/build-rectangle.d.ts +4 -5
- package/dist/types/wcardinal/ui/shape/variant/build-semicircle.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/build-text.d.ts +0 -1
- package/dist/types/wcardinal/ui/shape/variant/build-triangle-rounded.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/build-triangle.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-bar.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-base.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-any.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangles.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-marker-base.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-marker-rectangle.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-pivoted.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-rounded.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-triangle-rounded.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +9 -18
- package/dist/types/wcardinal/ui/shape/variant/index.d.ts +0 -1
- package/dist/types/wcardinal/ui/shape/variant/to-dash.d.ts +1 -2
- package/dist/types/wcardinal/ui/shape/variant/to-normal-packed.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/to-normal.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/to-packed.d.ts +2 -0
- package/dist/types/wcardinal/ui/shape/variant/to-vector-length.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/to-vector.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/e-theme-dark-en-us-shape-points-formatter.d.ts +2 -1
- package/dist/types/wcardinal/ui/theme/dark/e-theme-dark-ja-jp-shape-points-formatter.d.ts +2 -1
- package/dist/types/wcardinal/ui/theme/dark/e-theme-dark-shape-points-formatter.d.ts +2 -1
- package/dist/types/wcardinal/ui/theme/white/e-theme-white-en-us-shape-points-formatter.d.ts +2 -1
- package/dist/types/wcardinal/ui/theme/white/e-theme-white-ja-jp-shape-points-formatter.d.ts +2 -1
- package/dist/types/wcardinal/ui/theme/white/e-theme-white-shape-points-formatter.d.ts +2 -1
- package/dist/wcardinal/ui/d-base-snippet-container.js +11 -3
- package/dist/wcardinal/ui/d-base-snippet-container.js.map +1 -1
- package/dist/wcardinal/ui/d-base.js +4 -0
- package/dist/wcardinal/ui/d-base.js.map +1 -1
- package/dist/wcardinal/ui/d-scroll-bar.js +1 -0
- package/dist/wcardinal/ui/d-scroll-bar.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-buffer.js +10 -30
- package/dist/wcardinal/ui/shape/e-shape-buffer.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-container.js +1 -1
- package/dist/wcardinal/ui/shape/e-shape-container.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-points-formatter-curve-bezier-quadratic.js +165 -0
- package/dist/wcardinal/ui/shape/e-shape-points-formatter-curve-bezier-quadratic.js.map +1 -0
- package/dist/wcardinal/ui/shape/e-shape-points-formatters.js +7 -2
- package/dist/wcardinal/ui/shape/e-shape-points-formatters.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-points-style.js +12 -4
- package/dist/wcardinal/ui/shape/e-shape-points-style.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-renderer.js +4 -5
- package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
- package/dist/wcardinal/ui/shape/index.js +1 -0
- package/dist/wcardinal/ui/shape/index.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-bar.js +37 -63
- package/dist/wcardinal/ui/shape/variant/build-bar.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-circle.js +63 -40
- package/dist/wcardinal/ui/shape/variant/build-circle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-color.js +8 -11
- package/dist/wcardinal/ui/shape/variant/build-color.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-image-sdf.js +30 -37
- package/dist/wcardinal/ui/shape/variant/build-image-sdf.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-line-of-any.js +244 -25
- package/dist/wcardinal/ui/shape/variant/build-line-of-any.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-line.js +149 -129
- package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-null.js +0 -7
- package/dist/wcardinal/ui/shape/variant/build-null.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js +917 -849
- package/dist/wcardinal/ui/shape/variant/build-rectangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-rectangle.js +279 -353
- package/dist/wcardinal/ui/shape/variant/build-rectangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-semicircle.js +45 -31
- package/dist/wcardinal/ui/shape/variant/build-semicircle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-text.js +6 -13
- package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js +255 -128
- package/dist/wcardinal/ui/shape/variant/build-triangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-triangle.js +55 -35
- package/dist/wcardinal/ui/shape/variant/build-triangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-bar.js +8 -11
- package/dist/wcardinal/ui/shape/variant/builder-bar.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-base.js +18 -22
- package/dist/wcardinal/ui/shape/variant/builder-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-circle.js +4 -7
- package/dist/wcardinal/ui/shape/variant/builder-circle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js +3 -6
- package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js +13 -17
- package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js +5 -12
- package/dist/wcardinal/ui/shape/variant/builder-line-of-circles.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js +10 -26
- package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js +9 -25
- package/dist/wcardinal/ui/shape/variant/builder-line-of-rectangles.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js +9 -25
- package/dist/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js +5 -12
- package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line.js +13 -27
- package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-base.js +27 -19
- package/dist/wcardinal/ui/shape/variant/builder-marker-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js +4 -7
- package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js +7 -13
- package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js +4 -7
- package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js +7 -13
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js +6 -12
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle.js +7 -13
- package/dist/wcardinal/ui/shape/variant/builder-rectangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-semicircle.js +4 -7
- package/dist/wcardinal/ui/shape/variant/builder-semicircle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-text.js +19 -28
- package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js +7 -12
- package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-triangle.js +4 -7
- package/dist/wcardinal/ui/shape/variant/builder-triangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder.js +18 -14
- package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/index.js +0 -1
- package/dist/wcardinal/ui/shape/variant/index.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/to-dash.js +8 -9
- package/dist/wcardinal/ui/shape/variant/to-dash.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/to-normal-packed.js +7 -0
- package/dist/wcardinal/ui/shape/variant/to-normal-packed.js.map +1 -0
- package/dist/wcardinal/ui/shape/variant/to-normal.js +15 -0
- package/dist/wcardinal/ui/shape/variant/to-normal.js.map +1 -0
- package/dist/wcardinal/ui/shape/variant/to-packed.js +7 -0
- package/dist/wcardinal/ui/shape/variant/to-packed.js.map +1 -0
- package/dist/wcardinal/ui/shape/variant/to-vector-length.js +4 -0
- package/dist/wcardinal/ui/shape/variant/to-vector-length.js.map +1 -0
- package/dist/wcardinal/ui/shape/variant/to-vector.js +6 -0
- package/dist/wcardinal/ui/shape/variant/to-vector.js.map +1 -0
- package/dist/wcardinal/ui/theme/dark/e-theme-dark-en-us-shape-points-formatter.js +5 -2
- package/dist/wcardinal/ui/theme/dark/e-theme-dark-en-us-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/e-theme-dark-ja-jp-shape-points-formatter.js +5 -2
- package/dist/wcardinal/ui/theme/dark/e-theme-dark-ja-jp-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/e-theme-dark-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/e-theme-white-en-us-shape-points-formatter.js +5 -2
- package/dist/wcardinal/ui/theme/white/e-theme-white-en-us-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/e-theme-white-ja-jp-shape-points-formatter.js +5 -2
- package/dist/wcardinal/ui/theme/white/e-theme-white-ja-jp-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/e-theme-white-shape-points-formatter.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +6 -3
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +6 -3
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +6 -3
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.js +6 -3
- package/dist/wcardinal-ui-theme-white-en-us.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +6 -3
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +6 -3
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui.cjs.js +2526 -2114
- package/dist/wcardinal-ui.js +2502 -2102
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/wcardinal/ui/shape/variant/copy-clipping.d.ts +0 -1
- package/dist/wcardinal/ui/shape/variant/copy-clipping.js +0 -20
- package/dist/wcardinal/ui/shape/variant/copy-clipping.js.map +0 -1
|
@@ -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
|
|
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,
|
|
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
|
|
62
|
+
var is = voffset * 6 - 9;
|
|
85
63
|
for (; iuv < iuvmax;) {
|
|
86
|
-
var r =
|
|
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
|
|
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
|
|
91
|
+
return buildTransformedLineVertexStep(vertices, steps, voffset, vcount, pointCount, pointsClosed, transformedPointValues, pointSegments, strokeWidth, strokeStyle);
|
|
114
92
|
};
|
|
115
|
-
var
|
|
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] =
|
|
120
|
-
steps[++is] =
|
|
121
|
-
steps[++is] =
|
|
122
|
-
steps[++is] =
|
|
123
|
-
steps[++is] =
|
|
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] =
|
|
129
|
-
steps[++is] =
|
|
130
|
-
steps[++is] =
|
|
131
|
-
steps[++is] =
|
|
132
|
-
steps[++is] =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
180
|
+
return buildTransformedLineClosedSegmentVertexStep(vertices, steps, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle);
|
|
203
181
|
}
|
|
204
182
|
else {
|
|
205
|
-
return
|
|
183
|
+
return buildTransformedLineOpenSegmentVertexStep(vertices, steps, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle, 0);
|
|
206
184
|
}
|
|
207
185
|
}
|
|
208
186
|
};
|
|
209
|
-
var
|
|
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] =
|
|
224
|
-
steps[++is] =
|
|
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] =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
269
|
-
|
|
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
|
-
|
|
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
|
-
|
|
286
|
-
|
|
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
|
-
|
|
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
|
|
296
|
-
var
|
|
297
|
-
|
|
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 =
|
|
305
|
-
|
|
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] =
|
|
317
|
-
steps[++is] =
|
|
318
|
-
steps[++is] =
|
|
319
|
-
steps[++is] =
|
|
320
|
-
steps[++is] =
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
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
|
|
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
|
-
|
|
352
|
-
|
|
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
|
-
|
|
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
|
-
|
|
370
|
-
|
|
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
|
|
376
|
-
|
|
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] =
|
|
391
|
-
steps[++is] =
|
|
392
|
-
steps[++is] =
|
|
393
|
-
steps[++is] =
|
|
394
|
-
steps[++is] =
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
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;
|