@wcardinal/wcardinal-ui 0.461.0 → 0.463.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-diagram-base.d.ts +6 -1
- package/dist/types/wcardinal/ui/d-diagram-canvas-base.d.ts +6 -0
- package/dist/types/wcardinal/ui/d-diagram-layer-container.d.ts +2 -1
- package/dist/types/wcardinal/ui/d-diagram-layer.d.ts +2 -2
- package/dist/types/wcardinal/ui/shape/e-shape-container.d.ts +3 -1
- package/dist/types/wcardinal/ui/shape/e-shape-runtime-drag-state.d.ts +5 -0
- package/dist/types/wcardinal/ui/shape/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +1 -0
- package/dist/types/wcardinal/ui/theme/dark/d-theme-dark-diagram-canvas-base.d.ts +2 -0
- package/dist/types/wcardinal/ui/theme/white/d-theme-white-diagram-canvas-base.d.ts +2 -0
- package/dist/wcardinal/ui/d-diagram-base.js +17 -5
- package/dist/wcardinal/ui/d-diagram-base.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram-canvas-base.js +6 -6
- package/dist/wcardinal/ui/d-diagram-canvas-base.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram-layer-container.js +4 -3
- package/dist/wcardinal/ui/d-diagram-layer-container.js.map +1 -1
- package/dist/wcardinal/ui/d-diagram-layer.js +4 -3
- package/dist/wcardinal/ui/d-diagram-layer.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-container.js +6 -3
- package/dist/wcardinal/ui/shape/e-shape-container.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-renderer.js +2 -2
- package/dist/wcardinal/ui/shape/e-shape-renderer.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-runtime-drag-state.js +19 -0
- package/dist/wcardinal/ui/shape/e-shape-runtime-drag-state.js.map +1 -0
- package/dist/wcardinal/ui/shape/e-shape-runtime-impl.js +5 -3
- package/dist/wcardinal/ui/shape/e-shape-runtime-impl.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-line.js +82 -17
- package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line.js +8 -12
- package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder.js +2 -0
- package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-diagram-canvas-base.js +6 -0
- package/dist/wcardinal/ui/theme/dark/d-theme-dark-diagram-canvas-base.js.map +1 -1
- package/dist/wcardinal/ui/theme/white/d-theme-white-diagram-canvas-base.js +6 -0
- package/dist/wcardinal/ui/theme/white/d-theme-white-diagram-canvas-base.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +7 -1
- 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 +7 -1
- 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 +7 -1
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-white-en-us.js +7 -1
- 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 +7 -1
- 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 +7 -1
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui.cjs.js +166 -55
- package/dist/wcardinal-ui.js +154 -55
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -8,6 +8,11 @@ import { toPackedI4x64 } from "./to-packed";
|
|
|
8
8
|
var LINE_FMIN = 0.00001;
|
|
9
9
|
var LINE_NPREV = [0, 1];
|
|
10
10
|
var LINE_NNEXT = [0, 1];
|
|
11
|
+
/**
|
|
12
|
+
* Extends line segments at the start and the end a little bit
|
|
13
|
+
* to apply the antialiasing at the start and the end.
|
|
14
|
+
*/
|
|
15
|
+
var LINE_EXTRA_LENGTH = 5;
|
|
11
16
|
export var toPointCount = function (points) {
|
|
12
17
|
if (points) {
|
|
13
18
|
return points.formatted.plength;
|
|
@@ -34,7 +39,7 @@ export var buildLineIndex = function (indices, voffset, ioffset, icount) {
|
|
|
34
39
|
var iimax = (ioffset + icount) * 3 - 1;
|
|
35
40
|
var io = voffset;
|
|
36
41
|
for (; ii < iimax;) {
|
|
37
|
-
indices[++ii] = io
|
|
42
|
+
indices[++ii] = io;
|
|
38
43
|
indices[++ii] = io + 2;
|
|
39
44
|
indices[++ii] = io + 1;
|
|
40
45
|
indices[++ii] = io + 1;
|
|
@@ -43,6 +48,40 @@ export var buildLineIndex = function (indices, voffset, ioffset, icount) {
|
|
|
43
48
|
io += 2;
|
|
44
49
|
}
|
|
45
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Builds normal (non-degenerate) triangle indices for a contiguous vertex range.
|
|
53
|
+
* vcount is the number of vertices in the segment.
|
|
54
|
+
* Returns the updated index write position.
|
|
55
|
+
*/
|
|
56
|
+
var buildLineSegmentIndex = function (indices, ii, vstart, vcount) {
|
|
57
|
+
var io = vstart;
|
|
58
|
+
var iomax = vstart + vcount - 2;
|
|
59
|
+
for (; io < iomax; io += 2) {
|
|
60
|
+
indices[++ii] = io;
|
|
61
|
+
indices[++ii] = io + 2;
|
|
62
|
+
indices[++ii] = io + 1;
|
|
63
|
+
indices[++ii] = io + 1;
|
|
64
|
+
indices[++ii] = io + 2;
|
|
65
|
+
indices[++ii] = io + 3;
|
|
66
|
+
}
|
|
67
|
+
return ii;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Fills degenerate triangles for a given number of index pairs.
|
|
71
|
+
* qcount is the number of quads (each produces 2 triangles = 6 indices).
|
|
72
|
+
* Returns the updated index write position.
|
|
73
|
+
*/
|
|
74
|
+
var buildLineDegenerateIndex = function (indices, ii, vertex, qcount) {
|
|
75
|
+
for (var i = 0; i < qcount; ++i) {
|
|
76
|
+
indices[++ii] = vertex;
|
|
77
|
+
indices[++ii] = vertex;
|
|
78
|
+
indices[++ii] = vertex;
|
|
79
|
+
indices[++ii] = vertex;
|
|
80
|
+
indices[++ii] = vertex;
|
|
81
|
+
indices[++ii] = vertex;
|
|
82
|
+
}
|
|
83
|
+
return ii;
|
|
84
|
+
};
|
|
46
85
|
export var buildLineUv = function (uvs, steps, voffset, vcount, textureUvs, length) {
|
|
47
86
|
var lengthInverse = 1 / Math.max(LINE_FMIN, length);
|
|
48
87
|
var x0 = textureUvs.x0;
|
|
@@ -69,7 +108,7 @@ export var buildLineUv = function (uvs, steps, voffset, vcount, textureUvs, leng
|
|
|
69
108
|
}
|
|
70
109
|
};
|
|
71
110
|
var TRANSFORMED_POINT_VALUES;
|
|
72
|
-
export var
|
|
111
|
+
export var buildLineVertexStepAndIndex = function (vertices, steps, indices, ioffset, icount, voffset, vcount, pointCount, pointsClosed, pointValues, pointSegments, strokeWidth, strokeStyle, internalTransform) {
|
|
73
112
|
var transformedPointValues = TRANSFORMED_POINT_VALUES;
|
|
74
113
|
if (transformedPointValues == null) {
|
|
75
114
|
transformedPointValues = [];
|
|
@@ -88,7 +127,7 @@ export var buildLineVertexStep = function (vertices, steps, voffset, vcount, poi
|
|
|
88
127
|
transformedPointValues[iv] = a * x + c * y + tx;
|
|
89
128
|
transformedPointValues[iv + 1] = b * x + d * y + ty;
|
|
90
129
|
}
|
|
91
|
-
return
|
|
130
|
+
return buildTransformedLineVertexStepAndIndex(vertices, steps, indices, ioffset, icount, voffset, vcount, pointCount, pointsClosed, transformedPointValues, pointSegments, strokeWidth, strokeStyle);
|
|
92
131
|
};
|
|
93
132
|
var fillTransformedLineVertexStep = function (iv, vertices, is, steps, px, py, strokeWidth, nprev, nnext, lprev, lnext, llo, e0, e1) {
|
|
94
133
|
var d = toNormalPacked(nprev, nnext);
|
|
@@ -110,13 +149,14 @@ var fillTransformedLineVertexStep = function (iv, vertices, is, steps, px, py, s
|
|
|
110
149
|
steps[++is] = llo;
|
|
111
150
|
steps[++is] = l;
|
|
112
151
|
};
|
|
113
|
-
var
|
|
152
|
+
var buildTransformedLineVertexStepAndIndex = function (vertices, steps, indices, ioffset, icount, voffset, vcount, lineVertexCount, lineIsClosed, lineVertices, lineSegments, strokeWidth, strokeStyle) {
|
|
114
153
|
var lineSegmentsLength = lineSegments.length;
|
|
115
154
|
if (0 < lineSegmentsLength) {
|
|
116
155
|
if (lineIsClosed) {
|
|
117
156
|
var lmax = 0;
|
|
118
157
|
var lprev = 0;
|
|
119
158
|
var ivoffset = voffset;
|
|
159
|
+
var ii = ioffset * 3 - 1;
|
|
120
160
|
var iseg = 0;
|
|
121
161
|
var iprevseg = lineSegments[0];
|
|
122
162
|
for (var i = 1; i < lineSegmentsLength; ++i) {
|
|
@@ -124,7 +164,9 @@ var buildTransformedLineVertexStep = function (vertices, steps, voffset, vcount,
|
|
|
124
164
|
if (2 <= iseg - iprevseg) {
|
|
125
165
|
lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
126
166
|
lmax = Math.max(lmax, lprev);
|
|
127
|
-
|
|
167
|
+
var lvcount = toLineVertexCount(iseg - iprevseg, false);
|
|
168
|
+
ii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);
|
|
169
|
+
ivoffset += lvcount;
|
|
128
170
|
}
|
|
129
171
|
iprevseg = iseg;
|
|
130
172
|
}
|
|
@@ -133,23 +175,33 @@ var buildTransformedLineVertexStep = function (vertices, steps, voffset, vcount,
|
|
|
133
175
|
if (2 <= iseg - iprevseg) {
|
|
134
176
|
lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
135
177
|
lmax = Math.max(lmax, lprev);
|
|
136
|
-
|
|
178
|
+
var lvcount = toLineVertexCount(iseg - iprevseg, false);
|
|
179
|
+
ii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);
|
|
180
|
+
ivoffset += lvcount;
|
|
137
181
|
}
|
|
138
182
|
else {
|
|
139
183
|
buildTransformedLineEmptyVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
140
184
|
}
|
|
185
|
+
// Fill remaining indices with degenerate triangles
|
|
186
|
+
var rvcount = ((ioffset + icount) * 3 - 1 - ii) / 6;
|
|
187
|
+
if (0 < rvcount) {
|
|
188
|
+
ii = buildLineDegenerateIndex(indices, ii, Math.max(ivoffset - 1, voffset), rvcount);
|
|
189
|
+
}
|
|
141
190
|
return lmax;
|
|
142
191
|
}
|
|
143
192
|
else {
|
|
144
193
|
var lmax = 0;
|
|
145
194
|
var lprev = 0;
|
|
146
195
|
var ivoffset = voffset;
|
|
196
|
+
var ii = ioffset * 3 - 1;
|
|
147
197
|
// First
|
|
148
198
|
var iseg = lineSegments[0];
|
|
149
199
|
if (2 <= iseg) {
|
|
150
200
|
lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, 0, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
151
201
|
lmax = Math.max(lmax, lprev);
|
|
152
|
-
|
|
202
|
+
var lvcount = toLineVertexCount(iseg, false);
|
|
203
|
+
ii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);
|
|
204
|
+
ivoffset += lvcount;
|
|
153
205
|
}
|
|
154
206
|
// Middle
|
|
155
207
|
var iprevseg = iseg;
|
|
@@ -158,7 +210,9 @@ var buildTransformedLineVertexStep = function (vertices, steps, voffset, vcount,
|
|
|
158
210
|
if (2 <= iseg - iprevseg) {
|
|
159
211
|
lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, -1, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
160
212
|
lmax = Math.max(lmax, lprev);
|
|
161
|
-
|
|
213
|
+
var lvcount = toLineVertexCount(iseg - iprevseg, false);
|
|
214
|
+
ii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);
|
|
215
|
+
ivoffset += lvcount;
|
|
162
216
|
}
|
|
163
217
|
iprevseg = iseg;
|
|
164
218
|
}
|
|
@@ -167,15 +221,23 @@ var buildTransformedLineVertexStep = function (vertices, steps, voffset, vcount,
|
|
|
167
221
|
if (2 <= iseg - iprevseg) {
|
|
168
222
|
lprev = buildTransformedLineOpenSegmentVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
169
223
|
lmax = Math.max(lmax, lprev);
|
|
170
|
-
|
|
224
|
+
var lvcount = toLineVertexCount(iseg - iprevseg, false);
|
|
225
|
+
ii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);
|
|
226
|
+
ivoffset += lvcount;
|
|
171
227
|
}
|
|
172
228
|
else {
|
|
173
229
|
buildTransformedLineEmptyVertexStep(vertices, steps, ivoffset, voffset + vcount - ivoffset, lineVertices, iprevseg, iseg, lineVertexCount, strokeWidth, strokeStyle, lprev);
|
|
174
230
|
}
|
|
231
|
+
// Fill remaining indices with degenerate triangles
|
|
232
|
+
var rvcount = ((ioffset + icount) * 3 - 1 - ii) / 6;
|
|
233
|
+
if (0 < rvcount) {
|
|
234
|
+
ii = buildLineDegenerateIndex(indices, ii, Math.max(ivoffset - 1, voffset), rvcount);
|
|
235
|
+
}
|
|
175
236
|
return lmax;
|
|
176
237
|
}
|
|
177
238
|
}
|
|
178
239
|
else {
|
|
240
|
+
buildLineIndex(indices, voffset, ioffset, icount);
|
|
179
241
|
if (lineIsClosed) {
|
|
180
242
|
return buildTransformedLineClosedSegmentVertexStep(vertices, steps, voffset, vcount, lineVertices, 0, lineVertexCount, lineVertexCount, strokeWidth, strokeStyle);
|
|
181
243
|
}
|
|
@@ -244,10 +306,13 @@ var buildTransformedLineOpenSegmentVertexStep = function (vertices, steps, voffs
|
|
|
244
306
|
var iv = (voffset << 1) - 1;
|
|
245
307
|
var is = voffset * 6 - 1;
|
|
246
308
|
var l = 0;
|
|
247
|
-
|
|
309
|
+
var headx = px - nprev[1] * LINE_EXTRA_LENGTH;
|
|
310
|
+
var heady = py + nprev[0] * LINE_EXTRA_LENGTH;
|
|
311
|
+
var lhead = -LINE_EXTRA_LENGTH;
|
|
312
|
+
fillTransformedLineVertexStep(iv, vertices, is, steps, headx, heady, strokeWidth, nprev, nnext, lprev, lnext, lhead, e3, e5);
|
|
248
313
|
iv += 4;
|
|
249
314
|
is += 12;
|
|
250
|
-
fillTransformedLineVertexStep(iv, vertices, is, steps,
|
|
315
|
+
fillTransformedLineVertexStep(iv, vertices, is, steps, headx, heady, strokeWidth, nprev, nnext, lprev, lnext, lhead, e4, e6);
|
|
251
316
|
iv += 4;
|
|
252
317
|
is += 12;
|
|
253
318
|
// Middle segments
|
|
@@ -286,18 +351,18 @@ var buildTransformedLineOpenSegmentVertexStep = function (vertices, steps, voffs
|
|
|
286
351
|
toVector(px, py, pnextx, pnexty, nnext);
|
|
287
352
|
toNormal(nnext, lnext);
|
|
288
353
|
l += lprev;
|
|
289
|
-
|
|
354
|
+
var tailx = px + nnext[1] * LINE_EXTRA_LENGTH;
|
|
355
|
+
var taily = py - nnext[0] * LINE_EXTRA_LENGTH;
|
|
356
|
+
var ltrail = l + LINE_EXTRA_LENGTH;
|
|
357
|
+
fillTransformedLineVertexStep(iv, vertices, is, steps, tailx, taily, strokeWidth, nprev, nnext, lprev, lnext, ltrail, e3, e5);
|
|
290
358
|
iv += 4;
|
|
291
359
|
is += 12;
|
|
292
|
-
fillTransformedLineVertexStep(iv, vertices, is, steps,
|
|
360
|
+
fillTransformedLineVertexStep(iv, vertices, is, steps, tailx, taily, strokeWidth, nprev, nnext, lprev, lnext, ltrail, e4, e6);
|
|
293
361
|
iv += 4;
|
|
294
362
|
is += 12;
|
|
295
363
|
// Total length
|
|
296
364
|
var is0 = voffset * 6 - 1;
|
|
297
|
-
for (var i = is0
|
|
298
|
-
steps[i + 5] = length;
|
|
299
|
-
}
|
|
300
|
-
for (var i = is0 + 12; i < is; i += 6) {
|
|
365
|
+
for (var i = is0; i < is; i += 6) {
|
|
301
366
|
steps[i + 5] = l;
|
|
302
367
|
}
|
|
303
368
|
// Fill the rest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, TextureUvs } from \"pixi.js\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toDash } from \"./to-dash\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\nimport { toNormalPacked } from \"./to-normal-packed\";\nimport { toVectorLength } from \"./to-vector-length\";\nimport { toVector } from \"./to-vector\";\nimport { toNormal } from \"./to-normal\";\nimport { toPackedI4x64 } from \"./to-packed\";\n\nconst LINE_FMIN: number = 0.00001;\nconst LINE_NPREV = [0, 1];\nconst LINE_NNEXT = [0, 1];\n\nexport const toPointCount = (points?: EShapePoints): number => {\n\tif (points) {\n\t\treturn points.formatted.plength;\n\t}\n\treturn 0;\n};\n\nexport const toLinePointCount = (points?: EShapePoints): number => {\n\tconst pointCount = toPointCount(points);\n\treturn ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;\n};\n\nexport const toLineVertexCount = (pointCount: number, isClosed: boolean): number => {\n\tif (isClosed) {\n\t\treturn (pointCount << 2) + 2;\n\t} else {\n\t\treturn pointCount << 2;\n\t}\n};\n\nexport const toLineIndexCount = (pointCount: number, isClosed: boolean): number => {\n\treturn toLineVertexCount(pointCount, isClosed) - 2;\n};\n\nexport const buildLineIndex = (\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 io = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = io + 0;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 1;\n\n\t\tindices[++ii] = io + 1;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 3;\n\t\tio += 2;\n\t}\n};\n\nexport const buildLineUv = (\n\tuvs: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextureUvs: TextureUvs,\n\tlength: number\n): void => {\n\tconst lengthInverse = 1 / Math.max(LINE_FMIN, length);\n\n\tconst x0 = textureUvs.x0;\n\tconst x1 = textureUvs.x1;\n\tconst x2 = textureUvs.x2;\n\tconst x3 = textureUvs.x3;\n\tconst y0 = textureUvs.y0;\n\tconst y1 = textureUvs.y1;\n\tconst y2 = textureUvs.y2;\n\tconst y3 = textureUvs.y3;\n\n\tconst dx01 = x1 - x0;\n\tconst dy01 = y1 - y0;\n\tconst dx32 = x2 - x3;\n\tconst dy32 = y2 - y3;\n\n\tlet iuv = (voffset << 1) - 1;\n\tconst iuvmax = ((voffset + vcount) << 1) - 1;\n\tlet is = voffset * 6 - 9;\n\tfor (; iuv < iuvmax; ) {\n\t\tconst r = steps[(is += 12)] * lengthInverse;\n\t\tuvs[++iuv] = x0 + r * dx01;\n\t\tuvs[++iuv] = y0 + r * dy01;\n\t\tuvs[++iuv] = x3 + r * dx32;\n\t\tuvs[++iuv] = y3 + r * dy32;\n\t}\n};\n\nlet TRANSFORMED_POINT_VALUES: number[] | undefined;\n\nexport const buildLineVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tpointCount: number,\n\tpointsClosed: boolean,\n\tpointValues: number[],\n\tpointSegments: number[],\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tinternalTransform: Matrix\n): number => {\n\tlet transformedPointValues = TRANSFORMED_POINT_VALUES;\n\tif (transformedPointValues == null) {\n\t\ttransformedPointValues = [];\n\t\tTRANSFORMED_POINT_VALUES = transformedPointValues;\n\t}\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\tfor (let i = 0; i < pointCount; ++i) {\n\t\tconst iv = i << 1;\n\t\tconst x = pointValues[iv];\n\t\tconst y = pointValues[iv + 1];\n\t\ttransformedPointValues[iv] = a * x + c * y + tx;\n\t\ttransformedPointValues[iv + 1] = b * x + d * y + ty;\n\t}\n\treturn buildTransformedLineVertexStep(\n\t\tvertices,\n\t\tsteps,\n\t\tvoffset,\n\t\tvcount,\n\t\tpointCount,\n\t\tpointsClosed,\n\t\ttransformedPointValues,\n\t\tpointSegments,\n\t\tstrokeWidth,\n\t\tstrokeStyle\n\t);\n};\n\nconst fillTransformedLineVertexStep = (\n\tiv: number,\n\tvertices: Float32Array,\n\tis: number,\n\tsteps: Float32Array,\n\tpx: number,\n\tpy: number,\n\tstrokeWidth: number,\n\tnprev: number[],\n\tnnext: number[],\n\tlprev: number,\n\tlnext: number,\n\tllo: number,\n\te0: number,\n\te1: number\n): void => {\n\tconst d = toNormalPacked(nprev, nnext);\n\tconst l = Math.min(lprev, lnext);\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = d;\n\tsteps[++is] = llo;\n\tsteps[++is] = llo;\n\tsteps[++is] = l;\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e1;\n\tsteps[++is] = d;\n\tsteps[++is] = llo;\n\tsteps[++is] = llo;\n\tsteps[++is] = l;\n};\n\nconst buildTransformedLineVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertexCount: number,\n\tlineIsClosed: boolean,\n\tlineVertices: number[],\n\tlineSegments: number[],\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle\n): number => {\n\tconst lineSegmentsLength = lineSegments.length;\n\tif (0 < lineSegmentsLength) {\n\t\tif (lineIsClosed) {\n\t\t\tlet lmax = 0;\n\t\t\tlet lprev = 0;\n\t\t\tlet ivoffset = voffset;\n\n\t\t\tlet iseg = 0;\n\t\t\tlet iprevseg = lineSegments[0];\n\t\t\tfor (let i = 1; i < lineSegmentsLength; ++i) {\n\t\t\t\tiseg = lineSegments[i];\n\t\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tivoffset,\n\t\t\t\t\t\t-1,\n\t\t\t\t\t\tlineVertices,\n\t\t\t\t\t\tiprevseg,\n\t\t\t\t\t\tiseg,\n\t\t\t\t\t\tlineVertexCount,\n\t\t\t\t\t\tstrokeWidth,\n\t\t\t\t\t\tstrokeStyle,\n\t\t\t\t\t\tlprev\n\t\t\t\t\t);\n\t\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\t\tivoffset += toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\t}\n\t\t\t\tiprevseg = iseg;\n\t\t\t}\n\n\t\t\t// Last\n\t\t\tiseg = lineSegments[0] + lineVertexCount;\n\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tivoffset += toLineVertexCount(iseg - iprevseg, false);\n\t\t\t} else {\n\t\t\t\tbuildTransformedLineEmptyVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn lmax;\n\t\t} else {\n\t\t\tlet lmax = 0;\n\t\t\tlet lprev = 0;\n\t\t\tlet ivoffset = voffset;\n\n\t\t\t// First\n\t\t\tlet iseg = lineSegments[0];\n\t\t\tif (2 <= iseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\t-1,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\t0,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tivoffset += toLineVertexCount(iseg, false);\n\t\t\t}\n\n\t\t\t// Middle\n\t\t\tlet iprevseg = iseg;\n\t\t\tfor (let i = 1; i < lineSegmentsLength; ++i) {\n\t\t\t\tiseg = lineSegments[i];\n\t\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tivoffset,\n\t\t\t\t\t\t-1,\n\t\t\t\t\t\tlineVertices,\n\t\t\t\t\t\tiprevseg,\n\t\t\t\t\t\tiseg,\n\t\t\t\t\t\tlineVertexCount,\n\t\t\t\t\t\tstrokeWidth,\n\t\t\t\t\t\tstrokeStyle,\n\t\t\t\t\t\tlprev\n\t\t\t\t\t);\n\t\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\t\tivoffset += toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\t}\n\t\t\t\tiprevseg = iseg;\n\t\t\t}\n\n\t\t\t// Last\n\t\t\tiseg = lineVertexCount;\n\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tivoffset += toLineVertexCount(iseg - iprevseg, false);\n\t\t\t} else {\n\t\t\t\tbuildTransformedLineEmptyVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn lmax;\n\t\t}\n\t} else {\n\t\tif (lineIsClosed) {\n\t\t\treturn buildTransformedLineClosedSegmentVertexStep(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tvoffset,\n\t\t\t\tvcount,\n\t\t\t\tlineVertices,\n\t\t\t\t0,\n\t\t\t\tlineVertexCount,\n\t\t\t\tlineVertexCount,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle\n\t\t\t);\n\t\t} else {\n\t\t\treturn buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tvoffset,\n\t\t\t\tvcount,\n\t\t\t\tlineVertices,\n\t\t\t\t0,\n\t\t\t\tlineVertexCount,\n\t\t\t\tlineVertexCount,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle,\n\t\t\t\t0\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst buildTransformedLineEmptyVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tlength: number\n): number => {\n\tif (0 <= vcount) {\n\t\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\t\tconst dash = toDash(strokeStyle);\n\t\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\t\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\n\t\tlet iv = (voffset << 1) - 1;\n\t\tlet is = voffset * 6 - 1;\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\t\tconst px = lineVertices[ifirst];\n\t\tconst py = lineVertices[ifirst + 1];\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst buildTransformedLineOpenSegmentVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tlength: number\n): number => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\tconst dash = toDash(strokeStyle);\n\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\tconst e4 = toPackedI4x64(4, scaleInvariant, dash, 0);\n\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\tconst e6 = toPackedI4x64(6, scaleInvariant, dash, 0);\n\n\t// First segment\n\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\tlet px = lineVertices[ifirst];\n\tlet py = lineVertices[ifirst + 1];\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tlet pnextx = lineVertices[isecond];\n\tlet pnexty = lineVertices[isecond + 1];\n\tlet pprevx = px - (pnextx - px);\n\tlet pprevy = py - (pnexty - py);\n\tconst nprev = LINE_NPREV;\n\tconst nnext = LINE_NNEXT;\n\ttoVector(pprevx, pprevy, px, py, nprev);\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlet lprev = toVectorLength(nprev);\n\tlet lnext = lprev;\n\ttoNormal(nprev, lprev);\n\ttoNormal(nnext, lnext);\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet l = 0;\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tlength,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tl,\n\t\te4,\n\t\te6\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Middle segments\n\tfor (let i = lineVertexFrom + 1, imax = lineVertexTo - 1; i < imax; ++i) {\n\t\tpprevx = px;\n\t\tpprevy = py;\n\t\tpx = pnextx;\n\t\tpy = pnexty;\n\t\tnprev[0] = nnext[0];\n\t\tnprev[1] = nnext[1];\n\t\tlprev = lnext;\n\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\t\ttoVector(px, py, pnextx, pnexty, nnext);\n\t\tlnext = toVectorLength(nnext);\n\t\ttoNormal(nnext, lnext);\n\t\tl += lprev;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te3,\n\t\t\te5\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te4,\n\t\t\te6\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\tnprev[0] = nnext[0];\n\tnprev[1] = nnext[1];\n\tlprev = lnext;\n\n\tpnextx = px + (px - pprevx);\n\tpnexty = py + (py - pprevy);\n\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\ttoNormal(nnext, lnext);\n\tl += lprev;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tl,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tl,\n\t\te4,\n\t\te6\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Total length\n\tconst is0 = voffset * 6 - 1;\n\tfor (let i = is0, imax = is0 + 12; i < imax; i += 6) {\n\t\tsteps[i + 5] = length;\n\t}\n\tfor (let i = is0 + 12; i < is; i += 6) {\n\t\tsteps[i + 5] = l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\n\t\tconst d = toNormalPacked(nprev, nnext);\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\n\treturn l;\n};\n\nconst buildTransformedLineClosedSegmentVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle\n): number => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\tconst dash = toDash(strokeStyle);\n\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\tconst e4 = toPackedI4x64(4, scaleInvariant, dash, 0);\n\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\tconst e6 = toPackedI4x64(6, scaleInvariant, dash, 0);\n\n\tconst ilast = (lineVertexTo - 1) % lineVertexCount << 1;\n\tlet pprevx = 0;\n\tlet pprevy = 0;\n\tlet px = lineVertices[ilast];\n\tlet py = lineVertices[ilast + 1];\n\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\tlet pnextx = lineVertices[ifirst];\n\tlet pnexty = lineVertices[ifirst + 1];\n\tconst nprev = LINE_NPREV;\n\tconst nnext = LINE_NNEXT;\n\ttoVector(pprevx, pprevy, px, py, nprev);\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlet lprev = toVectorLength(nprev);\n\tlet lnext = toVectorLength(nnext);\n\ttoNormal(nprev, lprev);\n\ttoNormal(nnext, lnext);\n\tlet l = 0;\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tfor (let i = lineVertexFrom; i < lineVertexTo; ++i) {\n\t\tpprevx = px;\n\t\tpprevy = py;\n\t\tpx = pnextx;\n\t\tpy = pnexty;\n\t\tnprev[0] = nnext[0];\n\t\tnprev[1] = nnext[1];\n\t\tlprev = lnext;\n\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\t\ttoVector(px, py, pnextx, pnexty, nnext);\n\t\tlnext = toVectorLength(nnext);\n\t\ttoNormal(nnext, lnext);\n\t\tl += lprev;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te3,\n\t\t\te5\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te4,\n\t\t\te6\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\tnprev[0] = nnext[0];\n\tnprev[1] = nnext[1];\n\tlprev = lnext;\n\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tpnextx = lineVertices[isecond];\n\tpnexty = lineVertices[isecond + 1];\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlnext = toVectorLength(nnext);\n\ttoNormal(nnext, lnext);\n\tl += lprev;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tl,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Total length\n\tfor (let i = voffset * 6 - 1; i < is; i += 6) {\n\t\tsteps[i + 5] = -l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\n\t\tconst d = toNormalPacked(nprev, nnext);\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = strokeWidth;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = -l;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = strokeWidth;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = -l;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\treturn l;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"build-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, TextureUvs } from \"pixi.js\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toDash } from \"./to-dash\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\nimport { toNormalPacked } from \"./to-normal-packed\";\nimport { toVectorLength } from \"./to-vector-length\";\nimport { toVector } from \"./to-vector\";\nimport { toNormal } from \"./to-normal\";\nimport { toPackedI4x64 } from \"./to-packed\";\n\nconst LINE_FMIN: number = 0.00001;\nconst LINE_NPREV = [0, 1];\nconst LINE_NNEXT = [0, 1];\n\n/**\n * Extends line segments at the start and the end a little bit\n * to apply the antialiasing at the start and the end.\n */\nconst LINE_EXTRA_LENGTH = 5;\n\nexport const toPointCount = (points?: EShapePoints): number => {\n\tif (points) {\n\t\treturn points.formatted.plength;\n\t}\n\treturn 0;\n};\n\nexport const toLinePointCount = (points?: EShapePoints): number => {\n\tconst pointCount = toPointCount(points);\n\treturn ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;\n};\n\nexport const toLineVertexCount = (pointCount: number, isClosed: boolean): number => {\n\tif (isClosed) {\n\t\treturn (pointCount << 2) + 2;\n\t} else {\n\t\treturn pointCount << 2;\n\t}\n};\n\nexport const toLineIndexCount = (pointCount: number, isClosed: boolean): number => {\n\treturn toLineVertexCount(pointCount, isClosed) - 2;\n};\n\nexport const buildLineIndex = (\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 io = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = io;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 1;\n\n\t\tindices[++ii] = io + 1;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 3;\n\t\tio += 2;\n\t}\n};\n\n/**\n * Builds normal (non-degenerate) triangle indices for a contiguous vertex range.\n * vcount is the number of vertices in the segment.\n * Returns the updated index write position.\n */\nconst buildLineSegmentIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tii: number,\n\tvstart: number,\n\tvcount: number\n): number => {\n\tlet io = vstart;\n\tconst iomax = vstart + vcount - 2;\n\tfor (; io < iomax; io += 2) {\n\t\tindices[++ii] = io;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 1;\n\n\t\tindices[++ii] = io + 1;\n\t\tindices[++ii] = io + 2;\n\t\tindices[++ii] = io + 3;\n\t}\n\treturn ii;\n};\n\n/**\n * Fills degenerate triangles for a given number of index pairs.\n * qcount is the number of quads (each produces 2 triangles = 6 indices).\n * Returns the updated index write position.\n */\nconst buildLineDegenerateIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tii: number,\n\tvertex: number,\n\tqcount: number\n): number => {\n\tfor (let i = 0; i < qcount; ++i) {\n\t\tindices[++ii] = vertex;\n\t\tindices[++ii] = vertex;\n\t\tindices[++ii] = vertex;\n\n\t\tindices[++ii] = vertex;\n\t\tindices[++ii] = vertex;\n\t\tindices[++ii] = vertex;\n\t}\n\treturn ii;\n};\n\nexport const buildLineUv = (\n\tuvs: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextureUvs: TextureUvs,\n\tlength: number\n): void => {\n\tconst lengthInverse = 1 / Math.max(LINE_FMIN, length);\n\n\tconst x0 = textureUvs.x0;\n\tconst x1 = textureUvs.x1;\n\tconst x2 = textureUvs.x2;\n\tconst x3 = textureUvs.x3;\n\tconst y0 = textureUvs.y0;\n\tconst y1 = textureUvs.y1;\n\tconst y2 = textureUvs.y2;\n\tconst y3 = textureUvs.y3;\n\n\tconst dx01 = x1 - x0;\n\tconst dy01 = y1 - y0;\n\tconst dx32 = x2 - x3;\n\tconst dy32 = y2 - y3;\n\n\tlet iuv = (voffset << 1) - 1;\n\tconst iuvmax = ((voffset + vcount) << 1) - 1;\n\tlet is = voffset * 6 - 9;\n\tfor (; iuv < iuvmax; ) {\n\t\tconst r = steps[(is += 12)] * lengthInverse;\n\t\tuvs[++iuv] = x0 + r * dx01;\n\t\tuvs[++iuv] = y0 + r * dy01;\n\t\tuvs[++iuv] = x3 + r * dx32;\n\t\tuvs[++iuv] = y3 + r * dy32;\n\t}\n};\n\nlet TRANSFORMED_POINT_VALUES: number[] | undefined;\n\nexport const buildLineVertexStepAndIndex = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tindices: Uint16Array | Uint32Array,\n\tioffset: number,\n\ticount: number,\n\tvoffset: number,\n\tvcount: number,\n\tpointCount: number,\n\tpointsClosed: boolean,\n\tpointValues: number[],\n\tpointSegments: number[],\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tinternalTransform: Matrix\n): number => {\n\tlet transformedPointValues = TRANSFORMED_POINT_VALUES;\n\tif (transformedPointValues == null) {\n\t\ttransformedPointValues = [];\n\t\tTRANSFORMED_POINT_VALUES = transformedPointValues;\n\t}\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\tfor (let i = 0; i < pointCount; ++i) {\n\t\tconst iv = i << 1;\n\t\tconst x = pointValues[iv];\n\t\tconst y = pointValues[iv + 1];\n\t\ttransformedPointValues[iv] = a * x + c * y + tx;\n\t\ttransformedPointValues[iv + 1] = b * x + d * y + ty;\n\t}\n\treturn buildTransformedLineVertexStepAndIndex(\n\t\tvertices,\n\t\tsteps,\n\t\tindices,\n\t\tioffset,\n\t\ticount,\n\t\tvoffset,\n\t\tvcount,\n\t\tpointCount,\n\t\tpointsClosed,\n\t\ttransformedPointValues,\n\t\tpointSegments,\n\t\tstrokeWidth,\n\t\tstrokeStyle\n\t);\n};\n\nconst fillTransformedLineVertexStep = (\n\tiv: number,\n\tvertices: Float32Array,\n\tis: number,\n\tsteps: Float32Array,\n\tpx: number,\n\tpy: number,\n\tstrokeWidth: number,\n\tnprev: number[],\n\tnnext: number[],\n\tlprev: number,\n\tlnext: number,\n\tllo: number,\n\te0: number,\n\te1: number\n): void => {\n\tconst d = toNormalPacked(nprev, nnext);\n\tconst l = Math.min(lprev, lnext);\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e0;\n\tsteps[++is] = d;\n\tsteps[++is] = llo;\n\tsteps[++is] = llo;\n\tsteps[++is] = l;\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = e1;\n\tsteps[++is] = d;\n\tsteps[++is] = llo;\n\tsteps[++is] = llo;\n\tsteps[++is] = l;\n};\n\nconst buildTransformedLineVertexStepAndIndex = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tindices: Uint16Array | Uint32Array,\n\tioffset: number,\n\ticount: number,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertexCount: number,\n\tlineIsClosed: boolean,\n\tlineVertices: number[],\n\tlineSegments: number[],\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle\n): number => {\n\tconst lineSegmentsLength = lineSegments.length;\n\tif (0 < lineSegmentsLength) {\n\t\tif (lineIsClosed) {\n\t\t\tlet lmax = 0;\n\t\t\tlet lprev = 0;\n\t\t\tlet ivoffset = voffset;\n\t\t\tlet ii = ioffset * 3 - 1;\n\n\t\t\tlet iseg = 0;\n\t\t\tlet iprevseg = lineSegments[0];\n\t\t\tfor (let i = 1; i < lineSegmentsLength; ++i) {\n\t\t\t\tiseg = lineSegments[i];\n\t\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tivoffset,\n\t\t\t\t\t\t-1,\n\t\t\t\t\t\tlineVertices,\n\t\t\t\t\t\tiprevseg,\n\t\t\t\t\t\tiseg,\n\t\t\t\t\t\tlineVertexCount,\n\t\t\t\t\t\tstrokeWidth,\n\t\t\t\t\t\tstrokeStyle,\n\t\t\t\t\t\tlprev\n\t\t\t\t\t);\n\t\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\t\tconst lvcount = toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\t\tii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);\n\t\t\t\t\tivoffset += lvcount;\n\t\t\t\t}\n\t\t\t\tiprevseg = iseg;\n\t\t\t}\n\n\t\t\t// Last\n\t\t\tiseg = lineSegments[0] + lineVertexCount;\n\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tconst lvcount = toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\tii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);\n\t\t\t\tivoffset += lvcount;\n\t\t\t} else {\n\t\t\t\tbuildTransformedLineEmptyVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Fill remaining indices with degenerate triangles\n\t\t\tconst rvcount = ((ioffset + icount) * 3 - 1 - ii) / 6;\n\t\t\tif (0 < rvcount) {\n\t\t\t\tii = buildLineDegenerateIndex(\n\t\t\t\t\tindices,\n\t\t\t\t\tii,\n\t\t\t\t\tMath.max(ivoffset - 1, voffset),\n\t\t\t\t\trvcount\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn lmax;\n\t\t} else {\n\t\t\tlet lmax = 0;\n\t\t\tlet lprev = 0;\n\t\t\tlet ivoffset = voffset;\n\t\t\tlet ii = ioffset * 3 - 1;\n\n\t\t\t// First\n\t\t\tlet iseg = lineSegments[0];\n\t\t\tif (2 <= iseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\t-1,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\t0,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tconst lvcount = toLineVertexCount(iseg, false);\n\t\t\t\tii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);\n\t\t\t\tivoffset += lvcount;\n\t\t\t}\n\n\t\t\t// Middle\n\t\t\tlet iprevseg = iseg;\n\t\t\tfor (let i = 1; i < lineSegmentsLength; ++i) {\n\t\t\t\tiseg = lineSegments[i];\n\t\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tivoffset,\n\t\t\t\t\t\t-1,\n\t\t\t\t\t\tlineVertices,\n\t\t\t\t\t\tiprevseg,\n\t\t\t\t\t\tiseg,\n\t\t\t\t\t\tlineVertexCount,\n\t\t\t\t\t\tstrokeWidth,\n\t\t\t\t\t\tstrokeStyle,\n\t\t\t\t\t\tlprev\n\t\t\t\t\t);\n\t\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\t\tconst lvcount = toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\t\tii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);\n\t\t\t\t\tivoffset += lvcount;\n\t\t\t\t}\n\t\t\t\tiprevseg = iseg;\n\t\t\t}\n\n\t\t\t// Last\n\t\t\tiseg = lineVertexCount;\n\t\t\tif (2 <= iseg - iprevseg) {\n\t\t\t\tlprev = buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t\tlmax = Math.max(lmax, lprev);\n\t\t\t\tconst lvcount = toLineVertexCount(iseg - iprevseg, false);\n\t\t\t\tii = buildLineSegmentIndex(indices, ii, ivoffset, lvcount);\n\t\t\t\tivoffset += lvcount;\n\t\t\t} else {\n\t\t\t\tbuildTransformedLineEmptyVertexStep(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tivoffset,\n\t\t\t\t\tvoffset + vcount - ivoffset,\n\t\t\t\t\tlineVertices,\n\t\t\t\t\tiprevseg,\n\t\t\t\t\tiseg,\n\t\t\t\t\tlineVertexCount,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tlprev\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Fill remaining indices with degenerate triangles\n\t\t\tconst rvcount = ((ioffset + icount) * 3 - 1 - ii) / 6;\n\t\t\tif (0 < rvcount) {\n\t\t\t\tii = buildLineDegenerateIndex(\n\t\t\t\t\tindices,\n\t\t\t\t\tii,\n\t\t\t\t\tMath.max(ivoffset - 1, voffset),\n\t\t\t\t\trvcount\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn lmax;\n\t\t}\n\t} else {\n\t\tbuildLineIndex(indices, voffset, ioffset, icount);\n\t\tif (lineIsClosed) {\n\t\t\treturn buildTransformedLineClosedSegmentVertexStep(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tvoffset,\n\t\t\t\tvcount,\n\t\t\t\tlineVertices,\n\t\t\t\t0,\n\t\t\t\tlineVertexCount,\n\t\t\t\tlineVertexCount,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle\n\t\t\t);\n\t\t} else {\n\t\t\treturn buildTransformedLineOpenSegmentVertexStep(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tvoffset,\n\t\t\t\tvcount,\n\t\t\t\tlineVertices,\n\t\t\t\t0,\n\t\t\t\tlineVertexCount,\n\t\t\t\tlineVertexCount,\n\t\t\t\tstrokeWidth,\n\t\t\t\tstrokeStyle,\n\t\t\t\t0\n\t\t\t);\n\t\t}\n\t}\n};\n\nconst buildTransformedLineEmptyVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tlength: number\n): number => {\n\tif (0 <= vcount) {\n\t\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\t\tconst dash = toDash(strokeStyle);\n\t\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\t\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\n\t\tlet iv = (voffset << 1) - 1;\n\t\tlet is = voffset * 6 - 1;\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\t\tconst px = lineVertices[ifirst];\n\t\tconst py = lineVertices[ifirst + 1];\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = length;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst buildTransformedLineOpenSegmentVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle,\n\tlength: number\n): number => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\tconst dash = toDash(strokeStyle);\n\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\tconst e4 = toPackedI4x64(4, scaleInvariant, dash, 0);\n\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\tconst e6 = toPackedI4x64(6, scaleInvariant, dash, 0);\n\n\t// First segment\n\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\tlet px = lineVertices[ifirst];\n\tlet py = lineVertices[ifirst + 1];\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tlet pnextx = lineVertices[isecond];\n\tlet pnexty = lineVertices[isecond + 1];\n\tlet pprevx = px - (pnextx - px);\n\tlet pprevy = py - (pnexty - py);\n\tconst nprev = LINE_NPREV;\n\tconst nnext = LINE_NNEXT;\n\ttoVector(pprevx, pprevy, px, py, nprev);\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlet lprev = toVectorLength(nprev);\n\tlet lnext = lprev;\n\ttoNormal(nprev, lprev);\n\ttoNormal(nnext, lnext);\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet l = 0;\n\tconst headx = px - nprev[1] * LINE_EXTRA_LENGTH;\n\tconst heady = py + nprev[0] * LINE_EXTRA_LENGTH;\n\tconst lhead = -LINE_EXTRA_LENGTH;\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\theadx,\n\t\theady,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tlhead,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\theadx,\n\t\theady,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tlhead,\n\t\te4,\n\t\te6\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Middle segments\n\tfor (let i = lineVertexFrom + 1, imax = lineVertexTo - 1; i < imax; ++i) {\n\t\tpprevx = px;\n\t\tpprevy = py;\n\t\tpx = pnextx;\n\t\tpy = pnexty;\n\t\tnprev[0] = nnext[0];\n\t\tnprev[1] = nnext[1];\n\t\tlprev = lnext;\n\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\t\ttoVector(px, py, pnextx, pnexty, nnext);\n\t\tlnext = toVectorLength(nnext);\n\t\ttoNormal(nnext, lnext);\n\t\tl += lprev;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te3,\n\t\t\te5\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te4,\n\t\t\te6\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\tnprev[0] = nnext[0];\n\tnprev[1] = nnext[1];\n\tlprev = lnext;\n\n\tpnextx = px + (px - pprevx);\n\tpnexty = py + (py - pprevy);\n\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\ttoNormal(nnext, lnext);\n\tl += lprev;\n\n\tconst tailx = px + nnext[1] * LINE_EXTRA_LENGTH;\n\tconst taily = py - nnext[0] * LINE_EXTRA_LENGTH;\n\tconst ltrail = l + LINE_EXTRA_LENGTH;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ttailx,\n\t\ttaily,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tltrail,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ttailx,\n\t\ttaily,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tltrail,\n\t\te4,\n\t\te6\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Total length\n\tconst is0 = voffset * 6 - 1;\n\tfor (let i = is0; i < is; i += 6) {\n\t\tsteps[i + 5] = l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\n\t\tconst d = toNormalPacked(nprev, nnext);\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\n\treturn l;\n};\n\nconst buildTransformedLineClosedSegmentVertexStep = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tlineVertices: number[],\n\tlineVertexFrom: number,\n\tlineVertexTo: number,\n\tlineVertexCount: number,\n\tstrokeWidth: number,\n\tstrokeStyle: EShapeStrokeStyle\n): number => {\n\tconst scaleInvariant = toScaleInvariant(strokeStyle);\n\tconst dash = toDash(strokeStyle);\n\tconst e3 = toPackedI4x64(3, scaleInvariant, dash, 0);\n\tconst e4 = toPackedI4x64(4, scaleInvariant, dash, 0);\n\tconst e5 = toPackedI4x64(5, scaleInvariant, dash, 0);\n\tconst e6 = toPackedI4x64(6, scaleInvariant, dash, 0);\n\n\tconst ilast = (lineVertexTo - 1) % lineVertexCount << 1;\n\tlet pprevx = 0;\n\tlet pprevy = 0;\n\tlet px = lineVertices[ilast];\n\tlet py = lineVertices[ilast + 1];\n\tconst ifirst = lineVertexFrom % lineVertexCount << 1;\n\tlet pnextx = lineVertices[ifirst];\n\tlet pnexty = lineVertices[ifirst + 1];\n\tconst nprev = LINE_NPREV;\n\tconst nnext = LINE_NNEXT;\n\ttoVector(pprevx, pprevy, px, py, nprev);\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlet lprev = toVectorLength(nprev);\n\tlet lnext = toVectorLength(nnext);\n\ttoNormal(nprev, lprev);\n\ttoNormal(nnext, lnext);\n\tlet l = 0;\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tfor (let i = lineVertexFrom; i < lineVertexTo; ++i) {\n\t\tpprevx = px;\n\t\tpprevy = py;\n\t\tpx = pnextx;\n\t\tpy = pnexty;\n\t\tnprev[0] = nnext[0];\n\t\tnprev[1] = nnext[1];\n\t\tlprev = lnext;\n\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\t\ttoVector(px, py, pnextx, pnexty, nnext);\n\t\tlnext = toVectorLength(nnext);\n\t\ttoNormal(nnext, lnext);\n\t\tl += lprev;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te3,\n\t\t\te5\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\n\t\tfillTransformedLineVertexStep(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tnprev,\n\t\t\tnnext,\n\t\t\tlprev,\n\t\t\tlnext,\n\t\t\tl,\n\t\t\te4,\n\t\t\te6\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\tnprev[0] = nnext[0];\n\tnprev[1] = nnext[1];\n\tlprev = lnext;\n\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tpnextx = lineVertices[isecond];\n\tpnexty = lineVertices[isecond + 1];\n\ttoVector(px, py, pnextx, pnexty, nnext);\n\tlnext = toVectorLength(nnext);\n\ttoNormal(nnext, lnext);\n\tl += lprev;\n\n\tfillTransformedLineVertexStep(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tnprev,\n\t\tnnext,\n\t\tlprev,\n\t\tlnext,\n\t\tl,\n\t\te3,\n\t\te5\n\t);\n\tiv += 4;\n\tis += 12;\n\n\t// Total length\n\tfor (let i = voffset * 6 - 1; i < is; i += 6) {\n\t\tsteps[i + 5] = -l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\n\t\tconst d = toNormalPacked(nprev, nnext);\n\t\tconst ivmax = ((voffset + vcount) << 1) - 1;\n\t\tfor (; iv < ivmax; ) {\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = strokeWidth;\n\t\t\tsteps[++is] = e3;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = -l;\n\t\t\tsteps[++is] = 0;\n\n\t\t\tvertices[++iv] = px;\n\t\t\tvertices[++iv] = py;\n\t\t\tsteps[++is] = strokeWidth;\n\t\t\tsteps[++is] = e5;\n\t\t\tsteps[++is] = d;\n\t\t\tsteps[++is] = l;\n\t\t\tsteps[++is] = -l;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n\treturn l;\n};\n"]}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { __extends } from "tslib";
|
|
6
6
|
import { EShapePointsStyle } from "../e-shape-points-style";
|
|
7
|
-
import {
|
|
7
|
+
import { buildLineUv, buildLineVertexStepAndIndex, toLineIndexCount, toLinePointCount, toLineVertexCount } from "./build-line";
|
|
8
8
|
import { BuilderFlag } from "./builder";
|
|
9
9
|
import { BuilderBase } from "./builder-base";
|
|
10
10
|
import { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from "./builders";
|
|
@@ -18,12 +18,7 @@ var BuilderLine = /** @class */ (function (_super) {
|
|
|
18
18
|
_this.length = 1;
|
|
19
19
|
return _this;
|
|
20
20
|
}
|
|
21
|
-
BuilderLine.prototype.init = function () {
|
|
22
|
-
var buffer = this.buffer;
|
|
23
|
-
buffer.updateIndices();
|
|
24
|
-
buildLineIndex(buffer.indices, this.vertexOffset, this.indexOffset, this.indexCount);
|
|
25
|
-
this.inited |= BuilderFlag.INDEX;
|
|
26
|
-
};
|
|
21
|
+
BuilderLine.prototype.init = function () { };
|
|
27
22
|
BuilderLine.prototype.reinit = function (buffer, shape, vertexOffset, indexOffset) {
|
|
28
23
|
var pointCount = toLinePointCount(shape.points);
|
|
29
24
|
var vertexCount = toLineVertexCount(pointCount, true);
|
|
@@ -57,11 +52,11 @@ var BuilderLine = /** @class */ (function (_super) {
|
|
|
57
52
|
};
|
|
58
53
|
BuilderLine.prototype.update = function (shape) {
|
|
59
54
|
var buffer = this.buffer;
|
|
60
|
-
this.
|
|
55
|
+
this.updateLineVertexStepAndIndex(buffer, shape);
|
|
61
56
|
this.updateColor(buffer, shape);
|
|
62
57
|
this.updateLineUv(buffer, shape);
|
|
63
58
|
};
|
|
64
|
-
BuilderLine.prototype.
|
|
59
|
+
BuilderLine.prototype.updateLineVertexStepAndIndex = function (buffer, shape) {
|
|
65
60
|
var points = shape.points;
|
|
66
61
|
if (points) {
|
|
67
62
|
var pointId = points.id;
|
|
@@ -77,9 +72,9 @@ var BuilderLine = /** @class */ (function (_super) {
|
|
|
77
72
|
var isStrokeWidthChanged = this.strokeWidth !== strokeWidth || this.strokeStyle !== strokeStyle;
|
|
78
73
|
var transformLocalId = toTransformLocalId(shape);
|
|
79
74
|
var isTransformChanged = this.transformLocalId !== transformLocalId;
|
|
80
|
-
var isNotInited = !(this.inited & BuilderFlag.
|
|
75
|
+
var isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_AND_INDEX);
|
|
81
76
|
if (isNotInited || isPointChanged || isTransformChanged || isStrokeWidthChanged) {
|
|
82
|
-
this.inited |= BuilderFlag.
|
|
77
|
+
this.inited |= BuilderFlag.VERTEX_STEP_AND_INDEX;
|
|
83
78
|
this.pointId = pointId;
|
|
84
79
|
this.pointCount = pointCount;
|
|
85
80
|
this.pointsClosed = pointsClosed;
|
|
@@ -92,7 +87,8 @@ var BuilderLine = /** @class */ (function (_super) {
|
|
|
92
87
|
}
|
|
93
88
|
buffer.updateVertices();
|
|
94
89
|
buffer.updateSteps();
|
|
95
|
-
|
|
90
|
+
buffer.updateIndices();
|
|
91
|
+
this.length = buildLineVertexStepAndIndex(buffer.vertices, buffer.steps, buffer.indices, this.indexOffset, this.indexCount, this.vertexOffset, this.vertexCount, this.pointCount, this.pointsClosed, formatted.values, formatted.segments, strokeWidth, strokeStyle, shape.transform.internalTransform);
|
|
96
92
|
}
|
|
97
93
|
}
|
|
98
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport {\n\tbuildLineIndex,\n\tbuildLineUv,\n\tbuildLineVertexStep,\n\ttoLineIndexCount,\n\ttoLinePointCount,\n\ttoLineVertexCount\n} from \"./build-line\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderLine extends BuilderBase {\n\tprotected pointCount: number;\n\tprotected pointId: number;\n\tprotected pointsClosed: boolean;\n\tprotected length: number;\n\n\tconstructor(\n\t\tbuffer: BuilderBuffer,\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tsuper(buffer, vertexOffset, indexOffset, vertexCount, indexCount);\n\t\tthis.pointId = -1;\n\t\tthis.pointCount = 0;\n\t\tthis.pointsClosed = false;\n\t\tthis.length = 1;\n\t}\n\n\toverride init(): void {\n\t\tconst buffer = this.buffer;\n\t\tbuffer.updateIndices();\n\t\tbuildLineIndex(buffer.indices, this.vertexOffset, this.indexOffset, this.indexCount);\n\t\tthis.inited |= BuilderFlag.INDEX;\n\t}\n\n\toverride reinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tconst pointCount = toLinePointCount(shape.points);\n\t\tconst vertexCount = toLineVertexCount(pointCount, true);\n\t\tconst indexCount = toLineIndexCount(pointCount, true);\n\t\tif (\n\t\t\tthis.buffer !== buffer ||\n\t\t\tthis.vertexOffset !== vertexOffset ||\n\t\t\tthis.indexOffset !== indexOffset ||\n\t\t\tthis.vertexCount !== vertexCount ||\n\t\t\tthis.indexCount !== indexCount\n\t\t) {\n\t\t\tif (buffer.check(vertexOffset, indexOffset, vertexCount, indexCount)) {\n\t\t\t\tthis.inited = BuilderFlag.NONE;\n\t\t\t\tthis.buffer = buffer;\n\t\t\t\tthis.vertexOffset = vertexOffset;\n\t\t\t\tthis.indexOffset = indexOffset;\n\t\t\t\tthis.vertexCount = vertexCount;\n\t\t\t\tthis.indexCount = indexCount;\n\t\t\t\tthis.init();\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\toverride isCompatible(shape: EShape): boolean {\n\t\tconst vcount = toLineVertexCount(toLinePointCount(shape.points), true);\n\t\treturn vcount === this.vertexCount;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tconst buffer = this.buffer;\n\t\tthis.updateLineVertexStep(buffer, shape);\n\t\tthis.updateColor(buffer, shape);\n\t\tthis.updateLineUv(buffer, shape);\n\t}\n\n\tprotected updateLineVertexStep(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst points = shape.points;\n\t\tif (points) {\n\t\t\tconst pointId = points.id;\n\t\t\tconst formatted = points.formatted;\n\t\t\tconst pointCount = formatted.length;\n\t\t\tconst pointsClosed = !!(formatted.style & EShapePointsStyle.CLOSED);\n\t\t\tconst isPointChanged =\n\t\t\t\tpointId !== this.pointId ||\n\t\t\t\tpointCount !== this.pointCount ||\n\t\t\t\tpointsClosed !== this.pointsClosed;\n\n\t\t\tconst stroke = shape.stroke;\n\t\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\t\tconst strokeStyle = stroke.style;\n\t\t\tconst isStrokeWidthChanged =\n\t\t\t\tthis.strokeWidth !== strokeWidth || this.strokeStyle !== strokeStyle;\n\n\t\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_AND_STEP);\n\n\t\t\tif (isNotInited || isPointChanged || isTransformChanged || isStrokeWidthChanged) {\n\t\t\t\tthis.inited |= BuilderFlag.VERTEX_AND_STEP;\n\t\t\t\tthis.pointId = pointId;\n\t\t\t\tthis.pointCount = pointCount;\n\t\t\t\tthis.pointsClosed = pointsClosed;\n\t\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\t\tthis.transformLocalId = transformLocalId;\n\n\t\t\t\tif (isPointChanged) {\n\t\t\t\t\t// Invalidate the UV buffer\n\t\t\t\t\tthis.inited &= ~BuilderFlag.UV;\n\t\t\t\t}\n\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tthis.length = buildLineVertexStep(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tthis.vertexCount,\n\t\t\t\t\tthis.pointCount,\n\t\t\t\t\tthis.pointsClosed,\n\t\t\t\t\tformatted.values,\n\t\t\t\t\tformatted.segments,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateLineUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tbuildLineUv(\n\t\t\t\tbuffer.uvs,\n\t\t\t\tbuffer.steps,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\ttoTextureUvs(texture),\n\t\t\t\tthis.length\n\t\t\t);\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builder-line.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder-line.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapePointsStyle } from \"../e-shape-points-style\";\nimport {\n\tbuildLineUv,\n\tbuildLineVertexStepAndIndex,\n\ttoLineIndexCount,\n\ttoLinePointCount,\n\ttoLineVertexCount\n} from \"./build-line\";\nimport { BuilderBuffer, BuilderFlag } from \"./builder\";\nimport { BuilderBase } from \"./builder-base\";\nimport { toTexture, toTextureTransformId, toTextureUvs, toTransformLocalId } from \"./builders\";\n\nexport class BuilderLine extends BuilderBase {\n\tprotected pointCount: number;\n\tprotected pointId: number;\n\tprotected pointsClosed: boolean;\n\tprotected length: number;\n\n\tconstructor(\n\t\tbuffer: BuilderBuffer,\n\t\tvertexOffset: number,\n\t\tindexOffset: number,\n\t\tvertexCount: number,\n\t\tindexCount: number\n\t) {\n\t\tsuper(buffer, vertexOffset, indexOffset, vertexCount, indexCount);\n\t\tthis.pointId = -1;\n\t\tthis.pointCount = 0;\n\t\tthis.pointsClosed = false;\n\t\tthis.length = 1;\n\t}\n\n\toverride init(): void {}\n\n\toverride reinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tconst pointCount = toLinePointCount(shape.points);\n\t\tconst vertexCount = toLineVertexCount(pointCount, true);\n\t\tconst indexCount = toLineIndexCount(pointCount, true);\n\t\tif (\n\t\t\tthis.buffer !== buffer ||\n\t\t\tthis.vertexOffset !== vertexOffset ||\n\t\t\tthis.indexOffset !== indexOffset ||\n\t\t\tthis.vertexCount !== vertexCount ||\n\t\t\tthis.indexCount !== indexCount\n\t\t) {\n\t\t\tif (buffer.check(vertexOffset, indexOffset, vertexCount, indexCount)) {\n\t\t\t\tthis.inited = BuilderFlag.NONE;\n\t\t\t\tthis.buffer = buffer;\n\t\t\t\tthis.vertexOffset = vertexOffset;\n\t\t\t\tthis.indexOffset = indexOffset;\n\t\t\t\tthis.vertexCount = vertexCount;\n\t\t\t\tthis.indexCount = indexCount;\n\t\t\t\tthis.init();\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\toverride isCompatible(shape: EShape): boolean {\n\t\tconst vcount = toLineVertexCount(toLinePointCount(shape.points), true);\n\t\treturn vcount === this.vertexCount;\n\t}\n\n\toverride update(shape: EShape): void {\n\t\tconst buffer = this.buffer;\n\t\tthis.updateLineVertexStepAndIndex(buffer, shape);\n\t\tthis.updateColor(buffer, shape);\n\t\tthis.updateLineUv(buffer, shape);\n\t}\n\n\tprotected updateLineVertexStepAndIndex(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst points = shape.points;\n\t\tif (points) {\n\t\t\tconst pointId = points.id;\n\t\t\tconst formatted = points.formatted;\n\t\t\tconst pointCount = formatted.length;\n\t\t\tconst pointsClosed = !!(formatted.style & EShapePointsStyle.CLOSED);\n\t\t\tconst isPointChanged =\n\t\t\t\tpointId !== this.pointId ||\n\t\t\t\tpointCount !== this.pointCount ||\n\t\t\t\tpointsClosed !== this.pointsClosed;\n\n\t\t\tconst stroke = shape.stroke;\n\t\t\tconst strokeWidth = stroke.enable ? stroke.width : 0;\n\t\t\tconst strokeStyle = stroke.style;\n\t\t\tconst isStrokeWidthChanged =\n\t\t\t\tthis.strokeWidth !== strokeWidth || this.strokeStyle !== strokeStyle;\n\n\t\t\tconst transformLocalId = toTransformLocalId(shape);\n\t\t\tconst isTransformChanged = this.transformLocalId !== transformLocalId;\n\n\t\t\tconst isNotInited = !(this.inited & BuilderFlag.VERTEX_STEP_AND_INDEX);\n\n\t\t\tif (isNotInited || isPointChanged || isTransformChanged || isStrokeWidthChanged) {\n\t\t\t\tthis.inited |= BuilderFlag.VERTEX_STEP_AND_INDEX;\n\t\t\t\tthis.pointId = pointId;\n\t\t\t\tthis.pointCount = pointCount;\n\t\t\t\tthis.pointsClosed = pointsClosed;\n\t\t\t\tthis.strokeWidth = strokeWidth;\n\t\t\t\tthis.strokeStyle = strokeStyle;\n\t\t\t\tthis.transformLocalId = transformLocalId;\n\n\t\t\t\tif (isPointChanged) {\n\t\t\t\t\t// Invalidate the UV buffer\n\t\t\t\t\tthis.inited &= ~BuilderFlag.UV;\n\t\t\t\t}\n\n\t\t\t\tbuffer.updateVertices();\n\t\t\t\tbuffer.updateSteps();\n\t\t\t\tbuffer.updateIndices();\n\t\t\t\tthis.length = buildLineVertexStepAndIndex(\n\t\t\t\t\tbuffer.vertices,\n\t\t\t\t\tbuffer.steps,\n\t\t\t\t\tbuffer.indices,\n\t\t\t\t\tthis.indexOffset,\n\t\t\t\t\tthis.indexCount,\n\t\t\t\t\tthis.vertexOffset,\n\t\t\t\t\tthis.vertexCount,\n\t\t\t\t\tthis.pointCount,\n\t\t\t\t\tthis.pointsClosed,\n\t\t\t\t\tformatted.values,\n\t\t\t\t\tformatted.segments,\n\t\t\t\t\tstrokeWidth,\n\t\t\t\t\tstrokeStyle,\n\t\t\t\t\tshape.transform.internalTransform\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected updateLineUv(buffer: BuilderBuffer, shape: EShape): void {\n\t\tconst texture = toTexture(shape);\n\t\tconst textureTransformId = toTextureTransformId(texture);\n\t\tconst isNotInited = !(this.inited & BuilderFlag.UV);\n\t\tif (\n\t\t\tisNotInited ||\n\t\t\ttexture !== this.texture ||\n\t\t\ttextureTransformId !== this.textureTransformId\n\t\t) {\n\t\t\tthis.inited |= BuilderFlag.UV;\n\t\t\tthis.texture = texture;\n\t\t\tthis.textureTransformId = textureTransformId;\n\n\t\t\tbuffer.updateUvs();\n\t\t\tbuildLineUv(\n\t\t\t\tbuffer.uvs,\n\t\t\t\tbuffer.steps,\n\t\t\t\tthis.vertexOffset,\n\t\t\t\tthis.vertexCount,\n\t\t\t\ttoTextureUvs(texture),\n\t\t\t\tthis.length\n\t\t\t);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -10,6 +10,7 @@ var UV = 8;
|
|
|
10
10
|
var INDEX = 16;
|
|
11
11
|
var VERTEX_AND_STEP = VERTEX | STEP;
|
|
12
12
|
var VERTEX_STEP_AND_UV = VERTEX_AND_STEP | UV;
|
|
13
|
+
var VERTEX_STEP_AND_INDEX = VERTEX | STEP | INDEX;
|
|
13
14
|
var VERTEX_STEP_UV_AND_INDEX = VERTEX_STEP_AND_UV | INDEX;
|
|
14
15
|
var ALL = VERTEX | STEP | COLOR | UV | INDEX;
|
|
15
16
|
export var BuilderFlag = {
|
|
@@ -21,6 +22,7 @@ export var BuilderFlag = {
|
|
|
21
22
|
INDEX: INDEX,
|
|
22
23
|
VERTEX_AND_STEP: VERTEX_AND_STEP,
|
|
23
24
|
VERTEX_STEP_AND_UV: VERTEX_STEP_AND_UV,
|
|
25
|
+
VERTEX_STEP_AND_INDEX: VERTEX_STEP_AND_INDEX,
|
|
24
26
|
VERTEX_STEP_UV_AND_INDEX: VERTEX_STEP_UV_AND_INDEX,
|
|
25
27
|
ALL: ALL
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,IAAM,IAAI,GAAG,CAAC,CAAC;AACf,IAAM,MAAM,GAAG,CAAC,CAAC;AACjB,IAAM,IAAI,GAAG,CAAC,CAAC;AACf,IAAM,KAAK,GAAG,CAAC,CAAC;AAChB,IAAM,EAAE,GAAG,CAAC,CAAC;AACb,IAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,IAAM,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC;AACtC,IAAM,kBAAkB,GAAG,eAAe,GAAG,EAAE,CAAC;AAChD,IAAM,wBAAwB,GAAG,kBAAkB,GAAG,KAAK,CAAC;AAE5D,IAAM,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC;AAE/C,MAAM,CAAC,IAAM,WAAW,GAAG;IAC1B,IAAI,MAAA;IACJ,MAAM,QAAA;IACN,IAAI,MAAA;IACJ,KAAK,OAAA;IACL,EAAE,IAAA;IACF,KAAK,OAAA;IAEL,eAAe,iBAAA;IACf,kBAAkB,oBAAA;IAClB,wBAAwB,0BAAA;IAExB,GAAG,KAAA;CACM,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\n\nconst NONE = 0;\nconst VERTEX = 1;\nconst STEP = 2;\nconst COLOR = 4;\nconst UV = 8;\nconst INDEX = 16;\n\nconst VERTEX_AND_STEP = VERTEX | STEP;\nconst VERTEX_STEP_AND_UV = VERTEX_AND_STEP | UV;\nconst VERTEX_STEP_UV_AND_INDEX = VERTEX_STEP_AND_UV | INDEX;\n\nconst ALL = VERTEX | STEP | COLOR | UV | INDEX;\n\nexport const BuilderFlag = {\n\tNONE,\n\tVERTEX,\n\tSTEP,\n\tCOLOR,\n\tUV,\n\tINDEX,\n\n\tVERTEX_AND_STEP,\n\tVERTEX_STEP_AND_UV,\n\tVERTEX_STEP_UV_AND_INDEX,\n\n\tALL\n} as const;\n\nexport type BuilderFlag = number;\n\nexport interface BuilderBuffer {\n\treadonly vertices: Float32Array;\n\treadonly steps: Float32Array;\n\treadonly colors: Float32Array;\n\treadonly uvs: Float32Array;\n\treadonly indices: Uint16Array | Uint32Array;\n\n\tcheck(vindex: number, ioffset: number, vcount: number, icount: number): boolean;\n\n\tupdateVertices(): void;\n\tupdateSteps(): void;\n\tupdateColors(): void;\n\tupdateUvs(): void;\n\tupdateIndices(): void;\n}\n\nexport interface Builder {\n\treadonly buffer: BuilderBuffer;\n\treadonly vertexOffset: number;\n\treadonly indexOffset: number;\n\treadonly vertexCount: number;\n\treadonly indexCount: number;\n\n\tinit(): void;\n\treinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean;\n\tisCompatible(shape: EShape): boolean;\n\tupdate(shape: EShape): void;\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,IAAM,IAAI,GAAG,CAAC,CAAC;AACf,IAAM,MAAM,GAAG,CAAC,CAAC;AACjB,IAAM,IAAI,GAAG,CAAC,CAAC;AACf,IAAM,KAAK,GAAG,CAAC,CAAC;AAChB,IAAM,EAAE,GAAG,CAAC,CAAC;AACb,IAAM,KAAK,GAAG,EAAE,CAAC;AAEjB,IAAM,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC;AACtC,IAAM,kBAAkB,GAAG,eAAe,GAAG,EAAE,CAAC;AAChD,IAAM,qBAAqB,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AACpD,IAAM,wBAAwB,GAAG,kBAAkB,GAAG,KAAK,CAAC;AAE5D,IAAM,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC;AAE/C,MAAM,CAAC,IAAM,WAAW,GAAG;IAC1B,IAAI,MAAA;IACJ,MAAM,QAAA;IACN,IAAI,MAAA;IACJ,KAAK,OAAA;IACL,EAAE,IAAA;IACF,KAAK,OAAA;IAEL,eAAe,iBAAA;IACf,kBAAkB,oBAAA;IAClB,qBAAqB,uBAAA;IACrB,wBAAwB,0BAAA;IAExB,GAAG,KAAA;CACM,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapeBufferUnitBuilder } from \"../e-shape-buffer-unit-builder\";\n\nconst NONE = 0;\nconst VERTEX = 1;\nconst STEP = 2;\nconst COLOR = 4;\nconst UV = 8;\nconst INDEX = 16;\n\nconst VERTEX_AND_STEP = VERTEX | STEP;\nconst VERTEX_STEP_AND_UV = VERTEX_AND_STEP | UV;\nconst VERTEX_STEP_AND_INDEX = VERTEX | STEP | INDEX;\nconst VERTEX_STEP_UV_AND_INDEX = VERTEX_STEP_AND_UV | INDEX;\n\nconst ALL = VERTEX | STEP | COLOR | UV | INDEX;\n\nexport const BuilderFlag = {\n\tNONE,\n\tVERTEX,\n\tSTEP,\n\tCOLOR,\n\tUV,\n\tINDEX,\n\n\tVERTEX_AND_STEP,\n\tVERTEX_STEP_AND_UV,\n\tVERTEX_STEP_AND_INDEX,\n\tVERTEX_STEP_UV_AND_INDEX,\n\n\tALL\n} as const;\n\nexport type BuilderFlag = number;\n\nexport interface BuilderBuffer {\n\treadonly vertices: Float32Array;\n\treadonly steps: Float32Array;\n\treadonly colors: Float32Array;\n\treadonly uvs: Float32Array;\n\treadonly indices: Uint16Array | Uint32Array;\n\n\tcheck(vindex: number, ioffset: number, vcount: number, icount: number): boolean;\n\n\tupdateVertices(): void;\n\tupdateSteps(): void;\n\tupdateColors(): void;\n\tupdateUvs(): void;\n\tupdateIndices(): void;\n}\n\nexport interface Builder {\n\treadonly buffer: BuilderBuffer;\n\treadonly vertexOffset: number;\n\treadonly indexOffset: number;\n\treadonly vertexCount: number;\n\treadonly indexCount: number;\n\n\tinit(): void;\n\treinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean;\n\tisCompatible(shape: EShape): boolean;\n\tupdate(shape: EShape): void;\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void;\n}\n"]}
|
|
@@ -19,6 +19,12 @@ var DThemeDarkDiagramCanvasBase = /** @class */ (function (_super) {
|
|
|
19
19
|
DThemeDarkDiagramCanvasBase.prototype.getLocalBoundsLimit = function () {
|
|
20
20
|
return 0;
|
|
21
21
|
};
|
|
22
|
+
DThemeDarkDiagramCanvasBase.prototype.getAntialiasWeight = function () {
|
|
23
|
+
return 1;
|
|
24
|
+
};
|
|
25
|
+
DThemeDarkDiagramCanvasBase.prototype.getAntialiasWeightLowerBound = function () {
|
|
26
|
+
return 1e-5;
|
|
27
|
+
};
|
|
22
28
|
return DThemeDarkDiagramCanvasBase;
|
|
23
29
|
}(DThemeDarkCanvas));
|
|
24
30
|
export { DThemeDarkDiagramCanvasBase };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-theme-dark-diagram-canvas-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/dark/d-theme-dark-diagram-canvas-base.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;IACS,+CAAgB;IADzB;;
|
|
1
|
+
{"version":3,"file":"d-theme-dark-diagram-canvas-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/dark/d-theme-dark-diagram-canvas-base.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;IACS,+CAAgB;IADzB;;IAuBA,CAAC;IAnBA,+CAAS,GAAT;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uDAAiB,GAAjB;QACC,OAAO,mBAAmB,CAAC,gBAAgB,CAAC;IAC7C,CAAC;IAED,yDAAmB,GAAnB;QACC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,wDAAkB,GAAlB;QACC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,kEAA4B,GAA5B;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IACF,kCAAC;AAAD,CAAC,AAvBD,CACS,gBAAgB,GAsBxB","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DThemeDiagramCanvasBase } from \"../../d-diagram-canvas-base\";\nimport { DThemeDarkCanvas } from \"./d-theme-dark-canvas\";\nimport { DThemeDarkConstants } from \"./d-theme-dark-constants\";\n\nexport class DThemeDarkDiagramCanvasBase\n\textends DThemeDarkCanvas\n\timplements DThemeDiagramCanvasBase\n{\n\tisAmbient(): boolean {\n\t\treturn true;\n\t}\n\n\tgetBackgroundBase(): number | null {\n\t\treturn DThemeDarkConstants.BACKGROUND_COLOR;\n\t}\n\n\tgetLocalBoundsLimit(): number {\n\t\treturn 0;\n\t}\n\n\tgetAntialiasWeight(): number {\n\t\treturn 1;\n\t}\n\n\tgetAntialiasWeightLowerBound(): number {\n\t\treturn 1e-5;\n\t}\n}\n"]}
|
|
@@ -18,6 +18,12 @@ var DThemeWhiteDiagramCanvasBase = /** @class */ (function (_super) {
|
|
|
18
18
|
DThemeWhiteDiagramCanvasBase.prototype.getLocalBoundsLimit = function () {
|
|
19
19
|
return 0;
|
|
20
20
|
};
|
|
21
|
+
DThemeWhiteDiagramCanvasBase.prototype.getAntialiasWeight = function () {
|
|
22
|
+
return 1;
|
|
23
|
+
};
|
|
24
|
+
DThemeWhiteDiagramCanvasBase.prototype.getAntialiasWeightLowerBound = function () {
|
|
25
|
+
return 1e-5;
|
|
26
|
+
};
|
|
21
27
|
return DThemeWhiteDiagramCanvasBase;
|
|
22
28
|
}(DThemeWhiteCanvas));
|
|
23
29
|
export { DThemeWhiteDiagramCanvasBase };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-theme-white-diagram-canvas-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/white/d-theme-white-diagram-canvas-base.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;IACS,gDAAiB;IAD1B;;
|
|
1
|
+
{"version":3,"file":"d-theme-white-diagram-canvas-base.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/theme/white/d-theme-white-diagram-canvas-base.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;IACS,gDAAiB;IAD1B;;IAuBA,CAAC;IAnBA,gDAAS,GAAT;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,wDAAiB,GAAjB;QACC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,0DAAmB,GAAnB;QACC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,yDAAkB,GAAlB;QACC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,mEAA4B,GAA5B;QACC,OAAO,IAAI,CAAC;IACb,CAAC;IACF,mCAAC;AAAD,CAAC,AAvBD,CACS,iBAAiB,GAsBzB","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DThemeDiagramCanvasBase } from \"../../d-diagram-canvas-base\";\nimport { DThemeWhiteCanvas } from \"./d-theme-white-canvas\";\n\nexport class DThemeWhiteDiagramCanvasBase\n\textends DThemeWhiteCanvas\n\timplements DThemeDiagramCanvasBase\n{\n\tisAmbient(): boolean {\n\t\treturn true;\n\t}\n\n\tgetBackgroundBase(): number | null {\n\t\treturn 0xeeeeee;\n\t}\n\n\tgetLocalBoundsLimit(): number {\n\t\treturn 0;\n\t}\n\n\tgetAntialiasWeight(): number {\n\t\treturn 1;\n\t}\n\n\tgetAntialiasWeightLowerBound(): number {\n\t\treturn 1e-5;\n\t}\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.462.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -7295,6 +7295,12 @@
|
|
|
7295
7295
|
DThemeDarkDiagramCanvasBase.prototype.getLocalBoundsLimit = function () {
|
|
7296
7296
|
return 0;
|
|
7297
7297
|
};
|
|
7298
|
+
DThemeDarkDiagramCanvasBase.prototype.getAntialiasWeight = function () {
|
|
7299
|
+
return 1;
|
|
7300
|
+
};
|
|
7301
|
+
DThemeDarkDiagramCanvasBase.prototype.getAntialiasWeightLowerBound = function () {
|
|
7302
|
+
return 1e-5;
|
|
7303
|
+
};
|
|
7298
7304
|
return DThemeDarkDiagramCanvasBase;
|
|
7299
7305
|
}(DThemeDarkCanvas));
|
|
7300
7306
|
|