@wcardinal/wcardinal-ui 0.403.0 → 0.405.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/wcardinal/ui/d-base-overflow-mask-simple.d.ts +3 -0
- package/dist/types/wcardinal/ui/d-base-overflow-mask.d.ts +6 -0
- package/dist/types/wcardinal/ui/shape/e-shape-buffer.d.ts +0 -3
- package/dist/types/wcardinal/ui/shape/e-shape-points-formatted.d.ts +2 -0
- package/dist/types/wcardinal/ui/shape/e-shape-points.d.ts +2 -0
- package/dist/types/wcardinal/ui/shape/e-shape-text.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/e-shape-uploaded.d.ts +5 -5
- package/dist/types/wcardinal/ui/shape/variant/build-line.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-bar.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-base.d.ts +9 -7
- package/dist/types/wcardinal/ui/shape/variant/builder-circle.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-image-sdf.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-label.d.ts +10 -9
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-any.d.ts +4 -1
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-circles.d.ts +2 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangle-roundeds.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-rectangles.d.ts +2 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangle-roundeds.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-line-of-triangles.d.ts +2 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-line.d.ts +4 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-marker-circle.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-marker-rectangle.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-marker-triangle.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-null.d.ts +10 -9
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-pivoted.d.ts +3 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle-rounded.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-rectangle.d.ts +3 -2
- package/dist/types/wcardinal/ui/shape/variant/builder-semicircle.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-text.d.ts +9 -7
- package/dist/types/wcardinal/ui/shape/variant/builder-triangle-rounded.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/builder-triangle.d.ts +3 -2
- package/dist/types/wcardinal/ui/shape/variant/builder.d.ts +5 -2
- package/dist/types/wcardinal/ui/shape/variant/create-line-of-any-uploaded.d.ts +2 -2
- package/dist/types/wcardinal/ui/shape/variant/e-shape-bar-points.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-group-points.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-line-points.d.ts +3 -0
- package/dist/types/wcardinal/ui/shape/variant/e-shape-text-impl.d.ts +5 -0
- package/dist/wcardinal/ui/d-base-overflow-mask-simple.js +9 -0
- package/dist/wcardinal/ui/d-base-overflow-mask-simple.js.map +1 -1
- package/dist/wcardinal/ui/d-base-overflow-mask.js +19 -2
- package/dist/wcardinal/ui/d-base-overflow-mask.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-buffer.js +11 -27
- package/dist/wcardinal/ui/shape/e-shape-buffer.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-points-formatted.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-uploaded.js +22 -8
- package/dist/wcardinal/ui/shape/e-shape-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-line-of-any.js +1 -1
- package/dist/wcardinal/ui/shape/variant/build-line-of-any.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-line.js +6 -5
- package/dist/wcardinal/ui/shape/variant/build-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-text.js +1 -1
- package/dist/wcardinal/ui/shape/variant/build-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-bar.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-bar.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-base.js +22 -1
- package/dist/wcardinal/ui/shape/variant/builder-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-circle.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-circle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-image-sdf.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-label.js +13 -6
- package/dist/wcardinal/ui/shape/variant/builder-label.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line-of-any.js +36 -5
- 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 +4 -2
- 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 +6 -4
- 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 +4 -2
- 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 +6 -4
- 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 +4 -2
- package/dist/wcardinal/ui/shape/variant/builder-line-of-triangles.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-line.js +34 -5
- package/dist/wcardinal/ui/shape/variant/builder-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-marker-circle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-marker-rectangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-marker-triangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-null.js +11 -4
- package/dist/wcardinal/ui/shape/variant/builder-null.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js +7 -5
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-pivoted.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js +7 -5
- package/dist/wcardinal/ui/shape/variant/builder-rectangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-rectangle.js +7 -5
- package/dist/wcardinal/ui/shape/variant/builder-rectangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-semicircle.js +6 -4
- package/dist/wcardinal/ui/shape/variant/builder-semicircle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-text.js +36 -4
- package/dist/wcardinal/ui/shape/variant/builder-text.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js +7 -5
- package/dist/wcardinal/ui/shape/variant/builder-triangle-rounded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder-triangle.js +7 -5
- package/dist/wcardinal/ui/shape/variant/builder-triangle.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/builder.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-bar-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-bar-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-circle-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-circle-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-group-uploaded.js +1 -1
- package/dist/wcardinal/ui/shape/variant/create-group-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-image-sdf-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-image-sdf-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-label-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-label-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-line-of-any-uploaded.js +4 -4
- package/dist/wcardinal/ui/shape/variant/create-line-of-any-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-line-uploaded.js +16 -16
- package/dist/wcardinal/ui/shape/variant/create-line-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-null-uploaded.js +1 -1
- package/dist/wcardinal/ui/shape/variant/create-null-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-rectangle-pivoted-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-rectangle-pivoted-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-rectangle-rounded-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-rectangle-rounded-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-rectangle-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-rectangle-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-semicircle-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-semicircle-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-triangle-rounded-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-triangle-rounded-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/create-triangle-uploaded.js +2 -2
- package/dist/wcardinal/ui/shape/variant/create-triangle-uploaded.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js +7 -0
- package/dist/wcardinal/ui/shape/variant/e-shape-bar-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-group-points.js +14 -0
- package/dist/wcardinal/ui/shape/variant/e-shape-group-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.js +15 -2
- package/dist/wcardinal/ui/shape/variant/e-shape-line-of-any-points-impl.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js +19 -3
- package/dist/wcardinal/ui/shape/variant/e-shape-line-points.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js +57 -24
- package/dist/wcardinal/ui/shape/variant/e-shape-text-impl.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +469 -200
- package/dist/wcardinal-ui.js +469 -200
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-base-overflow-mask-simple.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-overflow-mask-simple.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAY,MAAM,SAAS,CAAC;AAI7C;IAA6C,2CAAQ;
|
|
1
|
+
{"version":3,"file":"d-base-overflow-mask-simple.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-overflow-mask-simple.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAY,MAAM,SAAS,CAAC;AAI7C;IAA6C,2CAAQ;IAKpD,iCAAY,MAAa;QAAzB,YACC,iBAAO,SAMP;QALA,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,KAAK,CAAC;QACzB,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,MAAM,CAAC;;IAC5B,CAAC;IAED,wCAAM,GAAN,UAAO,QAAkB;QACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,iBAAM,MAAM,YAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,0CAAQ,GAAR,UAAS,IAAW,EAAE,KAAa,EAAE,MAAc;QAClD,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC5E,OAAO;SACP;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;IACF,8BAAC;AAAD,CAAC,AAhCD,CAA6C,QAAQ,GAgCpD","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Graphics, Renderer } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DBaseReflowable } from \"./d-base-reflowable\";\n\nexport class DBaseOverflowMaskSimple extends Graphics implements DBaseReflowable {\n\tprotected _isInitialized: boolean;\n\tprotected _width: number;\n\tprotected _height: number;\n\n\tconstructor(parent: DBase) {\n\t\tsuper();\n\t\tthis.parent = parent;\n\n\t\tthis._isInitialized = false;\n\t\tthis._width = this.width;\n\t\tthis._height = this.height;\n\t}\n\n\trender(renderer: Renderer): void {\n\t\tthis.updateTransform();\n\t\tsuper.render(renderer);\n\t}\n\n\tonReflow(base: DBase, width: number, height: number): void {\n\t\tif (this._isInitialized && this._width === width && this._height === height) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isInitialized = true;\n\t\tthis._width = width;\n\t\tthis._height = height;\n\n\t\tthis.clear();\n\t\tthis.beginFill(0xffffff, 1);\n\t\tthis.drawRect(0, 0, width, height);\n\t\tthis.endFill();\n\t}\n}\n"]}
|
|
@@ -10,6 +10,11 @@ var DBaseOverflowMask = /** @class */ (function (_super) {
|
|
|
10
10
|
function DBaseOverflowMask(parent) {
|
|
11
11
|
var _this = _super.call(this) || this;
|
|
12
12
|
_this.parent = parent;
|
|
13
|
+
_this._isInitialized = false;
|
|
14
|
+
_this._width = 0;
|
|
15
|
+
_this._height = 0;
|
|
16
|
+
_this._cornderRadius = 0;
|
|
17
|
+
_this._cornerMask = DCornerMask.NONE;
|
|
13
18
|
return _this;
|
|
14
19
|
}
|
|
15
20
|
DBaseOverflowMask.prototype.render = function (renderer) {
|
|
@@ -17,11 +22,23 @@ var DBaseOverflowMask = /** @class */ (function (_super) {
|
|
|
17
22
|
_super.prototype.render.call(this, renderer);
|
|
18
23
|
};
|
|
19
24
|
DBaseOverflowMask.prototype.onReflow = function (base, width, height) {
|
|
20
|
-
var x = 0;
|
|
21
|
-
var y = 0;
|
|
22
25
|
var corner = base.corner;
|
|
23
26
|
var cornerRadius = Math.max(0, corner.getRadius() - 0.5);
|
|
24
27
|
var cornerMask = corner.getMask();
|
|
28
|
+
if (this._isInitialized &&
|
|
29
|
+
this._width === width &&
|
|
30
|
+
this._height === height &&
|
|
31
|
+
this._cornderRadius === cornerRadius &&
|
|
32
|
+
this._cornerMask === cornerMask) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this._isInitialized = true;
|
|
36
|
+
this._width = width;
|
|
37
|
+
this._height = height;
|
|
38
|
+
this._cornderRadius = cornerRadius;
|
|
39
|
+
this._cornerMask = cornerMask;
|
|
40
|
+
var x = 0;
|
|
41
|
+
var y = 0;
|
|
25
42
|
var tl = cornerMask & DCornerMask.TOP_LEFT ? 0 : cornerRadius;
|
|
26
43
|
var tr = cornerMask & DCornerMask.TOP_RIGHT ? 0 : cornerRadius;
|
|
27
44
|
var bl = cornerMask & DCornerMask.BOTTOM_LEFT ? 0 : cornerRadius;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"d-base-overflow-mask.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-overflow-mask.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,QAAQ,EAAY,MAAM,SAAS,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;IAAuC,qCAAQ;
|
|
1
|
+
{"version":3,"file":"d-base-overflow-mask.js","sourceRoot":"","sources":["../../../src/main/typescript/wcardinal/ui/d-base-overflow-mask.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Graphics, Renderer } from \"pixi.js\";\nimport { DBase } from \"./d-base\";\nimport { DBaseReflowable } from \"./d-base-reflowable\";\nimport { DCornerMask } from \"./d-corner-mask\";\n\nexport class DBaseOverflowMask extends Graphics implements DBaseReflowable {\n\tprotected _isInitialized: boolean;\n\tprotected _width: number;\n\tprotected _height: number;\n\tprotected _cornderRadius: number;\n\tprotected _cornerMask: DCornerMask;\n\n\tconstructor(parent: DBase) {\n\t\tsuper();\n\t\tthis.parent = parent;\n\n\t\tthis._isInitialized = false;\n\t\tthis._width = 0;\n\t\tthis._height = 0;\n\t\tthis._cornderRadius = 0;\n\t\tthis._cornerMask = DCornerMask.NONE;\n\t}\n\n\trender(renderer: Renderer): void {\n\t\tthis.updateTransform();\n\t\tsuper.render(renderer);\n\t}\n\n\tonReflow(base: DBase, width: number, height: number): void {\n\t\tconst corner = base.corner;\n\t\tconst cornerRadius = Math.max(0, corner.getRadius() - 0.5);\n\t\tconst cornerMask = corner.getMask();\n\t\tif (\n\t\t\tthis._isInitialized &&\n\t\t\tthis._width === width &&\n\t\t\tthis._height === height &&\n\t\t\tthis._cornderRadius === cornerRadius &&\n\t\t\tthis._cornerMask === cornerMask\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isInitialized = true;\n\t\tthis._width = width;\n\t\tthis._height = height;\n\t\tthis._cornderRadius = cornerRadius;\n\t\tthis._cornerMask = cornerMask;\n\n\t\tconst x = 0;\n\t\tconst y = 0;\n\t\tconst tl = cornerMask & DCornerMask.TOP_LEFT ? 0 : cornerRadius;\n\t\tconst tr = cornerMask & DCornerMask.TOP_RIGHT ? 0 : cornerRadius;\n\t\tconst bl = cornerMask & DCornerMask.BOTTOM_LEFT ? 0 : cornerRadius;\n\t\tconst br = cornerMask & DCornerMask.BOTTOM_RIGHT ? 0 : cornerRadius;\n\t\tthis.clear();\n\t\tthis.beginFill(0xffffff, 1);\n\t\tthis.lineStyle(0, 0, 0, 0, false);\n\t\tif (tl <= 0 && tr <= 0 && bl <= 0 && br <= 0) {\n\t\t\tthis.drawRect(x, y, width, height);\n\t\t} else {\n\t\t\tthis.moveTo(x + tl, y);\n\t\t\tif (0 < tr) {\n\t\t\t\tthis.arcTo(x + width, y, x + width, y + height, tr);\n\t\t\t} else {\n\t\t\t\tthis.lineTo(x + width, y);\n\t\t\t}\n\t\t\tif (0 < br) {\n\t\t\t\tthis.arcTo(x + width, y + height, x, y + height, br);\n\t\t\t} else {\n\t\t\t\tthis.lineTo(x + width, y + height);\n\t\t\t}\n\t\t\tif (0 < bl) {\n\t\t\t\tthis.arcTo(x, y + height, x, y, bl);\n\t\t\t} else {\n\t\t\t\tthis.lineTo(x, y + height);\n\t\t\t}\n\t\t\tif (0 < tl) {\n\t\t\t\tthis.arcTo(x, y, x + width, y, tl);\n\t\t\t} else {\n\t\t\t\tthis.lineTo(x, y);\n\t\t\t}\n\t\t}\n\t\tthis.endFill();\n\t}\n}\n"]}
|
|
@@ -134,12 +134,6 @@ var EShapeBuffer = /** @class */ (function () {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
|
-
EShapeBuffer.prototype.isCompatible = function (shape, uploaded, vindex, iindex) {
|
|
138
|
-
return (uploaded.getBuffer() === this &&
|
|
139
|
-
uploaded.getVertexOffset() === vindex &&
|
|
140
|
-
uploaded.getIndexOffset() === iindex &&
|
|
141
|
-
uploaded.isCompatible(shape));
|
|
142
|
-
};
|
|
143
137
|
EShapeBuffer.prototype.update = function (iterator, antialiasWeight, noMoreThanOne) {
|
|
144
138
|
var builder = this._builder;
|
|
145
139
|
builder.begin();
|
|
@@ -148,28 +142,18 @@ var EShapeBuffer = /** @class */ (function () {
|
|
|
148
142
|
var shape = iterator.get();
|
|
149
143
|
for (; shape != null; shape = iterator.next()) {
|
|
150
144
|
var uploaded = shape.uploaded;
|
|
151
|
-
if (uploaded == null || !this.isCompatible(shape, uploaded, vindex, iindex)) {
|
|
152
|
-
break;
|
|
153
|
-
}
|
|
154
|
-
uploaded.update(shape);
|
|
155
|
-
uploaded.buildUnit(builder);
|
|
156
|
-
vindex += uploaded.getVertexCount();
|
|
157
|
-
iindex += uploaded.getIndexCount();
|
|
158
|
-
if (noMoreThanOne) {
|
|
159
|
-
iterator.next();
|
|
160
|
-
builder.end();
|
|
161
|
-
this._vertexCount = vindex;
|
|
162
|
-
this._indexCount = iindex;
|
|
163
|
-
return 0 < builder.units.length;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
for (; shape != null; shape = iterator.next()) {
|
|
167
|
-
var creater = EShapeUploadeds[shape.type] || EShapeUploadeds[EShapeType.GROUP];
|
|
168
|
-
if (creater == null) {
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
var uploaded = creater(this, shape, vindex, iindex, antialiasWeight);
|
|
172
145
|
if (uploaded == null) {
|
|
146
|
+
var creator = EShapeUploadeds[shape.type] || EShapeUploadeds[EShapeType.GROUP];
|
|
147
|
+
if (creator == null) {
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
var newUploaded = creator(this, shape, vindex, iindex, antialiasWeight);
|
|
151
|
+
if (newUploaded == null) {
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
uploaded = newUploaded;
|
|
155
|
+
}
|
|
156
|
+
else if (!uploaded.reinit(this, shape, vindex, iindex)) {
|
|
173
157
|
break;
|
|
174
158
|
}
|
|
175
159
|
uploaded.buildUnit(builder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-buffer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-buffer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer, DRAW_MODES, Geometry, Renderer, Shader, Texture } from \"pixi.js\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeBufferUnitBuilder } from \"./e-shape-buffer-unit-builder\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\nimport { EShapeType } from \"./e-shape-type\";\nimport { EShapeUploaded } from \"./e-shape-uploaded\";\nimport { EShapeUploadeds } from \"./e-shape-uploadeds\";\n\nexport class EShapeBuffer {\n\tvertices: Float32Array;\n\tprotected _vertexCapacity: number;\n\tprotected _vertexCount: number;\n\tprotected _vertexBuffer: Buffer | null;\n\n\tclippings: Float32Array;\n\tprotected _clippingBuffer: Buffer | null;\n\n\tsteps: Float32Array;\n\tprotected _stepBuffer: Buffer | null;\n\n\tcolorFills: Float32Array;\n\tprotected _colorFillBuffer: Buffer | null;\n\n\tcolorStrokes: Float32Array;\n\tprotected _colorStrokeBuffer: Buffer | null;\n\n\tuvs: Float32Array;\n\tprotected _uvBuffer: Buffer | null;\n\n\tindices: Uint16Array | Uint32Array;\n\tprotected _indexCapacity: number;\n\tprotected _indexCount: number;\n\tindexCountRequested: number;\n\tprotected _indexBuffer: Buffer | null;\n\n\tprotected _renderer: Renderer;\n\tprotected _geometry: Geometry | null;\n\n\tprotected _builder: EShapeBufferUnitBuilder;\n\n\tconstructor(ntriangles: number, renderer: Renderer) {\n\t\tconst nindices = ntriangles * 3;\n\t\tconst nvertices = nindices;\n\n\t\tthis.vertices = new Float32Array(nvertices * 2);\n\t\tthis._vertexCapacity = nvertices;\n\t\tthis._vertexCount = 0;\n\t\tthis._vertexBuffer = null;\n\n\t\tthis.clippings = new Float32Array(nvertices * 3);\n\t\tthis._clippingBuffer = null;\n\n\t\tthis.steps = new Float32Array(nvertices * 6);\n\t\tthis._stepBuffer = null;\n\n\t\tthis.colorFills = new Float32Array(nvertices * 4);\n\t\tthis._colorFillBuffer = null;\n\n\t\tthis.colorStrokes = new Float32Array(nvertices * 4);\n\t\tthis._colorStrokeBuffer = null;\n\n\t\tthis.uvs = new Float32Array(nvertices * 2);\n\t\tthis._uvBuffer = null;\n\n\t\tconst isIndicesShort = nvertices <= 65535;\n\t\tthis.indices = isIndicesShort ? new Uint16Array(nindices) : new Uint32Array(nindices);\n\t\tthis._indexCapacity = ntriangles;\n\t\tthis._indexCount = 0;\n\t\tthis.indexCountRequested = 0;\n\t\tthis._indexBuffer = null;\n\n\t\tthis._renderer = renderer;\n\n\t\tthis._builder = new EShapeBufferUnitBuilder();\n\n\t\tthis._geometry = null;\n\t}\n\n\tupdateVertices(): void {\n\t\tconst vertexBuffer = this._vertexBuffer;\n\t\tif (vertexBuffer) {\n\t\t\tvertexBuffer.update();\n\t\t}\n\t}\n\n\tupdateClippings(): void {\n\t\tconst clippingBuffer = this._clippingBuffer;\n\t\tif (clippingBuffer) {\n\t\t\tclippingBuffer.update();\n\t\t}\n\t}\n\n\tupdateSteps(): void {\n\t\tconst stepBuffer = this._stepBuffer;\n\t\tif (stepBuffer) {\n\t\t\tstepBuffer.update();\n\t\t}\n\t}\n\n\tupdateColorFills(): void {\n\t\tconst colorFillBuffer = this._colorFillBuffer;\n\t\tif (colorFillBuffer) {\n\t\t\tcolorFillBuffer.update();\n\t\t}\n\t}\n\n\tupdateColorStrokes(): void {\n\t\tconst colorStrokeBuffer = this._colorStrokeBuffer;\n\t\tif (colorStrokeBuffer) {\n\t\t\tcolorStrokeBuffer.update();\n\t\t}\n\t}\n\n\tupdateUvs(): void {\n\t\tconst uvBuffer = this._uvBuffer;\n\t\tif (uvBuffer) {\n\t\t\tuvBuffer.update();\n\t\t}\n\t}\n\n\tupdateIndices(): void {\n\t\tconst indexBuffer = this._indexBuffer;\n\t\tif (indexBuffer) {\n\t\t\tindexBuffer.update();\n\t\t}\n\t}\n\n\tprotected getGeometry(): Geometry {\n\t\tlet result = this._geometry;\n\t\tif (result == null) {\n\t\t\tthis._vertexBuffer = new Buffer(this.vertices, false, false);\n\t\t\tthis._clippingBuffer = new Buffer(this.clippings, false, false);\n\t\t\tthis._stepBuffer = new Buffer(this.steps, false, false);\n\t\t\tthis._colorFillBuffer = new Buffer(this.colorFills, false, false);\n\t\t\tthis._colorStrokeBuffer = new Buffer(this.colorStrokes, false, false);\n\t\t\tthis._uvBuffer = new Buffer(this.uvs, false, false);\n\t\t\tthis._indexBuffer = new Buffer(this.indices, false, true);\n\n\t\t\tthis._geometry = result = new Geometry()\n\t\t\t\t.addIndex(this._indexBuffer)\n\t\t\t\t.addAttribute(\"aPosition\", this._vertexBuffer, 2)\n\t\t\t\t.addAttribute(\"aClipping\", this._clippingBuffer, 3)\n\t\t\t\t.addAttribute(\"aStep\", this._stepBuffer, 2)\n\t\t\t\t.addAttribute(\"aAntialias\", this._stepBuffer, 4)\n\t\t\t\t.addAttribute(\"aColorFill\", this._colorFillBuffer, 4)\n\t\t\t\t.addAttribute(\"aColorStroke\", this._colorStrokeBuffer, 4)\n\t\t\t\t.addAttribute(\"aUv\", this._uvBuffer, 2);\n\t\t}\n\t\treturn result;\n\t}\n\n\tupload(): void {\n\t\tthis._renderer.geometry.bind(this.getGeometry());\n\t}\n\n\trender(shader: Shader): void {\n\t\tconst renderer = this._renderer;\n\t\trenderer.geometry.bind(this.getGeometry());\n\n\t\tconst units = this._builder.units;\n\t\tconst unitCount = units.length;\n\t\tif (0 < unitCount) {\n\t\t\tconst type = DRAW_MODES.TRIANGLES;\n\n\t\t\tlet unit0 = null;\n\t\t\tlet unit1 = units[0];\n\t\t\tlet ioffset0 = 0;\n\t\t\tlet ioffset1 = unit1.indexOffset * 3;\n\t\t\tlet vcount = 0;\n\t\t\tlet texture = Texture.WHITE;\n\t\t\tfor (let i = 0, imax = unitCount - 1; i < imax; ++i) {\n\t\t\t\tunit0 = unit1;\n\t\t\t\tunit1 = units[i + 1];\n\t\t\t\tioffset0 = ioffset1;\n\t\t\t\tioffset1 = unit1.indexOffset * 3;\n\t\t\t\tvcount = ioffset1 - ioffset0;\n\t\t\t\ttexture = unit0.texture || Texture.WHITE;\n\t\t\t\tif (0 < vcount && texture.valid) {\n\t\t\t\t\tshader.uniforms.sampler = renderer.texture.bind(texture);\n\t\t\t\t\trenderer.geometry.draw(type, vcount, ioffset0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvcount = this._indexCount * 3 - ioffset1;\n\t\t\ttexture = unit1.texture || Texture.WHITE;\n\t\t\tif (0 < vcount && texture.valid) {\n\t\t\t\tshader.uniforms.sampler = renderer.texture.bind(texture);\n\t\t\t\trenderer.geometry.draw(type, vcount, ioffset1);\n\t\t\t}\n\t\t}\n\t}\n\n\tisCompatible(shape: EShape, uploaded: EShapeUploaded, vindex: number, iindex: number): boolean {\n\t\treturn (\n\t\t\tuploaded.getBuffer() === this &&\n\t\t\tuploaded.getVertexOffset() === vindex &&\n\t\t\tuploaded.getIndexOffset() === iindex &&\n\t\t\tuploaded.isCompatible(shape)\n\t\t);\n\t}\n\n\tupdate(\n\t\titerator: EShapeRendererIterator,\n\t\tantialiasWeight: number,\n\t\tnoMoreThanOne: boolean\n\t): boolean {\n\t\tconst builder = this._builder;\n\t\tbuilder.begin();\n\n\t\tlet vindex = 0;\n\t\tlet iindex = 0;\n\t\tlet shape = iterator.get();\n\t\tfor (; shape != null; shape = iterator.next()) {\n\t\t\tconst uploaded = shape.uploaded;\n\t\t\tif (uploaded == null || !this.isCompatible(shape, uploaded, vindex, iindex)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tuploaded.update(shape);\n\t\t\tuploaded.buildUnit(builder);\n\n\t\t\tvindex += uploaded.getVertexCount();\n\t\t\tiindex += uploaded.getIndexCount();\n\n\t\t\tif (noMoreThanOne) {\n\t\t\t\titerator.next();\n\t\t\t\tbuilder.end();\n\t\t\t\tthis._vertexCount = vindex;\n\t\t\t\tthis._indexCount = iindex;\n\t\t\t\treturn 0 < builder.units.length;\n\t\t\t}\n\t\t}\n\n\t\tfor (; shape != null; shape = iterator.next()) {\n\t\t\tconst creater = EShapeUploadeds[shape.type] || EShapeUploadeds[EShapeType.GROUP];\n\t\t\tif (creater == null) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst uploaded = creater(this, shape, vindex, iindex, antialiasWeight);\n\t\t\tif (uploaded == null) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tuploaded.buildUnit(builder);\n\t\t\tvindex += uploaded.getVertexCount();\n\t\t\tiindex += uploaded.getIndexCount();\n\n\t\t\tif (noMoreThanOne) {\n\t\t\t\titerator.next();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tbuilder.end();\n\t\tthis._vertexCount = vindex;\n\t\tthis._indexCount = iindex;\n\t\treturn 0 < builder.units.length;\n\t}\n\n\tcheck(vindex: number, ioffset: number, vcount: number, icount: number): boolean {\n\t\tthis.indexCountRequested = icount;\n\t\treturn vindex + vcount <= this._vertexCapacity && ioffset + icount <= this._indexCapacity;\n\t}\n\n\tdestroy(): void {\n\t\tconst geometry = this._geometry;\n\t\tif (geometry) {\n\t\t\tgeometry.destroy();\n\t\t}\n\t\tthis._builder.destroy();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-buffer.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-buffer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Buffer, DRAW_MODES, Geometry, Renderer, Shader, Texture } from \"pixi.js\";\nimport { EShapeBufferUnitBuilder } from \"./e-shape-buffer-unit-builder\";\nimport { EShapeRendererIterator } from \"./e-shape-renderer-iterator\";\nimport { EShapeType } from \"./e-shape-type\";\nimport { EShapeUploadeds } from \"./e-shape-uploadeds\";\n\nexport class EShapeBuffer {\n\tvertices: Float32Array;\n\tprotected _vertexCapacity: number;\n\tprotected _vertexCount: number;\n\tprotected _vertexBuffer: Buffer | null;\n\n\tclippings: Float32Array;\n\tprotected _clippingBuffer: Buffer | null;\n\n\tsteps: Float32Array;\n\tprotected _stepBuffer: Buffer | null;\n\n\tcolorFills: Float32Array;\n\tprotected _colorFillBuffer: Buffer | null;\n\n\tcolorStrokes: Float32Array;\n\tprotected _colorStrokeBuffer: Buffer | null;\n\n\tuvs: Float32Array;\n\tprotected _uvBuffer: Buffer | null;\n\n\tindices: Uint16Array | Uint32Array;\n\tprotected _indexCapacity: number;\n\tprotected _indexCount: number;\n\tindexCountRequested: number;\n\tprotected _indexBuffer: Buffer | null;\n\n\tprotected _renderer: Renderer;\n\tprotected _geometry: Geometry | null;\n\n\tprotected _builder: EShapeBufferUnitBuilder;\n\n\tconstructor(ntriangles: number, renderer: Renderer) {\n\t\tconst nindices = ntriangles * 3;\n\t\tconst nvertices = nindices;\n\n\t\tthis.vertices = new Float32Array(nvertices * 2);\n\t\tthis._vertexCapacity = nvertices;\n\t\tthis._vertexCount = 0;\n\t\tthis._vertexBuffer = null;\n\n\t\tthis.clippings = new Float32Array(nvertices * 3);\n\t\tthis._clippingBuffer = null;\n\n\t\tthis.steps = new Float32Array(nvertices * 6);\n\t\tthis._stepBuffer = null;\n\n\t\tthis.colorFills = new Float32Array(nvertices * 4);\n\t\tthis._colorFillBuffer = null;\n\n\t\tthis.colorStrokes = new Float32Array(nvertices * 4);\n\t\tthis._colorStrokeBuffer = null;\n\n\t\tthis.uvs = new Float32Array(nvertices * 2);\n\t\tthis._uvBuffer = null;\n\n\t\tconst isIndicesShort = nvertices <= 65535;\n\t\tthis.indices = isIndicesShort ? new Uint16Array(nindices) : new Uint32Array(nindices);\n\t\tthis._indexCapacity = ntriangles;\n\t\tthis._indexCount = 0;\n\t\tthis.indexCountRequested = 0;\n\t\tthis._indexBuffer = null;\n\n\t\tthis._renderer = renderer;\n\n\t\tthis._builder = new EShapeBufferUnitBuilder();\n\n\t\tthis._geometry = null;\n\t}\n\n\tupdateVertices(): void {\n\t\tconst vertexBuffer = this._vertexBuffer;\n\t\tif (vertexBuffer) {\n\t\t\tvertexBuffer.update();\n\t\t}\n\t}\n\n\tupdateClippings(): void {\n\t\tconst clippingBuffer = this._clippingBuffer;\n\t\tif (clippingBuffer) {\n\t\t\tclippingBuffer.update();\n\t\t}\n\t}\n\n\tupdateSteps(): void {\n\t\tconst stepBuffer = this._stepBuffer;\n\t\tif (stepBuffer) {\n\t\t\tstepBuffer.update();\n\t\t}\n\t}\n\n\tupdateColorFills(): void {\n\t\tconst colorFillBuffer = this._colorFillBuffer;\n\t\tif (colorFillBuffer) {\n\t\t\tcolorFillBuffer.update();\n\t\t}\n\t}\n\n\tupdateColorStrokes(): void {\n\t\tconst colorStrokeBuffer = this._colorStrokeBuffer;\n\t\tif (colorStrokeBuffer) {\n\t\t\tcolorStrokeBuffer.update();\n\t\t}\n\t}\n\n\tupdateUvs(): void {\n\t\tconst uvBuffer = this._uvBuffer;\n\t\tif (uvBuffer) {\n\t\t\tuvBuffer.update();\n\t\t}\n\t}\n\n\tupdateIndices(): void {\n\t\tconst indexBuffer = this._indexBuffer;\n\t\tif (indexBuffer) {\n\t\t\tindexBuffer.update();\n\t\t}\n\t}\n\n\tprotected getGeometry(): Geometry {\n\t\tlet result = this._geometry;\n\t\tif (result == null) {\n\t\t\tthis._vertexBuffer = new Buffer(this.vertices, false, false);\n\t\t\tthis._clippingBuffer = new Buffer(this.clippings, false, false);\n\t\t\tthis._stepBuffer = new Buffer(this.steps, false, false);\n\t\t\tthis._colorFillBuffer = new Buffer(this.colorFills, false, false);\n\t\t\tthis._colorStrokeBuffer = new Buffer(this.colorStrokes, false, false);\n\t\t\tthis._uvBuffer = new Buffer(this.uvs, false, false);\n\t\t\tthis._indexBuffer = new Buffer(this.indices, false, true);\n\n\t\t\tthis._geometry = result = new Geometry()\n\t\t\t\t.addIndex(this._indexBuffer)\n\t\t\t\t.addAttribute(\"aPosition\", this._vertexBuffer, 2)\n\t\t\t\t.addAttribute(\"aClipping\", this._clippingBuffer, 3)\n\t\t\t\t.addAttribute(\"aStep\", this._stepBuffer, 2)\n\t\t\t\t.addAttribute(\"aAntialias\", this._stepBuffer, 4)\n\t\t\t\t.addAttribute(\"aColorFill\", this._colorFillBuffer, 4)\n\t\t\t\t.addAttribute(\"aColorStroke\", this._colorStrokeBuffer, 4)\n\t\t\t\t.addAttribute(\"aUv\", this._uvBuffer, 2);\n\t\t}\n\t\treturn result;\n\t}\n\n\tupload(): void {\n\t\tthis._renderer.geometry.bind(this.getGeometry());\n\t}\n\n\trender(shader: Shader): void {\n\t\tconst renderer = this._renderer;\n\t\trenderer.geometry.bind(this.getGeometry());\n\n\t\tconst units = this._builder.units;\n\t\tconst unitCount = units.length;\n\t\tif (0 < unitCount) {\n\t\t\tconst type = DRAW_MODES.TRIANGLES;\n\n\t\t\tlet unit0 = null;\n\t\t\tlet unit1 = units[0];\n\t\t\tlet ioffset0 = 0;\n\t\t\tlet ioffset1 = unit1.indexOffset * 3;\n\t\t\tlet vcount = 0;\n\t\t\tlet texture = Texture.WHITE;\n\t\t\tfor (let i = 0, imax = unitCount - 1; i < imax; ++i) {\n\t\t\t\tunit0 = unit1;\n\t\t\t\tunit1 = units[i + 1];\n\t\t\t\tioffset0 = ioffset1;\n\t\t\t\tioffset1 = unit1.indexOffset * 3;\n\t\t\t\tvcount = ioffset1 - ioffset0;\n\t\t\t\ttexture = unit0.texture || Texture.WHITE;\n\t\t\t\tif (0 < vcount && texture.valid) {\n\t\t\t\t\tshader.uniforms.sampler = renderer.texture.bind(texture);\n\t\t\t\t\trenderer.geometry.draw(type, vcount, ioffset0);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvcount = this._indexCount * 3 - ioffset1;\n\t\t\ttexture = unit1.texture || Texture.WHITE;\n\t\t\tif (0 < vcount && texture.valid) {\n\t\t\t\tshader.uniforms.sampler = renderer.texture.bind(texture);\n\t\t\t\trenderer.geometry.draw(type, vcount, ioffset1);\n\t\t\t}\n\t\t}\n\t}\n\n\tupdate(\n\t\titerator: EShapeRendererIterator,\n\t\tantialiasWeight: number,\n\t\tnoMoreThanOne: boolean\n\t): boolean {\n\t\tconst builder = this._builder;\n\t\tbuilder.begin();\n\n\t\tlet vindex = 0;\n\t\tlet iindex = 0;\n\t\tlet shape = iterator.get();\n\t\tfor (; shape != null; shape = iterator.next()) {\n\t\t\tlet uploaded = shape.uploaded;\n\t\t\tif (uploaded == null) {\n\t\t\t\tconst creator = EShapeUploadeds[shape.type] || EShapeUploadeds[EShapeType.GROUP];\n\t\t\t\tif (creator == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst newUploaded = creator(this, shape, vindex, iindex, antialiasWeight);\n\t\t\t\tif (newUploaded == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tuploaded = newUploaded;\n\t\t\t} else if (!uploaded.reinit(this, shape, vindex, iindex)) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tuploaded.buildUnit(builder);\n\t\t\tvindex += uploaded.getVertexCount();\n\t\t\tiindex += uploaded.getIndexCount();\n\n\t\t\tif (noMoreThanOne) {\n\t\t\t\titerator.next();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tbuilder.end();\n\t\tthis._vertexCount = vindex;\n\t\tthis._indexCount = iindex;\n\t\treturn 0 < builder.units.length;\n\t}\n\n\tcheck(vindex: number, ioffset: number, vcount: number, icount: number): boolean {\n\t\tthis.indexCountRequested = icount;\n\t\treturn vindex + vcount <= this._vertexCapacity && ioffset + icount <= this._indexCapacity;\n\t}\n\n\tdestroy(): void {\n\t\tconst geometry = this._geometry;\n\t\tif (geometry) {\n\t\t\tgeometry.destroy();\n\t\t}\n\t\tthis._builder.destroy();\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-points-formatted.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-formatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"e-shape-points-formatted.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points-formatted.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAC/B,MAAgB,EAChB,MAAqC;IAErC,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,IAAI,CAAC,IAAI,YAAY,EAAE;QACtB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;YACvD,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACzB;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;KACjB;SAAM;QACN,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACd;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapePointsStyle } from \"./e-shape-points-style\";\n\nexport type EShapePointsFormatted =\n\t| EShapePointsFormattedWithBoundary\n\t| EShapePointsFormattedWithoutBoundary;\n\nexport type EShapePointsFormattedBoundary = [number, number, number, number];\n\nexport interface EShapePointsFormattedWithoutBoundary {\n\tlength: number;\n\t/** Peak length */\n\tplength: number;\n\tvalues: number[];\n\tsegments: number[];\n\tstyle: EShapePointsStyle;\n}\n\nexport interface EShapePointsFormattedWithBoundary extends EShapePointsFormattedWithoutBoundary {\n\tboundary: EShapePointsFormattedBoundary;\n}\n\nexport const toPointsBoundary = (\n\tvalues: number[],\n\tresult: EShapePointsFormattedBoundary\n): EShapePointsFormattedBoundary => {\n\tconst valuesLength = values.length;\n\tif (2 <= valuesLength) {\n\t\tlet xmin = values[0];\n\t\tlet ymin = values[1];\n\t\tlet xmax = xmin;\n\t\tlet ymax = ymin;\n\t\tfor (let i = 2, imax = values.length; i < imax; i += 2) {\n\t\t\tconst x = values[i];\n\t\t\tconst y = values[i + 1];\n\t\t\txmin = Math.min(xmin, x);\n\t\t\tymin = Math.min(ymin, y);\n\t\t\txmax = Math.max(xmax, x);\n\t\t\tymax = Math.max(ymax, y);\n\t\t}\n\t\tresult[0] = xmin;\n\t\tresult[1] = ymin;\n\t\tresult[2] = xmax;\n\t\tresult[3] = ymax;\n\t} else {\n\t\tresult[0] = 0;\n\t\tresult[1] = 0;\n\t\tresult[2] = 0;\n\t\tresult[3] = 0;\n\t}\n\treturn result;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-points.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { EShape } from \"./e-shape\";\nimport { EShapePointsFormatted } from \"./e-shape-points-formatted\";\nimport { EShapePointsFormatter } from \"./e-shape-points-formatter\";\nimport { EShapePointsMarkerContainer } from \"./e-shape-points-marker-container\";\nimport { EShapePointsStyle } from \"./e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\n\nexport interface EShapePoints {\n\treadonly length: number;\n\treadonly id: number;\n\tvalues: number[];\n\tsegments: number[];\n\tstyle: EShapePointsStyle;\n\tmarker: EShapePointsMarkerContainer;\n\n\t/**\n\t * This method is more appropriate than the `marker` property in some situations\n\t * where the EShapePointsMarkerContainer instance do not need to be created.\n\t */\n\tgetMarker(): EShapePointsMarkerContainer | undefined;\n\n\tformatter: EShapePointsFormatter | null;\n\treadonly formatted: Readonly<EShapePointsFormatted>;\n\tonSizeChange(): void;\n\n\tset(values?: number[], segments?: number[], style?: EShapePointsStyle): this;\n\tcopy(source: EShapePoints): this;\n\tclone(parent: EShape): EShapePoints;\n\ttoPoints(transform: Matrix): Point[];\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-points.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-points.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Matrix, Point } from \"pixi.js\";\nimport { EShape } from \"./e-shape\";\nimport { EShapePointsFormatted } from \"./e-shape-points-formatted\";\nimport { EShapePointsFormatter } from \"./e-shape-points-formatter\";\nimport { EShapePointsMarkerContainer } from \"./e-shape-points-marker-container\";\nimport { EShapePointsStyle } from \"./e-shape-points-style\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\n\nexport interface EShapePoints {\n\treadonly length: number;\n\t/** Peak length */\n\treadonly plength: number;\n\treadonly id: number;\n\tvalues: number[];\n\tsegments: number[];\n\tstyle: EShapePointsStyle;\n\tmarker: EShapePointsMarkerContainer;\n\n\t/**\n\t * This method is more appropriate than the `marker` property in some situations\n\t * where the EShapePointsMarkerContainer instance do not need to be created.\n\t */\n\tgetMarker(): EShapePointsMarkerContainer | undefined;\n\n\tformatter: EShapePointsFormatter | null;\n\treadonly formatted: Readonly<EShapePointsFormatted>;\n\tonSizeChange(): void;\n\n\tset(values?: number[], segments?: number[], style?: EShapePointsStyle): this;\n\tcopy(source: EShapePoints): this;\n\tclone(parent: EShape): EShapePoints;\n\ttoPoints(transform: Matrix): Point[];\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-text.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC/B,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACE,CAAC;AAIX,MAAM,CAAC,IAAM,eAAe,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACA,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DeepPartial } from \"../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeTextAlign, EShapeTextAlignLike } from \"./e-shape-text-align\";\nimport { EShapeTextDirection } from \"./e-shape-text-direction\";\nimport { EShapeTextOffset, EShapeTextOffsetLike } from \"./e-shape-text-offset\";\nimport { EShapeTextOutline, EShapeTextOutlineLike } from \"./e-shape-text-outline\";\n\nexport const EShapeTextWeight = {\n\tNORMAL: 0,\n\tBOLD: 1\n} as const;\n\nexport type EShapeTextWeight = (typeof EShapeTextWeight)[keyof typeof EShapeTextWeight];\n\nexport const EShapeTextStyle = {\n\tNORMAL: 0,\n\tITALIC: 1\n} as const;\n\nexport type EShapeTextStyle = (typeof EShapeTextStyle)[keyof typeof EShapeTextStyle];\n\nexport interface EShapeTextLike {\n\tvalue: string;\n\tcolor: number;\n\talpha: number;\n\tfamily: string;\n\tsize: number;\n\tweight: EShapeTextWeight;\n\talign: EShapeTextAlignLike;\n\toffset: EShapeTextOffsetLike;\n\tstyle: EShapeTextStyle;\n\toutline: EShapeTextOutlineLike;\n\tspacing: EShapeTextOffsetLike;\n\tdirection: EShapeTextDirection;\n\tpadding: EShapeTextOffsetLike;\n\tclipping: boolean;\n\tfitting: boolean;\n}\n\nexport interface EShapeTextAtlasCharacter {\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: {\n\t\tx: number;\n\t\ty: number;\n\t};\n}\n\nexport type EShapeTextAtlasCharacters = Record<string, EShapeTextAtlasCharacter>;\n\nexport interface EShapeTextAtlas {\n\twidth: number;\n\theight: number;\n\tfont: {\n\t\tsize: number;\n\t};\n\tcharacters: EShapeTextAtlasCharacters;\n}\n\nexport interface EShapeText extends EShapeTextLike {\n\tenable: boolean;\n\n\talign: EShapeTextAlign;\n\toffset: EShapeTextOffset;\n\toutline: EShapeTextOutline;\n\tspacing: EShapeTextOffset;\n\tpadding: EShapeTextOffset;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tworld?: number[]; // Updated when rendered\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this;\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this;\n\ttoObject(): EShapeTextLike;\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-text.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,CAAC,IAAM,gBAAgB,GAAG;IAC/B,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACE,CAAC;AAIX,MAAM,CAAC,IAAM,eAAe,GAAG;IAC9B,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;CACA,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Texture } from \"pixi.js\";\nimport { DeepPartial } from \"../util/deep-partial\";\nimport { EShapeResourceManagerDeserialization } from \"./e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"./e-shape-resource-manager-serialization\";\nimport { EShapeTextAlign, EShapeTextAlignLike } from \"./e-shape-text-align\";\nimport { EShapeTextDirection } from \"./e-shape-text-direction\";\nimport { EShapeTextOffset, EShapeTextOffsetLike } from \"./e-shape-text-offset\";\nimport { EShapeTextOutline, EShapeTextOutlineLike } from \"./e-shape-text-outline\";\n\nexport const EShapeTextWeight = {\n\tNORMAL: 0,\n\tBOLD: 1\n} as const;\n\nexport type EShapeTextWeight = (typeof EShapeTextWeight)[keyof typeof EShapeTextWeight];\n\nexport const EShapeTextStyle = {\n\tNORMAL: 0,\n\tITALIC: 1\n} as const;\n\nexport type EShapeTextStyle = (typeof EShapeTextStyle)[keyof typeof EShapeTextStyle];\n\nexport interface EShapeTextLike {\n\tvalue: string;\n\tcolor: number;\n\talpha: number;\n\tfamily: string;\n\tsize: number;\n\tweight: EShapeTextWeight;\n\talign: EShapeTextAlignLike;\n\toffset: EShapeTextOffsetLike;\n\tstyle: EShapeTextStyle;\n\toutline: EShapeTextOutlineLike;\n\tspacing: EShapeTextOffsetLike;\n\tdirection: EShapeTextDirection;\n\tpadding: EShapeTextOffsetLike;\n\tclipping: boolean;\n\tfitting: boolean;\n}\n\nexport interface EShapeTextAtlasCharacter {\n\tx: number;\n\ty: number;\n\twidth: number;\n\theight: number;\n\tadvance: number;\n\torigin: {\n\t\tx: number;\n\t\ty: number;\n\t};\n}\n\nexport type EShapeTextAtlasCharacters = Record<string, EShapeTextAtlasCharacter>;\n\nexport interface EShapeTextAtlas {\n\twidth: number;\n\theight: number;\n\tfont: {\n\t\tsize: number;\n\t};\n\tcharacters: EShapeTextAtlasCharacters;\n}\n\nexport interface EShapeText extends EShapeTextLike {\n\tenable: boolean;\n\n\talign: EShapeTextAlign;\n\toffset: EShapeTextOffset;\n\toutline: EShapeTextOutline;\n\tspacing: EShapeTextOffset;\n\tpadding: EShapeTextOffset;\n\n\ttexture?: Texture; // Used for rendering and updated when rendered\n\tatlas?: EShapeTextAtlas; // Used for rendering and updated when rendered\n\tworld?: number[]; // Updated when rendered\n\n\treadonly length: number;\n\t/** Peak length */\n\treadonly plength: number;\n\n\tcopy(target?: DeepPartial<EShapeTextLike>): this;\n\tset(\n\t\tvalue?: string,\n\t\tcolor?: number,\n\t\talpha?: number,\n\t\tfamily?: string,\n\t\tsize?: number,\n\t\tweight?: EShapeTextWeight,\n\t\tstyle?: EShapeTextStyle,\n\t\tdirection?: EShapeTextDirection,\n\t\tclipping?: boolean,\n\t\tfitting?: boolean\n\t): this;\n\ttoObject(): EShapeTextLike;\n\tserialize(manager: EShapeResourceManagerSerialization): number;\n\tdeserialize(target: number, manager: EShapeResourceManagerDeserialization): void;\n}\n"]}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
var EShapeUploadedImpl = /** @class */ (function () {
|
|
6
6
|
function EShapeUploadedImpl(buffer, vertexOffset, indexOffset, vertexCount, indexCount, builders) {
|
|
7
|
-
this.buffer = buffer;
|
|
8
7
|
this._builders = builders;
|
|
9
8
|
this._vertexOffset = vertexOffset;
|
|
10
9
|
this._indexOffset = indexOffset;
|
|
@@ -13,20 +12,38 @@ var EShapeUploadedImpl = /** @class */ (function () {
|
|
|
13
12
|
}
|
|
14
13
|
EShapeUploadedImpl.prototype.init = function (shape) {
|
|
15
14
|
shape.uploaded = this;
|
|
16
|
-
var buffer = this.buffer;
|
|
17
15
|
var builders = this._builders;
|
|
18
16
|
for (var i = 0, imax = builders.length; i < imax; ++i) {
|
|
19
|
-
builders[i].init(
|
|
17
|
+
builders[i].init();
|
|
20
18
|
}
|
|
21
19
|
this.update(shape);
|
|
22
20
|
return this;
|
|
23
21
|
};
|
|
22
|
+
EShapeUploadedImpl.prototype.reinit = function (buffer, shape, vertexOffset, indexOffset) {
|
|
23
|
+
var builders = this._builders;
|
|
24
|
+
var voffset = vertexOffset;
|
|
25
|
+
var ioffset = indexOffset;
|
|
26
|
+
for (var i = 0, imax = builders.length; i < imax; ++i) {
|
|
27
|
+
var builder = builders[i];
|
|
28
|
+
if (!builder.reinit(buffer, shape, voffset, ioffset)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
var vertexCount = builder.vertexCount;
|
|
32
|
+
var indexCount = builder.indexCount;
|
|
33
|
+
voffset += vertexCount;
|
|
34
|
+
ioffset += indexCount;
|
|
35
|
+
}
|
|
36
|
+
this._vertexCount = voffset - vertexOffset;
|
|
37
|
+
this._indexCount = ioffset - indexOffset;
|
|
38
|
+
this.update(shape);
|
|
39
|
+
return true;
|
|
40
|
+
};
|
|
24
41
|
EShapeUploadedImpl.prototype.update = function (shape) {
|
|
25
|
-
var buffer = this.buffer;
|
|
26
42
|
var builders = this._builders;
|
|
27
43
|
for (var i = 0, imax = builders.length; i < imax; ++i) {
|
|
28
|
-
builders[i].update(
|
|
44
|
+
builders[i].update(shape);
|
|
29
45
|
}
|
|
46
|
+
return this;
|
|
30
47
|
};
|
|
31
48
|
EShapeUploadedImpl.prototype.isCompatible = function (shape) {
|
|
32
49
|
var builders = this._builders;
|
|
@@ -37,9 +54,6 @@ var EShapeUploadedImpl = /** @class */ (function () {
|
|
|
37
54
|
}
|
|
38
55
|
return true;
|
|
39
56
|
};
|
|
40
|
-
EShapeUploadedImpl.prototype.getBuffer = function () {
|
|
41
|
-
return this.buffer;
|
|
42
|
-
};
|
|
43
57
|
EShapeUploadedImpl.prototype.getVertexOffset = function () {
|
|
44
58
|
return this._vertexOffset;
|
|
45
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-uploaded.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-uploaded.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"e-shape-uploaded.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-uploaded.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 { EShapeBufferUnitBuilder } from \"./e-shape-buffer-unit-builder\";\nimport { Builder, BuilderBuffer } from \"./variant/builder\";\n\nexport interface EShapeUploaded {\n\tinit(shape: EShape): this;\n\treinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean;\n\tupdate(shape: EShape): this;\n\tisCompatible(shape: EShape): boolean;\n\tgetVertexOffset(): number;\n\tgetVertexCount(): number;\n\tgetIndexOffset(): number;\n\tgetIndexCount(): number;\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void;\n}\n\nexport class EShapeUploadedImpl implements EShapeUploaded {\n\tprotected _builders: Builder[];\n\tprotected _vertexOffset: number;\n\tprotected _indexOffset: number;\n\tprotected _vertexCount: number;\n\tprotected _indexCount: 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\tbuilders: Builder[]\n\t) {\n\t\tthis._builders = builders;\n\t\tthis._vertexOffset = vertexOffset;\n\t\tthis._indexOffset = indexOffset;\n\t\tthis._vertexCount = vertexCount;\n\t\tthis._indexCount = indexCount;\n\t}\n\n\tinit(shape: EShape): this {\n\t\tshape.uploaded = this;\n\t\tconst builders = this._builders;\n\t\tfor (let i = 0, imax = builders.length; i < imax; ++i) {\n\t\t\tbuilders[i].init();\n\t\t}\n\t\tthis.update(shape);\n\t\treturn this;\n\t}\n\n\treinit(\n\t\tbuffer: BuilderBuffer,\n\t\tshape: EShape,\n\t\tvertexOffset: number,\n\t\tindexOffset: number\n\t): boolean {\n\t\tconst builders = this._builders;\n\t\tlet voffset = vertexOffset;\n\t\tlet ioffset = indexOffset;\n\t\tfor (let i = 0, imax = builders.length; i < imax; ++i) {\n\t\t\tconst builder = builders[i];\n\t\t\tif (!builder.reinit(buffer, shape, voffset, ioffset)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst vertexCount = builder.vertexCount;\n\t\t\tconst indexCount = builder.indexCount;\n\t\t\tvoffset += vertexCount;\n\t\t\tioffset += indexCount;\n\t\t}\n\t\tthis._vertexCount = voffset - vertexOffset;\n\t\tthis._indexCount = ioffset - indexOffset;\n\t\tthis.update(shape);\n\t\treturn true;\n\t}\n\n\tupdate(shape: EShape): this {\n\t\tconst builders = this._builders;\n\t\tfor (let i = 0, imax = builders.length; i < imax; ++i) {\n\t\t\tbuilders[i].update(shape);\n\t\t}\n\t\treturn this;\n\t}\n\n\tisCompatible(shape: EShape): boolean {\n\t\tconst builders = this._builders;\n\t\tfor (let i = 0, imax = builders.length; i < imax; ++i) {\n\t\t\tif (!builders[i].isCompatible(shape)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tgetVertexOffset(): number {\n\t\treturn this._vertexOffset;\n\t}\n\n\tgetVertexCount(): number {\n\t\treturn this._vertexCount;\n\t}\n\n\tgetIndexOffset(): number {\n\t\treturn this._indexOffset;\n\t}\n\n\tgetIndexCount(): number {\n\t\treturn this._indexCount;\n\t}\n\n\tbuildUnit(builder: EShapeBufferUnitBuilder): void {\n\t\tconst builders = this._builders;\n\t\tfor (let i = 0, imax = builders.length; i < imax; ++i) {\n\t\t\tbuilders[i].buildUnit(builder);\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildColor } from "./build-color";
|
|
2
2
|
export var toLineOfAnyPointCount = function (pointCount) {
|
|
3
|
-
return
|
|
3
|
+
return ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;
|
|
4
4
|
};
|
|
5
5
|
export var buildLineOfAnyColor = function (voffset, vcountPerPoint, point, pointCount, colors, isEnabled, colorDef, alphaDef) {
|
|
6
6
|
if (isEnabled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-line-of-any.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line-of-any.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,UAAkB;IACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"build-line-of-any.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-line-of-any.ts"],"names":[],"mappings":"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","sourcesContent":["import { buildColor } from \"./build-color\";\nimport { EShapeLineOfAnyPointsFill } from \"./e-shape-line-of-any-points-fill\";\nimport { EShapeLineOfAnyPointsStroke } from \"./e-shape-line-of-any-points-stroke\";\n\nexport const toLineOfAnyPointCount = (pointCount: number): number => {\n\treturn ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;\n};\n\nexport const buildLineOfAnyColor = (\n\tvoffset: number,\n\tvcountPerPoint: number,\n\tpoint: EShapeLineOfAnyPointsStroke | EShapeLineOfAnyPointsFill,\n\tpointCount: number,\n\tcolors: Float32Array,\n\tisEnabled: boolean,\n\tcolorDef: number,\n\talphaDef: number\n): void => {\n\tif (isEnabled) {\n\t\tif (point.isStaticColor()) {\n\t\t\tconst color = point.getColor(0, colorDef);\n\t\t\tif (point.isStaticAlpha()) {\n\t\t\t\tconst alpha = point.getAlpha(0, alphaDef);\n\t\t\t\tbuildColor(color, alpha, voffset, vcountPerPoint * pointCount, colors);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst alpha = point.getAlpha(i, alphaDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (point.isStaticAlpha()) {\n\t\t\t\tconst alpha = point.getAlpha(0, alphaDef);\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\t\tconst alpha = point.getAlpha(i, alphaDef);\n\t\t\t\t\tbuildColor(color, alpha, iv, vcountPerPoint, colors);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (point.isStaticColor()) {\n\t\t\tconst color = point.getColor(0, colorDef);\n\t\t\tbuildColor(color, 0, voffset, vcountPerPoint * pointCount, colors);\n\t\t} else {\n\t\t\tfor (let i = 0, iv = voffset; i < pointCount; i += 1, iv += vcountPerPoint) {\n\t\t\t\tconst color = point.getColor(i, colorDef);\n\t\t\t\tbuildColor(color, 0, iv, vcountPerPoint, colors);\n\t\t\t}\n\t\t}\n\t}\n};\n"]}
|
|
@@ -4,21 +4,22 @@ import { toLength } from "./to-length";
|
|
|
4
4
|
import { toScaleInvariant } from "./to-scale-invariant";
|
|
5
5
|
var LINE_FMIN = 0.00001;
|
|
6
6
|
var LINE_WORK_POINT = new Point();
|
|
7
|
-
export var
|
|
7
|
+
export var toPointCount = function (points) {
|
|
8
8
|
if (points) {
|
|
9
|
-
return points.formatted.
|
|
9
|
+
return points.formatted.plength;
|
|
10
10
|
}
|
|
11
11
|
return 0;
|
|
12
12
|
};
|
|
13
13
|
export var toLinePointCount = function (points) {
|
|
14
|
-
|
|
14
|
+
var pointCount = toPointCount(points);
|
|
15
|
+
return ((pointCount >> 4) + (0 < (pointCount & 0xf) ? 1 : 0)) << 4;
|
|
15
16
|
};
|
|
16
17
|
export var toLineVertexCount = function (pointCount, isClosed) {
|
|
17
18
|
if (isClosed) {
|
|
18
|
-
return pointCount
|
|
19
|
+
return (pointCount << 2) + 2;
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
|
-
return pointCount
|
|
22
|
+
return pointCount << 2;
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
25
|
export var toLineIndexCount = function (pointCount, isClosed) {
|
|
@@ -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, Point, TextureUvs } from \"pixi.js\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toDash } from \"./to-dash\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nconst LINE_FMIN: number = 0.00001;\nconst LINE_WORK_POINT: Point = new Point();\n\nexport const toPointsCount = (points?: EShapePoints): number => {\n\tif (points) {\n\t\treturn points.formatted.length;\n\t}\n\treturn 0;\n};\n\nexport const toLinePointCount = (points?: EShapePoints): number => {\n\treturn Math.ceil(toPointsCount(points) / 12) * 12;\n};\n\nexport const toLineVertexCount = (pointCount: number, isClosed: boolean): number => {\n\tif (isClosed) {\n\t\treturn pointCount * 4 + 2;\n\t} else {\n\t\treturn pointCount * 4;\n\t}\n};\n\nexport const toLineIndexCount = (pointCount: number, isClosed: boolean): number => {\n\treturn toLineVertexCount(pointCount, isClosed) - 2;\n};\n\nexport const buildLineClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tpointCount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (let i = 0; i < pointCount; ++i) {\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 3;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 5;\n\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 4;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 6;\n\t}\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 3;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 5;\n\t}\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\tcolorFills: 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 icf = (voffset << 2) - 8;\n\tfor (; iuv < iuvmax; ) {\n\t\tconst r = colorFills[(icf += 8)] * 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 buildLineVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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 buildTransformedLineVertexStepAndColorFill(\n\t\tvertices,\n\t\tsteps,\n\t\tcolorFills,\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 fillTransformedLineVertexStepAndColorFill = (\n\tiv: number,\n\tvertices: Float32Array,\n\tis: number,\n\tsteps: Float32Array,\n\ticf: number,\n\tcolorFills: Float32Array,\n\tpx: number,\n\tpy: number,\n\tstrokeWidth: number,\n\tscaleInvariant: number,\n\tpprevx: number,\n\tpprevy: number,\n\tpnextx: number,\n\tpnexty: number,\n\tllo: number\n): void => {\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = scaleInvariant;\n\tsteps[++is] = pprevx;\n\tsteps[++is] = pprevy;\n\tsteps[++is] = pnextx;\n\tsteps[++is] = pnexty;\n\tcolorFills[(icf += 1)] = llo;\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = scaleInvariant;\n\tsteps[++is] = pprevx;\n\tsteps[++is] = pprevy;\n\tsteps[++is] = pnextx;\n\tsteps[++is] = pnexty;\n\tcolorFills[(icf += 4)] = llo;\n};\n\nconst buildTransformedLineVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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\tbuildTransformedLineEmptyVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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\tbuildTransformedLineEmptyVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 buildTransformedLineClosedSegmentVertexStepAndColorFill(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tcolorFills,\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 buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tcolorFills,\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 buildTransformedLineEmptyVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\tlet iv = (voffset << 1) - 1;\n\t\tlet is = voffset * 6 - 1;\n\t\tlet icf = (voffset << 2) - 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] = scaleInvariant;\n\t\t\tsteps[++is] = -1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = +1;\n\t\t\tsteps[++is] = 0;\n\t\t\tcolorFills[++icf] = length;\n\t\t\tcolorFills[++icf] = 0;\n\t\t\tcolorFills[++icf] = 0;\n\t\t\tcolorFills[++icf] = length;\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst buildTransformedLineOpenSegmentVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\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\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet icf = (voffset << 2) - 1;\n\tlet l = 0;\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tlength\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\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\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\n\t\tl += toLength(pprevx, pprevy, px, py);\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\n\tpnextx = px + (px - pprevx);\n\tpnexty = py + (py - pprevy);\n\n\tl += toLength(pprevx, pprevy, px, py);\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\t// Total length\n\tconst dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);\n\tconst dash0 = dash.x;\n\tconst dash1 = dash.y;\n\tconst icf0 = (voffset << 2) - 1;\n\tfor (let i = icf0, imax = icf0 + 8; i < imax; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = length;\n\t}\n\tfor (let i = icf0 + 8; i < icf; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\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] = scaleInvariant;\n\t\t\tsteps[++is] = pprevx;\n\t\t\tsteps[++is] = pprevy;\n\t\t\tsteps[++is] = pnextx;\n\t\t\tsteps[++is] = pnexty;\n\t\t\tcolorFills[++icf] = l;\n\t\t\tcolorFills[++icf] = dash0;\n\t\t\tcolorFills[++icf] = dash1;\n\t\t\tcolorFills[++icf] = l;\n\t\t}\n\t}\n\n\treturn l;\n};\n\nconst buildTransformedLineClosedSegmentVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\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\tlet l = 0;\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet icf = (voffset << 2) - 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\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\n\t\tl += toLength(pprevx, pprevy, px, py);\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tpnextx = lineVertices[isecond];\n\tpnexty = lineVertices[isecond + 1];\n\n\tl += toLength(pprevx, pprevy, px, py);\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\t// Total length\n\tconst dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);\n\tconst dash0 = dash.x;\n\tconst dash1 = dash.y;\n\tfor (let i = (voffset << 2) - 1; i < icf; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = -1;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\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] = scaleInvariant;\n\t\t\tsteps[++is] = pprevx;\n\t\t\tsteps[++is] = pprevy;\n\t\t\tsteps[++is] = pnextx;\n\t\t\tsteps[++is] = pnexty;\n\t\t\tcolorFills[++icf] = l;\n\t\t\tcolorFills[++icf] = dash0;\n\t\t\tcolorFills[++icf] = dash1;\n\t\t\tcolorFills[++icf] = -1;\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, Point, TextureUvs } from \"pixi.js\";\nimport { EShapePoints } from \"../e-shape-points\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport { toDash } from \"./to-dash\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nconst LINE_FMIN: number = 0.00001;\nconst LINE_WORK_POINT: Point = new Point();\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 buildLineClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\tpointCount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (let i = 0; i < pointCount; ++i) {\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 3;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 5;\n\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 4;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 6;\n\t}\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 3;\n\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 1;\n\t\tclippings[++ic] = 5;\n\t}\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\tcolorFills: 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 icf = (voffset << 2) - 8;\n\tfor (; iuv < iuvmax; ) {\n\t\tconst r = colorFills[(icf += 8)] * 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 buildLineVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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 buildTransformedLineVertexStepAndColorFill(\n\t\tvertices,\n\t\tsteps,\n\t\tcolorFills,\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 fillTransformedLineVertexStepAndColorFill = (\n\tiv: number,\n\tvertices: Float32Array,\n\tis: number,\n\tsteps: Float32Array,\n\ticf: number,\n\tcolorFills: Float32Array,\n\tpx: number,\n\tpy: number,\n\tstrokeWidth: number,\n\tscaleInvariant: number,\n\tpprevx: number,\n\tpprevy: number,\n\tpnextx: number,\n\tpnexty: number,\n\tllo: number\n): void => {\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = scaleInvariant;\n\tsteps[++is] = pprevx;\n\tsteps[++is] = pprevy;\n\tsteps[++is] = pnextx;\n\tsteps[++is] = pnexty;\n\tcolorFills[(icf += 1)] = llo;\n\n\tvertices[++iv] = px;\n\tvertices[++iv] = py;\n\tsteps[++is] = strokeWidth;\n\tsteps[++is] = scaleInvariant;\n\tsteps[++is] = pprevx;\n\tsteps[++is] = pprevy;\n\tsteps[++is] = pnextx;\n\tsteps[++is] = pnexty;\n\tcolorFills[(icf += 4)] = llo;\n};\n\nconst buildTransformedLineVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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\tbuildTransformedLineEmptyVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tcolorFills,\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 = buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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\tbuildTransformedLineEmptyVertexStepAndColorFill(\n\t\t\t\t\tvertices,\n\t\t\t\t\tsteps,\n\t\t\t\t\tcolorFills,\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 buildTransformedLineClosedSegmentVertexStepAndColorFill(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tcolorFills,\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 buildTransformedLineOpenSegmentVertexStepAndColorFill(\n\t\t\t\tvertices,\n\t\t\t\tsteps,\n\t\t\t\tcolorFills,\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 buildTransformedLineEmptyVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\tlet iv = (voffset << 1) - 1;\n\t\tlet is = voffset * 6 - 1;\n\t\tlet icf = (voffset << 2) - 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] = scaleInvariant;\n\t\t\tsteps[++is] = -1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = +1;\n\t\t\tsteps[++is] = 0;\n\t\t\tcolorFills[++icf] = length;\n\t\t\tcolorFills[++icf] = 0;\n\t\t\tcolorFills[++icf] = 0;\n\t\t\tcolorFills[++icf] = length;\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst buildTransformedLineOpenSegmentVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\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\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet icf = (voffset << 2) - 1;\n\tlet l = 0;\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tlength\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\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\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\n\t\tl += toLength(pprevx, pprevy, px, py);\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\n\tpnextx = px + (px - pprevx);\n\tpnexty = py + (py - pprevy);\n\n\tl += toLength(pprevx, pprevy, px, py);\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\t// Total length\n\tconst dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);\n\tconst dash0 = dash.x;\n\tconst dash1 = dash.y;\n\tconst icf0 = (voffset << 2) - 1;\n\tfor (let i = icf0, imax = icf0 + 8; i < imax; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = length;\n\t}\n\tfor (let i = icf0 + 8; i < icf; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = l;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\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] = scaleInvariant;\n\t\t\tsteps[++is] = pprevx;\n\t\t\tsteps[++is] = pprevy;\n\t\t\tsteps[++is] = pnextx;\n\t\t\tsteps[++is] = pnexty;\n\t\t\tcolorFills[++icf] = l;\n\t\t\tcolorFills[++icf] = dash0;\n\t\t\tcolorFills[++icf] = dash1;\n\t\t\tcolorFills[++icf] = l;\n\t\t}\n\t}\n\n\treturn l;\n};\n\nconst buildTransformedLineClosedSegmentVertexStepAndColorFill = (\n\tvertices: Float32Array,\n\tsteps: Float32Array,\n\tcolorFills: 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\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\tlet l = 0;\n\tlet iv = (voffset << 1) - 1;\n\tlet is = voffset * 6 - 1;\n\tlet icf = (voffset << 2) - 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\n\t\tconst imiddle = (i + 1) % lineVertexCount << 1;\n\t\tpnextx = lineVertices[imiddle];\n\t\tpnexty = lineVertices[imiddle + 1];\n\n\t\tl += toLength(pprevx, pprevy, px, py);\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\n\t\tfillTransformedLineVertexStepAndColorFill(\n\t\t\tiv,\n\t\t\tvertices,\n\t\t\tis,\n\t\t\tsteps,\n\t\t\ticf,\n\t\t\tcolorFills,\n\t\t\tpx,\n\t\t\tpy,\n\t\t\tstrokeWidth,\n\t\t\tscaleInvariant,\n\t\t\tpprevx,\n\t\t\tpprevy,\n\t\t\tpnextx,\n\t\t\tpnexty,\n\t\t\tl\n\t\t);\n\t\tiv += 4;\n\t\tis += 12;\n\t\ticf += 8;\n\t}\n\n\t// Last segment\n\tpprevx = px;\n\tpprevy = py;\n\tpx = pnextx;\n\tpy = pnexty;\n\n\tconst isecond = (lineVertexFrom + 1) % lineVertexCount << 1;\n\tpnextx = lineVertices[isecond];\n\tpnexty = lineVertices[isecond + 1];\n\n\tl += toLength(pprevx, pprevy, px, py);\n\n\tfillTransformedLineVertexStepAndColorFill(\n\t\tiv,\n\t\tvertices,\n\t\tis,\n\t\tsteps,\n\t\ticf,\n\t\tcolorFills,\n\t\tpx,\n\t\tpy,\n\t\tstrokeWidth,\n\t\tscaleInvariant,\n\t\tpprevx,\n\t\tpprevy,\n\t\tpnextx,\n\t\tpnexty,\n\t\tl\n\t);\n\tiv += 4;\n\tis += 12;\n\ticf += 8;\n\n\t// Total length\n\tconst dash = toDash(l, strokeWidth, strokeStyle, LINE_WORK_POINT);\n\tconst dash0 = dash.x;\n\tconst dash1 = dash.y;\n\tfor (let i = (voffset << 2) - 1; i < icf; i += 4) {\n\t\tcolorFills[i + 2] = dash0;\n\t\tcolorFills[i + 3] = dash1;\n\t\tcolorFills[i + 4] = -1;\n\t}\n\n\t// Fill the rest\n\tif (0 <= vcount) {\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] = scaleInvariant;\n\t\t\tsteps[++is] = pprevx;\n\t\t\tsteps[++is] = pprevy;\n\t\t\tsteps[++is] = pnextx;\n\t\t\tsteps[++is] = pnexty;\n\t\t\tcolorFills[++icf] = l;\n\t\t\tcolorFills[++icf] = dash0;\n\t\t\tcolorFills[++icf] = dash1;\n\t\t\tcolorFills[++icf] = -1;\n\t\t}\n\t}\n\treturn l;\n};\n"]}
|
|
@@ -14,7 +14,7 @@ export var TEXT_INDEX_COUNT_SHIFT = 1;
|
|
|
14
14
|
export var TEXT_FMIN = 0.00001;
|
|
15
15
|
var TEXT_WORK_POINT = new Point();
|
|
16
16
|
export var toTextBufferCount = function (shape) {
|
|
17
|
-
var l = shape.text.
|
|
17
|
+
var l = shape.text.plength;
|
|
18
18
|
return ((l >> 3) + (0 < (l & 0x7) ? 1 : 0)) << 3;
|
|
19
19
|
};
|
|
20
20
|
export var buildTextClipping = function (clippings, voffset, vcount) {
|