@wcardinal/wcardinal-ui 0.251.0 → 0.253.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/shape/action/e-shape-action-open-dialog-opener.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.d.ts +1 -0
- package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.d.ts +14 -2
- package/dist/types/wcardinal/ui/shape/e-shape-text-direction.d.ts +1 -0
- package/dist/wcardinal/ui/shape/action/e-shape-action-open-dialog-opener.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.js +3 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.js.map +1 -1
- package/dist/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.js +7 -3
- package/dist/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.js.map +1 -1
- package/dist/wcardinal/ui/shape/e-shape-text-direction.js +2 -1
- package/dist/wcardinal/ui/shape/e-shape-text-direction.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/build-text.js +69 -0
- package/dist/wcardinal/ui/shape/variant/build-text.js.map +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.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +82 -6
- package/dist/wcardinal-ui.js +82 -6
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { EShape } from "../e-shape";
|
|
2
|
-
export declare type EShapeActionOpenDialogOpener = (target: string, shape: EShape) => void;
|
|
2
|
+
export declare type EShapeActionOpenDialogOpener = (target: string, argument: unknown, shape: EShape) => void;
|
package/dist/types/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { EShapeActionRuntimeConditional } from "./e-shape-action-runtime-conditi
|
|
|
6
6
|
import { EShapeActionValueOpenDialogExtension } from "./e-shape-action-value-open-dialog-extension";
|
|
7
7
|
export declare class EShapeActionRuntimeOpenDialogExtension extends EShapeActionRuntimeConditional {
|
|
8
8
|
protected readonly target: EShapeActionExpression<string | null>;
|
|
9
|
+
protected readonly argument: EShapeActionExpression<unknown>;
|
|
9
10
|
protected readonly opener?: EShapeActionOpenDialogOpener;
|
|
10
11
|
constructor(value: EShapeActionValueOpenDialogExtension);
|
|
11
12
|
execute(shape: EShape, runtime: EShapeRuntime, time: number): void;
|
package/dist/types/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { EShapeActionValueSubtyped } from "./e-shape-action-value-subtyped";
|
|
|
6
6
|
import { EShapeActionValueType } from "./e-shape-action-value-type";
|
|
7
7
|
import { EShapeActionValueOpenDialogType } from "./e-shape-action-value-open-dialog-type";
|
|
8
8
|
import { EShapeActionRuntime } from "./e-shape-action-runtime";
|
|
9
|
-
export declare type
|
|
9
|
+
export declare type EShapeActionValueOpenDialogExtensionSerialized1 = [
|
|
10
10
|
typeof EShapeActionValueType.OPEN,
|
|
11
11
|
number,
|
|
12
12
|
typeof EShapeActionValueOpenType.DIALOG,
|
|
@@ -15,10 +15,22 @@ export declare type EShapeActionValueOpenDialogExtensionSerialized = [
|
|
|
15
15
|
-1,
|
|
16
16
|
EShapeActionValueOpenDialogType
|
|
17
17
|
];
|
|
18
|
+
export declare type EShapeActionValueOpenDialogExtensionSerialized2 = [
|
|
19
|
+
typeof EShapeActionValueType.OPEN,
|
|
20
|
+
number,
|
|
21
|
+
typeof EShapeActionValueOpenType.DIALOG,
|
|
22
|
+
number,
|
|
23
|
+
0,
|
|
24
|
+
-1,
|
|
25
|
+
EShapeActionValueOpenDialogType,
|
|
26
|
+
number
|
|
27
|
+
];
|
|
28
|
+
export declare type EShapeActionValueOpenDialogExtensionSerialized = EShapeActionValueOpenDialogExtensionSerialized1 | EShapeActionValueOpenDialogExtensionSerialized2;
|
|
18
29
|
export declare class EShapeActionValueOpenDialogExtension extends EShapeActionValueSubtyped<typeof EShapeActionValueOpenType.DIALOG> {
|
|
19
30
|
readonly target: string;
|
|
31
|
+
readonly argument: string;
|
|
20
32
|
readonly dialogType: EShapeActionValueOpenDialogType;
|
|
21
|
-
constructor(condition: string, target: string, dialogType: EShapeActionValueOpenDialogType);
|
|
33
|
+
constructor(condition: string, target: string, argument: string, dialogType: EShapeActionValueOpenDialogType);
|
|
22
34
|
isEquals(value: EShapeActionValue): boolean;
|
|
23
35
|
toRuntime(): EShapeActionRuntime;
|
|
24
36
|
serialize(manager: EShapeResourceManagerSerialization): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-action-open-dialog-opener.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-open-dialog-opener.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\n\nexport type EShapeActionOpenDialogOpener = (
|
|
1
|
+
{"version":3,"file":"e-shape-action-open-dialog-opener.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-open-dialog-opener.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\n\nexport type EShapeActionOpenDialogOpener = (\n\ttarget: string,\n\targument: unknown,\n\tshape: EShape\n) => void;\n"]}
|
|
@@ -13,6 +13,7 @@ var EShapeActionRuntimeOpenDialogExtension = /** @class */ (function (_super) {
|
|
|
13
13
|
function EShapeActionRuntimeOpenDialogExtension(value) {
|
|
14
14
|
var _this = _super.call(this, value, EShapeRuntimeReset.NONE) || this;
|
|
15
15
|
_this.target = EShapeActionExpressions.ofStringOrNull(value.target);
|
|
16
|
+
_this.argument = EShapeActionExpressions.ofUnknown(value.target);
|
|
16
17
|
var extension = EShapeActionOpenDialogExtensions.get(value.dialogType);
|
|
17
18
|
if (extension) {
|
|
18
19
|
_this.opener = extension.opener;
|
|
@@ -25,8 +26,9 @@ var EShapeActionRuntimeOpenDialogExtension = /** @class */ (function (_super) {
|
|
|
25
26
|
if (this.condition(shape, time, EShapeActionEnvironment)) {
|
|
26
27
|
var target_1 = this.target(shape, time, EShapeActionEnvironment);
|
|
27
28
|
if (target_1 != null) {
|
|
29
|
+
var argument_1 = this.argument(shape, time, EShapeActionEnvironment);
|
|
28
30
|
setTimeout(function () {
|
|
29
|
-
opener(target_1, shape);
|
|
31
|
+
opener(target_1, argument_1, shape);
|
|
30
32
|
}, 0);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-action-runtime-open-dialog-extension.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAiB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAGtF;IAA4D,0DAA8B;
|
|
1
|
+
{"version":3,"file":"e-shape-action-runtime-open-dialog-extension.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-runtime-open-dialog-extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAGH,OAAO,EAAiB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAE3F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAGtF;IAA4D,0DAA8B;IAKzF,gDAAY,KAA2C;QAAvD,YACC,kBAAM,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAOrC;QANA,KAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,KAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChE,IAAM,SAAS,GAAG,gCAAgC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,SAAS,EAAE;YACd,KAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;SAC/B;;IACF,CAAC;IAED,wDAAO,GAAP,UAAQ,KAAa,EAAE,OAAsB,EAAE,IAAY;QAC1D,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE;YACX,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC,EAAE;gBACzD,IAAM,QAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;gBACjE,IAAI,QAAM,IAAI,IAAI,EAAE;oBACnB,IAAM,UAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC;oBACrE,UAAU,CAAC;wBACV,MAAM,CAAC,QAAM,EAAE,UAAQ,EAAE,KAAK,CAAC,CAAC;oBACjC,CAAC,EAAE,CAAC,CAAC,CAAC;iBACN;aACD;SACD;IACF,CAAC;IACF,6CAAC;AAAD,CAAC,AA7BD,CAA4D,8BAA8B,GA6BzF","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShape } from \"../e-shape\";\nimport { EShapeRuntime, EShapeRuntimeReset } from \"../e-shape-runtime\";\nimport { EShapeActionEnvironment } from \"./e-shape-action-environment\";\nimport { EShapeActionExpression } from \"./e-shape-action-expression\";\nimport { EShapeActionExpressions } from \"./e-shape-action-expressions\";\nimport { EShapeActionOpenDialogExtensions } from \"./e-shape-action-open-dialog-extensions\";\nimport { EShapeActionOpenDialogOpener } from \"./e-shape-action-open-dialog-opener\";\nimport { EShapeActionRuntimeConditional } from \"./e-shape-action-runtime-conditional\";\nimport { EShapeActionValueOpenDialogExtension } from \"./e-shape-action-value-open-dialog-extension\";\n\nexport class EShapeActionRuntimeOpenDialogExtension extends EShapeActionRuntimeConditional {\n\tprotected readonly target: EShapeActionExpression<string | null>;\n\tprotected readonly argument: EShapeActionExpression<unknown>;\n\tprotected readonly opener?: EShapeActionOpenDialogOpener;\n\n\tconstructor(value: EShapeActionValueOpenDialogExtension) {\n\t\tsuper(value, EShapeRuntimeReset.NONE);\n\t\tthis.target = EShapeActionExpressions.ofStringOrNull(value.target);\n\t\tthis.argument = EShapeActionExpressions.ofUnknown(value.target);\n\t\tconst extension = EShapeActionOpenDialogExtensions.get(value.dialogType);\n\t\tif (extension) {\n\t\t\tthis.opener = extension.opener;\n\t\t}\n\t}\n\n\texecute(shape: EShape, runtime: EShapeRuntime, time: number): void {\n\t\tconst opener = this.opener;\n\t\tif (opener) {\n\t\t\tif (this.condition(shape, time, EShapeActionEnvironment)) {\n\t\t\t\tconst target = this.target(shape, time, EShapeActionEnvironment);\n\t\t\t\tif (target != null) {\n\t\t\t\t\tconst argument = this.argument(shape, time, EShapeActionEnvironment);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\topener(target, argument, shape);\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -10,9 +10,10 @@ import { EShapeActionValues } from "./e-shape-action-values";
|
|
|
10
10
|
import { EShapeActionRuntimeOpenDialogExtension } from "./e-shape-action-runtime-open-dialog-extension";
|
|
11
11
|
var EShapeActionValueOpenDialogExtension = /** @class */ (function (_super) {
|
|
12
12
|
__extends(EShapeActionValueOpenDialogExtension, _super);
|
|
13
|
-
function EShapeActionValueOpenDialogExtension(condition, target, dialogType) {
|
|
13
|
+
function EShapeActionValueOpenDialogExtension(condition, target, argument, dialogType) {
|
|
14
14
|
var _this = _super.call(this, EShapeActionValueType.OPEN, condition, EShapeActionValueOpenType.DIALOG) || this;
|
|
15
15
|
_this.target = target;
|
|
16
|
+
_this.argument = argument;
|
|
16
17
|
_this.dialogType = dialogType;
|
|
17
18
|
return _this;
|
|
18
19
|
}
|
|
@@ -20,6 +21,7 @@ var EShapeActionValueOpenDialogExtension = /** @class */ (function (_super) {
|
|
|
20
21
|
return (_super.prototype.isEquals.call(this, value) &&
|
|
21
22
|
value instanceof EShapeActionValueOpenDialogExtension &&
|
|
22
23
|
this.target === value.target &&
|
|
24
|
+
this.argument === value.argument &&
|
|
23
25
|
this.dialogType === value.dialogType);
|
|
24
26
|
};
|
|
25
27
|
EShapeActionValueOpenDialogExtension.prototype.toRuntime = function () {
|
|
@@ -28,12 +30,14 @@ var EShapeActionValueOpenDialogExtension = /** @class */ (function (_super) {
|
|
|
28
30
|
EShapeActionValueOpenDialogExtension.prototype.serialize = function (manager) {
|
|
29
31
|
var conditionId = manager.addResource(this.condition);
|
|
30
32
|
var targetId = manager.addResource(this.target);
|
|
31
|
-
|
|
33
|
+
var argumentId = manager.addResource(this.argument);
|
|
34
|
+
return manager.addResource("[".concat(this.type, ",").concat(conditionId, ",").concat(this.subtype, ",").concat(targetId, ",0,-1,").concat(this.dialogType, ",").concat(argumentId, "]"));
|
|
32
35
|
};
|
|
33
36
|
EShapeActionValueOpenDialogExtension.deserialize = function (serialized, manager) {
|
|
34
37
|
var condition = EShapeActionValues.toResource(1, serialized, manager.resources);
|
|
35
38
|
var target = EShapeActionValues.toResource(3, serialized, manager.resources);
|
|
36
|
-
|
|
39
|
+
var argument = EShapeActionValues.toResource(7, serialized, manager.resources);
|
|
40
|
+
return new EShapeActionValueOpenDialogExtension(condition, target, argument, serialized[6]);
|
|
37
41
|
};
|
|
38
42
|
return EShapeActionValueOpenDialogExtension;
|
|
39
43
|
}(EShapeActionValueSubtyped));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-action-value-open-dialog-extension.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,sCAAsC,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"e-shape-action-value-open-dialog-extension.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/action/e-shape-action-value-open-dialog-extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,sCAAsC,EAAE,MAAM,gDAAgD,CAAC;AA2BxG;IAA0D,wDAEzD;IAKA,8CACC,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,UAA2C;QAJ5C,YAMC,kBAAM,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,yBAAyB,CAAC,MAAM,CAAC,SAI9E;QAHA,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;IAC9B,CAAC;IAED,uDAAQ,GAAR,UAAS,KAAwB;QAChC,OAAO,CACN,iBAAM,QAAQ,YAAC,KAAK,CAAC;YACrB,KAAK,YAAY,oCAAoC;YACrD,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAC5B,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;YAChC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACpC,CAAC;IACH,CAAC;IAED,wDAAS,GAAT;QACC,OAAO,IAAI,sCAAsC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,wDAAS,GAAT,UAAU,OAA2C;QACpD,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtD,OAAO,OAAO,CAAC,WAAW,CACzB,WAAI,IAAI,CAAC,IAAI,cAAI,WAAW,cAAI,IAAI,CAAC,OAAO,cAAI,QAAQ,mBAAS,IAAI,CAAC,UAAU,cAAI,UAAU,MAAG,CACjG,CAAC;IACH,CAAC;IAEM,gDAAW,GAAlB,UACC,UAA0D,EAC1D,OAA6C;QAE7C,IAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClF,IAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,IAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,IAAI,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IACF,2CAAC;AAAD,CAAC,AAnDD,CAA0D,yBAAyB,GAmDlF","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { EShapeResourceManagerDeserialization } from \"../e-shape-resource-manager-deserialization\";\nimport { EShapeResourceManagerSerialization } from \"../e-shape-resource-manager-serialization\";\nimport { EShapeActionValue } from \"./e-shape-action-value\";\nimport { EShapeActionValueOpenType } from \"./e-shape-action-value-open-type\";\nimport { EShapeActionValueSubtyped } from \"./e-shape-action-value-subtyped\";\nimport { EShapeActionValueType } from \"./e-shape-action-value-type\";\nimport { EShapeActionValues } from \"./e-shape-action-values\";\nimport { EShapeActionValueOpenDialogType } from \"./e-shape-action-value-open-dialog-type\";\nimport { EShapeActionRuntime } from \"./e-shape-action-runtime\";\nimport { EShapeActionRuntimeOpenDialogExtension } from \"./e-shape-action-runtime-open-dialog-extension\";\n\nexport type EShapeActionValueOpenDialogExtensionSerialized1 = [\n\ttypeof EShapeActionValueType.OPEN,\n\tnumber,\n\ttypeof EShapeActionValueOpenType.DIALOG,\n\tnumber,\n\t0,\n\t-1,\n\tEShapeActionValueOpenDialogType\n];\n\nexport type EShapeActionValueOpenDialogExtensionSerialized2 = [\n\ttypeof EShapeActionValueType.OPEN,\n\tnumber,\n\ttypeof EShapeActionValueOpenType.DIALOG,\n\tnumber,\n\t0,\n\t-1,\n\tEShapeActionValueOpenDialogType,\n\tnumber\n];\n\nexport type EShapeActionValueOpenDialogExtensionSerialized =\n\t| EShapeActionValueOpenDialogExtensionSerialized1\n\t| EShapeActionValueOpenDialogExtensionSerialized2;\n\nexport class EShapeActionValueOpenDialogExtension extends EShapeActionValueSubtyped<\n\ttypeof EShapeActionValueOpenType.DIALOG\n> {\n\treadonly target: string;\n\treadonly argument: string;\n\treadonly dialogType: EShapeActionValueOpenDialogType;\n\n\tconstructor(\n\t\tcondition: string,\n\t\ttarget: string,\n\t\targument: string,\n\t\tdialogType: EShapeActionValueOpenDialogType\n\t) {\n\t\tsuper(EShapeActionValueType.OPEN, condition, EShapeActionValueOpenType.DIALOG);\n\t\tthis.target = target;\n\t\tthis.argument = argument;\n\t\tthis.dialogType = dialogType;\n\t}\n\n\tisEquals(value: EShapeActionValue): boolean {\n\t\treturn (\n\t\t\tsuper.isEquals(value) &&\n\t\t\tvalue instanceof EShapeActionValueOpenDialogExtension &&\n\t\t\tthis.target === value.target &&\n\t\t\tthis.argument === value.argument &&\n\t\t\tthis.dialogType === value.dialogType\n\t\t);\n\t}\n\n\ttoRuntime(): EShapeActionRuntime {\n\t\treturn new EShapeActionRuntimeOpenDialogExtension(this);\n\t}\n\n\tserialize(manager: EShapeResourceManagerSerialization): number {\n\t\tconst conditionId = manager.addResource(this.condition);\n\t\tconst targetId = manager.addResource(this.target);\n\t\tconst argumentId = manager.addResource(this.argument);\n\t\treturn manager.addResource(\n\t\t\t`[${this.type},${conditionId},${this.subtype},${targetId},0,-1,${this.dialogType},${argumentId}]`\n\t\t);\n\t}\n\n\tstatic deserialize(\n\t\tserialized: EShapeActionValueOpenDialogExtensionSerialized,\n\t\tmanager: EShapeResourceManagerDeserialization\n\t): EShapeActionValueOpenDialogExtension {\n\t\tconst condition = EShapeActionValues.toResource(1, serialized, manager.resources);\n\t\tconst target = EShapeActionValues.toResource(3, serialized, manager.resources);\n\t\tconst argument = EShapeActionValues.toResource(7, serialized, manager.resources);\n\t\treturn new EShapeActionValueOpenDialogExtension(condition, target, argument, serialized[6]);\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-text-direction.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text-direction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,IAAM,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;CACP,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const EShapeTextDirection = {\n\tLEFT_TO_RIGHT: 0,\n\tTOP_TO_BOTTOM: 1,\n\tBOTTOM_TO_TOP: 2\n} as const;\n\nexport type EShapeTextDirection = typeof EShapeTextDirection[keyof typeof EShapeTextDirection];\n"]}
|
|
1
|
+
{"version":3,"file":"e-shape-text-direction.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-text-direction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,IAAM,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,CAAC;CACP,CAAC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const EShapeTextDirection = {\n\tLEFT_TO_RIGHT: 0,\n\tTOP_TO_BOTTOM: 1,\n\tBOTTOM_TO_TOP: 2,\n\tRIGHT_TO_LEFT: 3\n} as const;\n\nexport type EShapeTextDirection = typeof EShapeTextDirection[keyof typeof EShapeTextDirection];\n"]}
|
|
@@ -330,6 +330,34 @@ var rotateAlignVerticalLeft = function (align) {
|
|
|
330
330
|
return EShapeTextAlignHorizontal.OUTSIDE_LEFT;
|
|
331
331
|
}
|
|
332
332
|
};
|
|
333
|
+
var invertAlignHorizontal = function (align) {
|
|
334
|
+
switch (align) {
|
|
335
|
+
case EShapeTextAlignHorizontal.LEFT:
|
|
336
|
+
return EShapeTextAlignHorizontal.RIGHT;
|
|
337
|
+
case EShapeTextAlignHorizontal.CENTER:
|
|
338
|
+
return EShapeTextAlignHorizontal.CENTER;
|
|
339
|
+
case EShapeTextAlignHorizontal.RIGHT:
|
|
340
|
+
return EShapeTextAlignHorizontal.LEFT;
|
|
341
|
+
case EShapeTextAlignHorizontal.OUTSIDE_LEFT:
|
|
342
|
+
return EShapeTextAlignHorizontal.OUTSIDE_RIGHT;
|
|
343
|
+
case EShapeTextAlignHorizontal.OUTSIDE_RIGHT:
|
|
344
|
+
return EShapeTextAlignHorizontal.OUTSIDE_LEFT;
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
var invertAlignVertical = function (align) {
|
|
348
|
+
switch (align) {
|
|
349
|
+
case EShapeTextAlignVertical.TOP:
|
|
350
|
+
return EShapeTextAlignVertical.BOTTOM;
|
|
351
|
+
case EShapeTextAlignVertical.MIDDLE:
|
|
352
|
+
return EShapeTextAlignVertical.MIDDLE;
|
|
353
|
+
case EShapeTextAlignVertical.BOTTOM:
|
|
354
|
+
return EShapeTextAlignVertical.TOP;
|
|
355
|
+
case EShapeTextAlignVertical.OUTSIDE_TOP:
|
|
356
|
+
return EShapeTextAlignVertical.OUTSIDE_BOTTOM;
|
|
357
|
+
case EShapeTextAlignVertical.OUTSIDE_BOTTOM:
|
|
358
|
+
return EShapeTextAlignVertical.OUTSIDE_TOP;
|
|
359
|
+
}
|
|
360
|
+
};
|
|
333
361
|
export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX, originY, sizeX, sizeY, textAtlas, textSize, textValue, textStyle, textAlignHorizontal, textAlignVertical, textOffsetHorizontal, textOffsetVertical, textSpacingHorizontal, textSpacingVertical, textDirection, textPaddingHorizontal, textPaddingVertical, textClipping, textWorld, textureUvs, internalTransform) {
|
|
334
362
|
// Calculate the transformed positions
|
|
335
363
|
//
|
|
@@ -406,6 +434,12 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
406
434
|
vnl = hnl;
|
|
407
435
|
hnl = work.x;
|
|
408
436
|
break;
|
|
437
|
+
case EShapeTextDirection.RIGHT_TO_LEFT:
|
|
438
|
+
hnx = -hnx;
|
|
439
|
+
hny = -hny;
|
|
440
|
+
vnx = -vnx;
|
|
441
|
+
vny = -vny;
|
|
442
|
+
break;
|
|
409
443
|
}
|
|
410
444
|
// Calculate the width / height
|
|
411
445
|
var width = 0;
|
|
@@ -513,6 +547,26 @@ export var buildTextVertex = function (vertices, uvs, voffset, vcount, originX,
|
|
|
513
547
|
}
|
|
514
548
|
}
|
|
515
549
|
break;
|
|
550
|
+
case EShapeTextDirection.RIGHT_TO_LEFT:
|
|
551
|
+
getTextBBox(invertAlignHorizontal(textAlignHorizontal), invertAlignVertical(textAlignVertical), textOffsetHorizontal, textOffsetVertical, textPaddingHorizontal, textPaddingVertical, width, height, x2, y2, x3, y3, x0, y0, x1, y1, hnx, hny, vnx, vny, work);
|
|
552
|
+
tx0 = work.x;
|
|
553
|
+
ty0 = work.y;
|
|
554
|
+
if (textClipping) {
|
|
555
|
+
switch (textAlignHorizontal) {
|
|
556
|
+
case EShapeTextAlignHorizontal.LEFT:
|
|
557
|
+
case EShapeTextAlignHorizontal.CENTER:
|
|
558
|
+
case EShapeTextAlignHorizontal.RIGHT:
|
|
559
|
+
switch (textAlignVertical) {
|
|
560
|
+
case EShapeTextAlignVertical.TOP:
|
|
561
|
+
case EShapeTextAlignVertical.MIDDLE:
|
|
562
|
+
case EShapeTextAlignVertical.BOTTOM:
|
|
563
|
+
lineWidthMaximum = hl - textPaddingHorizontal * 2;
|
|
564
|
+
break;
|
|
565
|
+
}
|
|
566
|
+
break;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
break;
|
|
516
570
|
}
|
|
517
571
|
//
|
|
518
572
|
if (lineWidthMaximum < width) {
|
|
@@ -783,6 +837,21 @@ var adjustTextAlignment = function (vertices, nx, ny, lineCount, vertexIndex, of
|
|
|
783
837
|
break;
|
|
784
838
|
}
|
|
785
839
|
break;
|
|
840
|
+
case EShapeTextDirection.RIGHT_TO_LEFT:
|
|
841
|
+
switch (textAlignHorizontal) {
|
|
842
|
+
case EShapeTextAlignHorizontal.OUTSIDE_RIGHT:
|
|
843
|
+
case EShapeTextAlignHorizontal.LEFT:
|
|
844
|
+
moveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);
|
|
845
|
+
break;
|
|
846
|
+
case EShapeTextAlignHorizontal.CENTER:
|
|
847
|
+
moveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);
|
|
848
|
+
break;
|
|
849
|
+
case EShapeTextAlignHorizontal.OUTSIDE_LEFT:
|
|
850
|
+
case EShapeTextAlignHorizontal.RIGHT:
|
|
851
|
+
// DO NOTHING
|
|
852
|
+
break;
|
|
853
|
+
}
|
|
854
|
+
break;
|
|
786
855
|
}
|
|
787
856
|
}
|
|
788
857
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { UtilCharacterIterator } from \"../../util/util-character-iterator\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport {\n\tEShapeTextAtlas,\n\tEShapeTextAtlasCharacter,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nexport const TEXT_VERTEX_COUNT = 4;\nexport const TEXT_INDEX_COUNT = 2;\nexport const TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\treturn Math.ceil(shape.text.value.length / 12) * 12;\n};\n\nexport const buildTextClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 2;\n\t}\n};\n\nexport const buildTextIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number,\n\ticount: number\n): void => {\n\tlet ii = ioffset * 3 - 1;\n\tconst iimax = (ioffset + icount) * 3 - 1;\n\tlet iv = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = iv;\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 3;\n\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 2;\n\t\tindices[++ii] = iv + 3;\n\t\tiv += 4;\n\t}\n};\n\nexport const buildTextStep = (\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextAtlas: EShapeTextAtlas | undefined,\n\ttextSize: number,\n\ttextOutlineWidth: number,\n\ttextWeight: EShapeTextWeight,\n\tscaleX: number,\n\tscaleY: number\n): void => {\n\tlet is = voffset * 6 - 1;\n\tconst ismax = (voffset + vcount) * 6 - 1;\n\tconst scaleInvariant = toScaleInvariant(EShapeStrokeStyle.NONE);\n\tif (textAtlas != null) {\n\t\tconst scale = textAtlas.font.size / (textSize * (scaleX + scaleY) * 0.5);\n\t\tconst position = textWeight === EShapeTextWeight.NORMAL ? 0.0 : 0.05;\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = textOutlineWidth;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = scale;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = position;\n\t\t}\n\t} else {\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n};\n\nconst getTextBBox = (\n\thalign: EShapeTextAlignHorizontal,\n\tvalign: EShapeTextAlignVertical,\n\thoffset: number,\n\tvoffset: number,\n\thpadding: number,\n\tvpadding: number,\n\twidth: number,\n\theight: number,\n\tx0: number,\n\ty0: number,\n\tx1: number,\n\ty1: number,\n\tx2: number,\n\ty2: number,\n\tx3: number,\n\ty3: number,\n\thnx: number,\n\thny: number,\n\tvnx: number,\n\tvny: number,\n\tresult: Point\n): void => {\n\tswitch (halign) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n};\n\nconst rotateAlignHorizontalRight = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nconst rotateAlignVerticalRight = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t}\n};\n\nconst rotateAlignHorizontalLeft = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t}\n};\n\nconst rotateAlignVerticalLeft = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nexport const buildTextVertex = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\ttextAtlas: EShapeTextAtlas,\n\ttextSize: number,\n\ttextValue: string,\n\ttextStyle: EShapeTextStyle,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical,\n\ttextOffsetHorizontal: number,\n\ttextOffsetVertical: number,\n\ttextSpacingHorizontal: number,\n\ttextSpacingVertical: number,\n\ttextDirection: EShapeTextDirection,\n\ttextPaddingHorizontal: number,\n\ttextPaddingVertical: number,\n\ttextClipping: boolean,\n\ttextWorld: number[],\n\ttextureUvs: TextureUvs,\n\tinternalTransform: Matrix\n): void => {\n\t// Calculate the transformed positions\n\t//\n\t// 0 1\n\t// |---------------|\n\t// | |\n\t// |3 |2\n\t// |---------------|\n\t//\n\tconst sx = sizeX * 0.5;\n\tconst sy = sizeY * 0.5;\n\n\tconst a = internalTransform.a;\n\tconst b = internalTransform.b;\n\tconst c = internalTransform.c;\n\tconst d = internalTransform.d;\n\tconst tx = internalTransform.tx;\n\tconst ty = internalTransform.ty;\n\n\tconst ltx = originX - sx;\n\tconst lty = originY - sy;\n\tconst rtx = originX + sx;\n\tconst rty = originY - sy;\n\tconst rbx = originX + sx;\n\tconst rby = originY + sy;\n\tconst x0 = a * ltx + c * lty + tx;\n\tconst y0 = b * ltx + d * lty + ty;\n\tconst x1 = a * rtx + c * rty + tx;\n\tconst y1 = b * rtx + d * rty + ty;\n\tconst x2 = a * rbx + c * rby + tx;\n\tconst y2 = b * rbx + d * rby + ty;\n\tconst x3 = x0 + (x2 - x1);\n\tconst y3 = y0 + (y2 - y1);\n\n\t// Horizontal normal\n\tconst hl = toLength(x0, y0, x1, y1);\n\tlet hnl = toLength(0, 0, a, b);\n\tlet hnx = 1;\n\tlet hny = 0;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst hnli = 1 / hnl;\n\t\thnx = a * hnli;\n\t\thny = b * hnli;\n\t}\n\n\t// Vertical normal\n\tconst vl = toLength(x0, y0, x3, y3);\n\tlet vnl = toLength(0, 0, c, d);\n\tlet vnx = 0;\n\tlet vny = 1;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst vnli = 1 / vnl;\n\t\tvnx = c * vnli;\n\t\tvny = d * vnli;\n\t}\n\n\tconst work = TEXT_WORK_POINT;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t// DO NOTHING\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = -hnx;\n\t\t\tvny = -hny;\n\t\t\thnx = work.x;\n\t\t\thny = work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = hnx;\n\t\t\tvny = hny;\n\t\t\thnx = -work.x;\n\t\t\thny = -work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t}\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tconst textSizeY = textSize * vnl;\n\tconst lineHeight = Math.max(0, textSize + textSpacingVertical) * vnl;\n\tlet lineWidth = 0;\n\tconst textAtlasCharacters = textAtlas.characters;\n\tconst iterator = UtilCharacterIterator.from(textValue);\n\tlet advancePrevious = 0;\n\twhile (iterator.hasNext()) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tif (data) {\n\t\t\t\tadvancePrevious = data.advance;\n\t\t\t\theightChar = data.height;\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\t\t\twidth = Math.max(width, lineWidth);\n\t\t\tlineWidth = 0;\n\t\t\theight += lineHeight;\n\t\t}\n\t}\n\n\tconst scaleZ = textSize / textAtlas.font.size;\n\tconst scaleX = hnl * scaleZ;\n\tconst scaleY = vnl * scaleZ;\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth) * scaleX;\n\tlineWidth = 0;\n\theightChar *= scaleY;\n\theight += textSizeY;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = NaN;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tgetTextBBox(\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalRight(textAlignVertical),\n\t\t\t\trotateAlignHorizontalRight(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalLeft(textAlignVertical),\n\t\t\t\trotateAlignHorizontalLeft(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\t//\n\tif (lineWidthMaximum < width) {\n\t\tconst dwidth = (width - lineWidthMaximum) * 0.5;\n\t\ttextWorld[0] = tx0 + hnx * dwidth;\n\t\ttextWorld[1] = ty0 + hny * dwidth;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = lineWidthMaximum;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t} else {\n\t\ttextWorld[0] = tx0;\n\t\ttextWorld[1] = ty0;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = width;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t}\n\n\t// Texture\n\tconst uvx0 = textureUvs.x0;\n\tconst uvx1 = textureUvs.x1;\n\tconst uvx3 = textureUvs.x3;\n\tconst uvy0 = textureUvs.y0;\n\tconst uvy1 = textureUvs.y1;\n\tconst uvy3 = textureUvs.y3;\n\n\tconst duvx01 = uvx1 - uvx0;\n\tconst duvy01 = uvy1 - uvy0;\n\tconst duvx03 = uvx3 - uvx0;\n\tconst duvy03 = uvy3 - uvy0;\n\n\t// Vertices & UVs\n\tconst lhx = lineHeight * vnx;\n\tconst lhy = lineHeight * vny;\n\n\tconst snx = scaleX * hnx;\n\tconst sny = scaleX * hny;\n\n\tconst offsetY = (heightChar - textSizeY) * 0.5;\n\tconst oyx = offsetY * vnx;\n\tconst oyy = offsetY * vny;\n\n\tconst offsetItalic = textStyle === EShapeTextStyle.NORMAL ? 0 : textSize * 0.25;\n\tlet bx0 = tx0 - oyx + offsetItalic * snx;\n\tlet by0 = ty0 - oyy + offsetItalic * sny;\n\tlet bx3 = tx0 + oyx + textSizeY * vnx;\n\tlet by3 = ty0 + oyy + textSizeY * vny;\n\tlet cx0 = bx0;\n\tlet cy0 = by0;\n\tlet cx3 = bx3;\n\tlet cy3 = by3;\n\n\tlineWidth = 0;\n\tadvancePrevious = 0;\n\titerator.position = 0;\n\tlet lineCount = 0;\n\tlet iv = voffset * 2;\n\tfor (; iterator.hasNext(); iv += 8) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tconst lineWidthPrevious = lineWidth;\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\n\t\t\tconst ax = lineWidth * snx;\n\t\t\tconst ay = lineWidth * sny;\n\t\t\tcx0 = bx0 + ax;\n\t\t\tcy0 = by0 + ay;\n\t\t\tcx3 = bx3 + ax;\n\t\t\tcy3 = by3 + ay;\n\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tlineCount += 1;\n\t\t\tif (data) {\n\t\t\t\tconst advance = data.advance;\n\t\t\t\tif (lineWidthMaximum < (lineWidth + advance) * scaleX) {\n\t\t\t\t\tconst dots = textAtlasCharacters[\"...\"];\n\t\t\t\t\tif (dots) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t1 < lineCount &&\n\t\t\t\t\t\t\tlineWidthMaximum < (lineWidth + dots.advance) * scaleX\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlineWidth = lineWidthPrevious;\n\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\tlineCount -= 1;\n\t\t\t\t\t\t\tconst bx = lineWidth * snx;\n\t\t\t\t\t\t\tconst by = lineWidth * sny;\n\t\t\t\t\t\t\tcx0 = bx0 + bx;\n\t\t\t\t\t\t\tcy0 = by0 + by;\n\t\t\t\t\t\t\tcx3 = bx3 + bx;\n\t\t\t\t\t\t\tcy3 = by3 + by;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadvancePrevious = dots.advance;\n\n\t\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tdots,\n\t\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\t\tsnx,\n\t\t\t\t\t\t\tsny,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfor (iv += 8; true; iv += 8) {\n\t\t\t\t\t\t\tif (iterator.hasNext() && iterator.advance(\"\\n\")) {\n\t\t\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tlineCount += 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tuvs,\n\t\t\t\t\t\tiv,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\tsnx,\n\t\t\t\t\t\tsny,\n\t\t\t\t\t\tcx0,\n\t\t\t\t\t\tcy0,\n\t\t\t\t\t\tcx3,\n\t\t\t\t\t\tcy3,\n\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\tuvy0\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\n\t\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\n\t\t\tbx0 += lhx;\n\t\t\tby0 += lhy;\n\t\t\tbx3 += lhx;\n\t\t\tby3 += lhy;\n\t\t\tcx0 = bx0;\n\t\t\tcy0 = by0;\n\t\t\tcx3 = bx3;\n\t\t\tcy3 = by3;\n\n\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\n\t\t\tadjustTextAlignment(\n\t\t\t\tvertices,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tlineCount,\n\t\t\t\tiv,\n\t\t\t\twidth - lineWidth * scaleX,\n\t\t\t\ttextDirection,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical\n\t\t\t);\n\t\t\tlineWidth = 0;\n\t\t\tlineCount = 0;\n\t\t}\n\t}\n\n\tlineWidth += advancePrevious;\n\tadjustTextAlignment(\n\t\tvertices,\n\t\thnx,\n\t\thny,\n\t\tlineCount,\n\t\tiv,\n\t\twidth - lineWidth * scaleX,\n\t\ttextDirection,\n\t\ttextAlignHorizontal,\n\t\ttextAlignVertical\n\t);\n\n\tfor (const ivmax = (voffset + vcount) * 2; iv < ivmax; iv += 2) {\n\t\tvertices[iv + 0] = tx0;\n\t\tvertices[iv + 1] = ty0;\n\t\tuvs[iv + 0] = uvx0;\n\t\tuvs[iv + 1] = uvy0;\n\t}\n};\n\nconst writeCharacterEmpty = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tuvx0: number,\n\tuvy0: number,\n\tuvx3: number,\n\tuvy3: number\n): void => {\n\tvertices[iv + 0] = cx0;\n\tvertices[iv + 1] = cy0;\n\tvertices[iv + 2] = cx0;\n\tvertices[iv + 3] = cy0;\n\tvertices[iv + 4] = cx3;\n\tvertices[iv + 5] = cy3;\n\tvertices[iv + 6] = cx3;\n\tvertices[iv + 7] = cy3;\n\n\tuvs[iv + 0] = uvx0;\n\tuvs[iv + 1] = uvy0;\n\tuvs[iv + 2] = uvx0;\n\tuvs[iv + 3] = uvy0;\n\tuvs[iv + 4] = uvx3;\n\tuvs[iv + 5] = uvy3;\n\tuvs[iv + 6] = uvx3;\n\tuvs[iv + 7] = uvy3;\n};\n\nconst writeCharacter = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tdata: EShapeTextAtlasCharacter,\n\tatlas: EShapeTextAtlas,\n\tsnx: number,\n\tsny: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tduvx01: number,\n\tduvy01: number,\n\tduvx03: number,\n\tduvy03: number,\n\tuvx0: number,\n\tuvy0: number\n): void => {\n\t// Vertices\n\tconst dataOffsetX = data.x - data.origin.x;\n\tconst dataWidth = data.width;\n\tconst dx0 = dataOffsetX * snx;\n\tconst dy0 = dataOffsetX * sny;\n\tconst dx1 = (dataOffsetX + dataWidth) * snx;\n\tconst dy1 = (dataOffsetX + dataWidth) * sny;\n\tvertices[iv + 0] = cx0 + dx0;\n\tvertices[iv + 1] = cy0 + dy0;\n\tvertices[iv + 2] = cx0 + dx1;\n\tvertices[iv + 3] = cy0 + dy1;\n\tvertices[iv + 4] = cx3 + dx1;\n\tvertices[iv + 5] = cy3 + dy1;\n\tvertices[iv + 6] = cx3 + dx0;\n\tvertices[iv + 7] = cy3 + dy0;\n\n\t// UVs\n\tconst px0 = data.x / atlas.width;\n\tconst py0 = data.y / atlas.height;\n\tconst px1 = (data.x + data.width) / atlas.width;\n\tconst py1 = (data.y + data.height) / atlas.height;\n\n\tconst dux0 = duvx01 * px0;\n\tconst duy0 = duvy01 * px0;\n\tconst dux1 = duvx01 * px1;\n\tconst duy1 = duvy01 * px1;\n\n\tconst dvx0 = duvx03 * py0;\n\tconst dvy0 = duvy03 * py0;\n\tconst dvx1 = duvx03 * py1;\n\tconst dvy1 = duvy03 * py1;\n\tuvs[iv + 0] = uvx0 + dux0 + dvx0;\n\tuvs[iv + 1] = uvy0 + duy0 + dvy0;\n\tuvs[iv + 2] = uvx0 + dux1 + dvx0;\n\tuvs[iv + 3] = uvy0 + duy1 + dvy0;\n\tuvs[iv + 4] = uvx0 + dux1 + dvx1;\n\tuvs[iv + 5] = uvy0 + duy1 + dvy1;\n\tuvs[iv + 6] = uvx0 + dux0 + dvx1;\n\tuvs[iv + 7] = uvy0 + duy0 + dvy1;\n};\n\nconst moveText = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\tdx: number,\n\tdy: number\n): void => {\n\tlet iv = vertexIndex - 8 * textCount - 1;\n\tfor (let i = 0; i < textCount; ++i) {\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t}\n};\n\nconst moveTextHalf = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\toffset *= 0.5;\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst moveTextFull = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst adjustTextAlignment = (\n\tvertices: Float32Array,\n\tnx: number,\n\tny: number,\n\tlineCount: number,\n\tvertexIndex: number,\n\toffset: number,\n\ttextDirection: EShapeTextDirection,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): void => {\n\tif (TEXT_FMIN < offset) {\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n"]}
|
|
1
|
+
{"version":3,"file":"build-text.js","sourceRoot":"","sources":["../../../../../src/main/typescript/wcardinal/ui/shape/variant/build-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Point, TextureUvs } from \"pixi.js\";\nimport { UtilCharacterIterator } from \"../../util/util-character-iterator\";\nimport { EShape } from \"../e-shape\";\nimport { EShapeStrokeStyle } from \"../e-shape-stroke-style\";\nimport {\n\tEShapeTextAtlas,\n\tEShapeTextAtlasCharacter,\n\tEShapeTextStyle,\n\tEShapeTextWeight\n} from \"../e-shape-text\";\nimport { EShapeTextAlignHorizontal } from \"../e-shape-text-align-horizontal\";\nimport { EShapeTextAlignVertical } from \"../e-shape-text-align-vertical\";\nimport { EShapeTextDirection } from \"../e-shape-text-direction\";\nimport { toLength } from \"./to-length\";\nimport { toScaleInvariant } from \"./to-scale-invariant\";\n\nexport const TEXT_VERTEX_COUNT = 4;\nexport const TEXT_INDEX_COUNT = 2;\nexport const TEXT_FMIN: number = 0.00001;\nconst TEXT_WORK_POINT: Point = new Point();\n\nexport const toTextBufferCount = (shape: EShape): number => {\n\treturn Math.ceil(shape.text.value.length / 12) * 12;\n};\n\nexport const buildTextClipping = (\n\tclippings: Float32Array,\n\tvoffset: number,\n\tvcount: number\n): void => {\n\tlet ic = voffset * 3 - 1;\n\tconst icmax = (voffset + vcount) * 3 - 1;\n\tfor (; ic < icmax; ) {\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 0;\n\t\tclippings[++ic] = 2;\n\t}\n};\n\nexport const buildTextIndex = (\n\tindices: Uint16Array | Uint32Array,\n\tvoffset: number,\n\tioffset: number,\n\ticount: number\n): void => {\n\tlet ii = ioffset * 3 - 1;\n\tconst iimax = (ioffset + icount) * 3 - 1;\n\tlet iv = voffset;\n\tfor (; ii < iimax; ) {\n\t\tindices[++ii] = iv;\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 3;\n\n\t\tindices[++ii] = iv + 1;\n\t\tindices[++ii] = iv + 2;\n\t\tindices[++ii] = iv + 3;\n\t\tiv += 4;\n\t}\n};\n\nexport const buildTextStep = (\n\tsteps: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\ttextAtlas: EShapeTextAtlas | undefined,\n\ttextSize: number,\n\ttextOutlineWidth: number,\n\ttextWeight: EShapeTextWeight,\n\tscaleX: number,\n\tscaleY: number\n): void => {\n\tlet is = voffset * 6 - 1;\n\tconst ismax = (voffset + vcount) * 6 - 1;\n\tconst scaleInvariant = toScaleInvariant(EShapeStrokeStyle.NONE);\n\tif (textAtlas != null) {\n\t\tconst scale = textAtlas.font.size / (textSize * (scaleX + scaleY) * 0.5);\n\t\tconst position = textWeight === EShapeTextWeight.NORMAL ? 0.0 : 0.05;\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = textOutlineWidth;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = scale;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = position;\n\t\t}\n\t} else {\n\t\tfor (; is < ismax; ) {\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = scaleInvariant;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 1;\n\t\t\tsteps[++is] = 0;\n\t\t\tsteps[++is] = 0;\n\t\t}\n\t}\n};\n\nconst getTextBBox = (\n\thalign: EShapeTextAlignHorizontal,\n\tvalign: EShapeTextAlignVertical,\n\thoffset: number,\n\tvoffset: number,\n\thpadding: number,\n\tvpadding: number,\n\twidth: number,\n\theight: number,\n\tx0: number,\n\ty0: number,\n\tx1: number,\n\ty1: number,\n\tx2: number,\n\ty2: number,\n\tx3: number,\n\ty3: number,\n\thnx: number,\n\thny: number,\n\tvnx: number,\n\tvny: number,\n\tresult: Point\n): void => {\n\tswitch (halign) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x1) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y1) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x3 + x2) +\n\t\t\t\t\t\thnx * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvnx * (voffset + vpadding);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y3 + y2) +\n\t\t\t\t\t\thny * (hoffset - 0.5 * width) +\n\t\t\t\t\t\tvny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x0 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y0 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x0 + x3) +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y0 + y3) +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx3 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty3 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx0 +\n\t\t\t\t\t\thnx * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty0 +\n\t\t\t\t\t\thny * (hoffset - hpadding - width) +\n\t\t\t\t\t\tvny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x3 + hnx * (hoffset - hpadding - width) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y3 + hny * (hoffset - hpadding - width) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\tswitch (valign) {\n\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tresult.x = x1 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y1 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\t0.5 * (x1 + x2) +\n\t\t\t\t\t\thnx * (hoffset + hpadding) +\n\t\t\t\t\t\tvnx * (voffset - 0.5 * height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\t0.5 * (y1 + y2) +\n\t\t\t\t\t\thny * (hoffset + hpadding) +\n\t\t\t\t\t\tvny * (voffset - 0.5 * height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx2 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty2 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tresult.x =\n\t\t\t\t\t\tx1 + hnx * (hoffset + hpadding) + vnx * (voffset - vpadding - height);\n\t\t\t\t\tresult.y =\n\t\t\t\t\t\ty1 + hny * (hoffset + hpadding) + vny * (voffset - vpadding - height);\n\t\t\t\t\tbreak;\n\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tresult.x = x2 + hnx * (hoffset + hpadding) + vnx * (voffset + vpadding);\n\t\t\t\t\tresult.y = y2 + hny * (hoffset + hpadding) + vny * (voffset + vpadding);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t}\n};\n\nconst rotateAlignHorizontalRight = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nconst rotateAlignVerticalRight = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t}\n};\n\nconst rotateAlignHorizontalLeft = (align: EShapeTextAlignHorizontal): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t}\n};\n\nconst rotateAlignVerticalLeft = (align: EShapeTextAlignVertical): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignHorizontal = (align: EShapeTextAlignHorizontal): EShapeTextAlignHorizontal => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.RIGHT;\n\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\treturn EShapeTextAlignHorizontal.CENTER;\n\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.LEFT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_RIGHT;\n\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\treturn EShapeTextAlignHorizontal.OUTSIDE_LEFT;\n\t}\n};\n\nconst invertAlignVertical = (align: EShapeTextAlignVertical): EShapeTextAlignVertical => {\n\tswitch (align) {\n\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\treturn EShapeTextAlignVertical.BOTTOM;\n\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\treturn EShapeTextAlignVertical.MIDDLE;\n\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.TOP;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_BOTTOM;\n\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\treturn EShapeTextAlignVertical.OUTSIDE_TOP;\n\t}\n};\n\nexport const buildTextVertex = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tvoffset: number,\n\tvcount: number,\n\toriginX: number,\n\toriginY: number,\n\tsizeX: number,\n\tsizeY: number,\n\ttextAtlas: EShapeTextAtlas,\n\ttextSize: number,\n\ttextValue: string,\n\ttextStyle: EShapeTextStyle,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical,\n\ttextOffsetHorizontal: number,\n\ttextOffsetVertical: number,\n\ttextSpacingHorizontal: number,\n\ttextSpacingVertical: number,\n\ttextDirection: EShapeTextDirection,\n\ttextPaddingHorizontal: number,\n\ttextPaddingVertical: number,\n\ttextClipping: boolean,\n\ttextWorld: number[],\n\ttextureUvs: TextureUvs,\n\tinternalTransform: Matrix\n): void => {\n\t// Calculate the transformed positions\n\t//\n\t// 0 1\n\t// |---------------|\n\t// | |\n\t// |3 |2\n\t// |---------------|\n\t//\n\tconst sx = sizeX * 0.5;\n\tconst sy = sizeY * 0.5;\n\n\tconst a = internalTransform.a;\n\tconst b = internalTransform.b;\n\tconst c = internalTransform.c;\n\tconst d = internalTransform.d;\n\tconst tx = internalTransform.tx;\n\tconst ty = internalTransform.ty;\n\n\tconst ltx = originX - sx;\n\tconst lty = originY - sy;\n\tconst rtx = originX + sx;\n\tconst rty = originY - sy;\n\tconst rbx = originX + sx;\n\tconst rby = originY + sy;\n\tconst x0 = a * ltx + c * lty + tx;\n\tconst y0 = b * ltx + d * lty + ty;\n\tconst x1 = a * rtx + c * rty + tx;\n\tconst y1 = b * rtx + d * rty + ty;\n\tconst x2 = a * rbx + c * rby + tx;\n\tconst y2 = b * rbx + d * rby + ty;\n\tconst x3 = x0 + (x2 - x1);\n\tconst y3 = y0 + (y2 - y1);\n\n\t// Horizontal normal\n\tconst hl = toLength(x0, y0, x1, y1);\n\tlet hnl = toLength(0, 0, a, b);\n\tlet hnx = 1;\n\tlet hny = 0;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst hnli = 1 / hnl;\n\t\thnx = a * hnli;\n\t\thny = b * hnli;\n\t}\n\n\t// Vertical normal\n\tconst vl = toLength(x0, y0, x3, y3);\n\tlet vnl = toLength(0, 0, c, d);\n\tlet vnx = 0;\n\tlet vny = 1;\n\tif (TEXT_FMIN < hnl) {\n\t\tconst vnli = 1 / vnl;\n\t\tvnx = c * vnli;\n\t\tvny = d * vnli;\n\t}\n\n\tconst work = TEXT_WORK_POINT;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t// DO NOTHING\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = -hnx;\n\t\t\tvny = -hny;\n\t\t\thnx = work.x;\n\t\t\thny = work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\twork.set(vnx, vny);\n\t\t\tvnx = hnx;\n\t\t\tvny = hny;\n\t\t\thnx = -work.x;\n\t\t\thny = -work.y;\n\n\t\t\twork.x = vnl;\n\t\t\tvnl = hnl;\n\t\t\thnl = work.x;\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\thnx = -hnx;\n\t\t\thny = -hny;\n\t\t\tvnx = -vnx;\n\t\t\tvny = -vny;\n\t\t\tbreak;\n\t}\n\n\t// Calculate the width / height\n\tlet width = 0;\n\tlet height = 0;\n\tlet heightChar = 0;\n\tconst textSizeY = textSize * vnl;\n\tconst lineHeight = Math.max(0, textSize + textSpacingVertical) * vnl;\n\tlet lineWidth = 0;\n\tconst textAtlasCharacters = textAtlas.characters;\n\tconst iterator = UtilCharacterIterator.from(textValue);\n\tlet advancePrevious = 0;\n\twhile (iterator.hasNext()) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tif (data) {\n\t\t\t\tadvancePrevious = data.advance;\n\t\t\t\theightChar = data.height;\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\t\t\twidth = Math.max(width, lineWidth);\n\t\t\tlineWidth = 0;\n\t\t\theight += lineHeight;\n\t\t}\n\t}\n\n\tconst scaleZ = textSize / textAtlas.font.size;\n\tconst scaleX = hnl * scaleZ;\n\tconst scaleY = vnl * scaleZ;\n\tlineWidth += advancePrevious;\n\twidth = Math.max(width, lineWidth) * scaleX;\n\tlineWidth = 0;\n\theightChar *= scaleY;\n\theight += textSizeY;\n\n\t//\n\tlet tx0 = 0;\n\tlet ty0 = 0;\n\tlet lineWidthMaximum = NaN;\n\tswitch (textDirection) {\n\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\tgetTextBBox(\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalRight(textAlignVertical),\n\t\t\t\trotateAlignHorizontalRight(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\tgetTextBBox(\n\t\t\t\trotateAlignVerticalLeft(textAlignVertical),\n\t\t\t\trotateAlignHorizontalLeft(textAlignHorizontal),\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t\t\tlineWidthMaximum = vl - textPaddingVertical * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\tgetTextBBox(\n\t\t\t\tinvertAlignHorizontal(textAlignHorizontal),\n\t\t\t\tinvertAlignVertical(textAlignVertical),\n\t\t\t\ttextOffsetHorizontal,\n\t\t\t\ttextOffsetVertical,\n\t\t\t\ttextPaddingHorizontal,\n\t\t\t\ttextPaddingVertical,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tx2,\n\t\t\t\ty2,\n\t\t\t\tx3,\n\t\t\t\ty3,\n\t\t\t\tx0,\n\t\t\t\ty0,\n\t\t\t\tx1,\n\t\t\t\ty1,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tvnx,\n\t\t\t\tvny,\n\t\t\t\twork\n\t\t\t);\n\t\t\ttx0 = work.x;\n\t\t\tty0 = work.y;\n\t\t\tif (textClipping) {\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t\t\tlineWidthMaximum = hl - textPaddingHorizontal * 2;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\t//\n\tif (lineWidthMaximum < width) {\n\t\tconst dwidth = (width - lineWidthMaximum) * 0.5;\n\t\ttextWorld[0] = tx0 + hnx * dwidth;\n\t\ttextWorld[1] = ty0 + hny * dwidth;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = lineWidthMaximum;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t} else {\n\t\ttextWorld[0] = tx0;\n\t\ttextWorld[1] = ty0;\n\t\ttextWorld[2] = hnx;\n\t\ttextWorld[3] = hny;\n\t\ttextWorld[4] = vnx;\n\t\ttextWorld[5] = vny;\n\t\ttextWorld[6] = width;\n\t\ttextWorld[7] = height;\n\t\ttextWorld[8] = hnl;\n\t\ttextWorld[9] = vnl;\n\t}\n\n\t// Texture\n\tconst uvx0 = textureUvs.x0;\n\tconst uvx1 = textureUvs.x1;\n\tconst uvx3 = textureUvs.x3;\n\tconst uvy0 = textureUvs.y0;\n\tconst uvy1 = textureUvs.y1;\n\tconst uvy3 = textureUvs.y3;\n\n\tconst duvx01 = uvx1 - uvx0;\n\tconst duvy01 = uvy1 - uvy0;\n\tconst duvx03 = uvx3 - uvx0;\n\tconst duvy03 = uvy3 - uvy0;\n\n\t// Vertices & UVs\n\tconst lhx = lineHeight * vnx;\n\tconst lhy = lineHeight * vny;\n\n\tconst snx = scaleX * hnx;\n\tconst sny = scaleX * hny;\n\n\tconst offsetY = (heightChar - textSizeY) * 0.5;\n\tconst oyx = offsetY * vnx;\n\tconst oyy = offsetY * vny;\n\n\tconst offsetItalic = textStyle === EShapeTextStyle.NORMAL ? 0 : textSize * 0.25;\n\tlet bx0 = tx0 - oyx + offsetItalic * snx;\n\tlet by0 = ty0 - oyy + offsetItalic * sny;\n\tlet bx3 = tx0 + oyx + textSizeY * vnx;\n\tlet by3 = ty0 + oyy + textSizeY * vny;\n\tlet cx0 = bx0;\n\tlet cy0 = by0;\n\tlet cx3 = bx3;\n\tlet cy3 = by3;\n\n\tlineWidth = 0;\n\tadvancePrevious = 0;\n\titerator.position = 0;\n\tlet lineCount = 0;\n\tlet iv = voffset * 2;\n\tfor (; iterator.hasNext(); iv += 8) {\n\t\tconst character = iterator.next();\n\t\tif (character !== \"\\n\") {\n\t\t\tconst lineWidthPrevious = lineWidth;\n\t\t\tif (0 < advancePrevious) {\n\t\t\t\tlineWidth += Math.max(0, advancePrevious + textSpacingHorizontal);\n\t\t\t}\n\n\t\t\tconst ax = lineWidth * snx;\n\t\t\tconst ay = lineWidth * sny;\n\t\t\tcx0 = bx0 + ax;\n\t\t\tcy0 = by0 + ay;\n\t\t\tcx3 = bx3 + ax;\n\t\t\tcy3 = by3 + ay;\n\n\t\t\tconst data = textAtlasCharacters[character];\n\t\t\tlineCount += 1;\n\t\t\tif (data) {\n\t\t\t\tconst advance = data.advance;\n\t\t\t\tif (lineWidthMaximum < (lineWidth + advance) * scaleX) {\n\t\t\t\t\tconst dots = textAtlasCharacters[\"...\"];\n\t\t\t\t\tif (dots) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t1 < lineCount &&\n\t\t\t\t\t\t\tlineWidthMaximum < (lineWidth + dots.advance) * scaleX\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlineWidth = lineWidthPrevious;\n\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\tlineCount -= 1;\n\t\t\t\t\t\t\tconst bx = lineWidth * snx;\n\t\t\t\t\t\t\tconst by = lineWidth * sny;\n\t\t\t\t\t\t\tcx0 = bx0 + bx;\n\t\t\t\t\t\t\tcy0 = by0 + by;\n\t\t\t\t\t\t\tcx3 = bx3 + bx;\n\t\t\t\t\t\t\tcy3 = by3 + by;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadvancePrevious = dots.advance;\n\n\t\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tdots,\n\t\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\t\tsnx,\n\t\t\t\t\t\t\tsny,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfor (iv += 8; true; iv += 8) {\n\t\t\t\t\t\t\tif (iterator.hasNext() && iterator.advance(\"\\n\")) {\n\t\t\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tlineCount += 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tiv -= 8;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\t\twriteCharacterEmpty(\n\t\t\t\t\t\t\tvertices,\n\t\t\t\t\t\t\tuvs,\n\t\t\t\t\t\t\tiv,\n\t\t\t\t\t\t\tcx0,\n\t\t\t\t\t\t\tcy0,\n\t\t\t\t\t\t\tcx3,\n\t\t\t\t\t\t\tcy3,\n\t\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\t\tuvy0,\n\t\t\t\t\t\t\tuvx3,\n\t\t\t\t\t\t\tuvy3\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tadvancePrevious = advance;\n\n\t\t\t\t\twriteCharacter(\n\t\t\t\t\t\tvertices,\n\t\t\t\t\t\tuvs,\n\t\t\t\t\t\tiv,\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\ttextAtlas,\n\t\t\t\t\t\tsnx,\n\t\t\t\t\t\tsny,\n\t\t\t\t\t\tcx0,\n\t\t\t\t\t\tcy0,\n\t\t\t\t\t\tcx3,\n\t\t\t\t\t\tcy3,\n\t\t\t\t\t\tduvx01,\n\t\t\t\t\t\tduvy01,\n\t\t\t\t\t\tduvx03,\n\t\t\t\t\t\tduvy03,\n\t\t\t\t\t\tuvx0,\n\t\t\t\t\t\tuvy0\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tadvancePrevious = 0;\n\n\t\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\t\t\t}\n\t\t} else {\n\t\t\tlineWidth += advancePrevious;\n\t\t\tadvancePrevious = 0;\n\n\t\t\tbx0 += lhx;\n\t\t\tby0 += lhy;\n\t\t\tbx3 += lhx;\n\t\t\tby3 += lhy;\n\t\t\tcx0 = bx0;\n\t\t\tcy0 = by0;\n\t\t\tcx3 = bx3;\n\t\t\tcy3 = by3;\n\n\t\t\twriteCharacterEmpty(vertices, uvs, iv, cx0, cy0, cx3, cy3, uvx0, uvy0, uvx3, uvy3);\n\n\t\t\tadjustTextAlignment(\n\t\t\t\tvertices,\n\t\t\t\thnx,\n\t\t\t\thny,\n\t\t\t\tlineCount,\n\t\t\t\tiv,\n\t\t\t\twidth - lineWidth * scaleX,\n\t\t\t\ttextDirection,\n\t\t\t\ttextAlignHorizontal,\n\t\t\t\ttextAlignVertical\n\t\t\t);\n\t\t\tlineWidth = 0;\n\t\t\tlineCount = 0;\n\t\t}\n\t}\n\n\tlineWidth += advancePrevious;\n\tadjustTextAlignment(\n\t\tvertices,\n\t\thnx,\n\t\thny,\n\t\tlineCount,\n\t\tiv,\n\t\twidth - lineWidth * scaleX,\n\t\ttextDirection,\n\t\ttextAlignHorizontal,\n\t\ttextAlignVertical\n\t);\n\n\tfor (const ivmax = (voffset + vcount) * 2; iv < ivmax; iv += 2) {\n\t\tvertices[iv + 0] = tx0;\n\t\tvertices[iv + 1] = ty0;\n\t\tuvs[iv + 0] = uvx0;\n\t\tuvs[iv + 1] = uvy0;\n\t}\n};\n\nconst writeCharacterEmpty = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tuvx0: number,\n\tuvy0: number,\n\tuvx3: number,\n\tuvy3: number\n): void => {\n\tvertices[iv + 0] = cx0;\n\tvertices[iv + 1] = cy0;\n\tvertices[iv + 2] = cx0;\n\tvertices[iv + 3] = cy0;\n\tvertices[iv + 4] = cx3;\n\tvertices[iv + 5] = cy3;\n\tvertices[iv + 6] = cx3;\n\tvertices[iv + 7] = cy3;\n\n\tuvs[iv + 0] = uvx0;\n\tuvs[iv + 1] = uvy0;\n\tuvs[iv + 2] = uvx0;\n\tuvs[iv + 3] = uvy0;\n\tuvs[iv + 4] = uvx3;\n\tuvs[iv + 5] = uvy3;\n\tuvs[iv + 6] = uvx3;\n\tuvs[iv + 7] = uvy3;\n};\n\nconst writeCharacter = (\n\tvertices: Float32Array,\n\tuvs: Float32Array,\n\tiv: number,\n\tdata: EShapeTextAtlasCharacter,\n\tatlas: EShapeTextAtlas,\n\tsnx: number,\n\tsny: number,\n\tcx0: number,\n\tcy0: number,\n\tcx3: number,\n\tcy3: number,\n\tduvx01: number,\n\tduvy01: number,\n\tduvx03: number,\n\tduvy03: number,\n\tuvx0: number,\n\tuvy0: number\n): void => {\n\t// Vertices\n\tconst dataOffsetX = data.x - data.origin.x;\n\tconst dataWidth = data.width;\n\tconst dx0 = dataOffsetX * snx;\n\tconst dy0 = dataOffsetX * sny;\n\tconst dx1 = (dataOffsetX + dataWidth) * snx;\n\tconst dy1 = (dataOffsetX + dataWidth) * sny;\n\tvertices[iv + 0] = cx0 + dx0;\n\tvertices[iv + 1] = cy0 + dy0;\n\tvertices[iv + 2] = cx0 + dx1;\n\tvertices[iv + 3] = cy0 + dy1;\n\tvertices[iv + 4] = cx3 + dx1;\n\tvertices[iv + 5] = cy3 + dy1;\n\tvertices[iv + 6] = cx3 + dx0;\n\tvertices[iv + 7] = cy3 + dy0;\n\n\t// UVs\n\tconst px0 = data.x / atlas.width;\n\tconst py0 = data.y / atlas.height;\n\tconst px1 = (data.x + data.width) / atlas.width;\n\tconst py1 = (data.y + data.height) / atlas.height;\n\n\tconst dux0 = duvx01 * px0;\n\tconst duy0 = duvy01 * px0;\n\tconst dux1 = duvx01 * px1;\n\tconst duy1 = duvy01 * px1;\n\n\tconst dvx0 = duvx03 * py0;\n\tconst dvy0 = duvy03 * py0;\n\tconst dvx1 = duvx03 * py1;\n\tconst dvy1 = duvy03 * py1;\n\tuvs[iv + 0] = uvx0 + dux0 + dvx0;\n\tuvs[iv + 1] = uvy0 + duy0 + dvy0;\n\tuvs[iv + 2] = uvx0 + dux1 + dvx0;\n\tuvs[iv + 3] = uvy0 + duy1 + dvy0;\n\tuvs[iv + 4] = uvx0 + dux1 + dvx1;\n\tuvs[iv + 5] = uvy0 + duy1 + dvy1;\n\tuvs[iv + 6] = uvx0 + dux0 + dvx1;\n\tuvs[iv + 7] = uvy0 + duy0 + dvy1;\n};\n\nconst moveText = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\tdx: number,\n\tdy: number\n): void => {\n\tlet iv = vertexIndex - 8 * textCount - 1;\n\tfor (let i = 0; i < textCount; ++i) {\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t\tvertices[++iv] += dx;\n\t\tvertices[++iv] += dy;\n\t}\n};\n\nconst moveTextHalf = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\toffset *= 0.5;\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst moveTextFull = (\n\tvertices: Float32Array,\n\tvertexIndex: number,\n\ttextCount: number,\n\toffset: number,\n\tnx: number,\n\tny: number\n): void => {\n\tmoveText(vertices, vertexIndex, textCount, offset * nx, offset * ny);\n};\n\nconst adjustTextAlignment = (\n\tvertices: Float32Array,\n\tnx: number,\n\tny: number,\n\tlineCount: number,\n\tvertexIndex: number,\n\toffset: number,\n\ttextDirection: EShapeTextDirection,\n\ttextAlignHorizontal: EShapeTextAlignHorizontal,\n\ttextAlignVertical: EShapeTextAlignVertical\n): void => {\n\tif (TEXT_FMIN < offset) {\n\t\tswitch (textDirection) {\n\t\t\tcase EShapeTextDirection.LEFT_TO_RIGHT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.TOP_TO_BOTTOM:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.BOTTOM_TO_TOP:\n\t\t\t\tswitch (textAlignVertical) {\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_BOTTOM:\n\t\t\t\t\tcase EShapeTextAlignVertical.TOP:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.MIDDLE:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignVertical.OUTSIDE_TOP:\n\t\t\t\t\tcase EShapeTextAlignVertical.BOTTOM:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase EShapeTextDirection.RIGHT_TO_LEFT:\n\t\t\t\tswitch (textAlignHorizontal) {\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_RIGHT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.LEFT:\n\t\t\t\t\t\tmoveTextFull(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.CENTER:\n\t\t\t\t\t\tmoveTextHalf(vertices, vertexIndex, lineCount, offset, nx, ny);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase EShapeTextAlignHorizontal.OUTSIDE_LEFT:\n\t\t\t\t\tcase EShapeTextAlignHorizontal.RIGHT:\n\t\t\t\t\t\t// DO NOTHING\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n"]}
|