@wcardinal/wcardinal-ui 0.375.0 → 0.376.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/index.d.ts +0 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-base.d.ts +3 -3
- package/dist/types/wcardinal/ui/shape/variant/e-shape-connector-line.d.ts +1 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-group-size-layout.d.ts +3 -1
- package/dist/types/wcardinal/ui/shape/variant/e-shape-lock-part.d.ts +8 -5
- package/dist/wcardinal/ui/shape/index.js +0 -1
- package/dist/wcardinal/ui/shape/index.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js +64 -44
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js +9 -6
- package/dist/wcardinal/ui/shape/variant/e-shape-connector-line.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js +3 -2
- package/dist/wcardinal/ui/shape/variant/e-shape-group-size-editor.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-group-size-layout.js +67 -4
- package/dist/wcardinal/ui/shape/variant/e-shape-group-size-layout.js.map +1 -1
- package/dist/wcardinal/ui/shape/variant/e-shape-lock-part.js +8 -5
- package/dist/wcardinal/ui/shape/variant/e-shape-lock-part.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark.js +9 -4
- package/dist/wcardinal-ui-theme-dark.min.js +2 -2
- package/dist/wcardinal-ui-theme-dark.min.js.map +1 -1
- package/dist/wcardinal-ui-theme-white.js +9 -4
- package/dist/wcardinal-ui-theme-white.min.js +2 -2
- package/dist/wcardinal-ui-theme-white.min.js.map +1 -1
- package/dist/wcardinal-ui.cjs.js +156 -171
- package/dist/wcardinal-ui.js +156 -171
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +8 -8
- package/dist/types/wcardinal/ui/shape/e-shape-transforms.d.ts +0 -9
- package/dist/wcardinal/ui/shape/e-shape-transforms.js +0 -115
- package/dist/wcardinal/ui/shape/e-shape-transforms.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wcardinal/wcardinal-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.376.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "A WebGL-based UI library",
|
|
6
6
|
"homepage": "https://github.com/winter-cardinal/winter-cardinal-ui",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"pixi.js": "~5.2.1",
|
|
59
59
|
"css-line-break": "2.1.0",
|
|
60
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
61
|
-
"@typescript-eslint/parser": "^
|
|
60
|
+
"@typescript-eslint/eslint-plugin": "^6.11.0",
|
|
61
|
+
"@typescript-eslint/parser": "^6.11.0",
|
|
62
62
|
"@web/dev-server": "^0.1.30",
|
|
63
|
-
"eslint": "^8.
|
|
64
|
-
"eslint-config-prettier": "^
|
|
65
|
-
"eslint-plugin-prettier": "^
|
|
66
|
-
"eslint-plugin-unused-imports": "^
|
|
67
|
-
"prettier": "^
|
|
63
|
+
"eslint": "^8.53.0",
|
|
64
|
+
"eslint-config-prettier": "^9.0.0",
|
|
65
|
+
"eslint-plugin-prettier": "^5.0.1",
|
|
66
|
+
"eslint-plugin-unused-imports": "^3.0.0",
|
|
67
|
+
"prettier": "^3.1.0",
|
|
68
68
|
"rimraf": "^3.0.2",
|
|
69
69
|
"rollup": "^2.70.1",
|
|
70
70
|
"rollup-plugin-commonjs": "^10.1.0",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IPoint, Matrix } from "pixi.js";
|
|
2
|
-
import { EShape } from "./e-shape";
|
|
3
|
-
import { EShapeCapability } from "./e-shape-capability";
|
|
4
|
-
export declare class EShapeTransforms {
|
|
5
|
-
static prepare(shape: EShape): void;
|
|
6
|
-
static finalize(shape: EShape): void;
|
|
7
|
-
static apply(shape: EShape, transform: Matrix, capability: EShapeCapability): void;
|
|
8
|
-
static applyLocal(shape: EShape, localTransform: Matrix, capability: EShapeCapability, size?: IPoint): void;
|
|
9
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2019 Toshiba Corporation
|
|
3
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/
|
|
5
|
-
import { EShapeEditor } from "./e-shape-editor";
|
|
6
|
-
import { EShapeBase } from "./variant/e-shape-base";
|
|
7
|
-
import { toSizeNormalized } from "./variant/to-size-normalized";
|
|
8
|
-
import { EShapeCapability } from "./e-shape-capability";
|
|
9
|
-
import { EShapeLockPart } from "./variant/e-shape-lock-part";
|
|
10
|
-
var EShapeTransforms = /** @class */ (function () {
|
|
11
|
-
function EShapeTransforms() {
|
|
12
|
-
}
|
|
13
|
-
EShapeTransforms.prepare = function (shape) {
|
|
14
|
-
var editor = shape.editor || new EShapeEditor();
|
|
15
|
-
shape.editor = editor;
|
|
16
|
-
// Transform
|
|
17
|
-
shape.updateTransform();
|
|
18
|
-
var parent = shape.parent;
|
|
19
|
-
if (parent instanceof EShapeBase) {
|
|
20
|
-
parent.transform.internalTransform
|
|
21
|
-
.copyTo(editor.internalTransformParentInverse)
|
|
22
|
-
.invert();
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
editor.internalTransformParentInverse.identity();
|
|
26
|
-
}
|
|
27
|
-
shape.transform.internalTransform.copyTo(editor.internalTransform);
|
|
28
|
-
// Rotation
|
|
29
|
-
editor.rotation = shape.transform.rotation;
|
|
30
|
-
// Size
|
|
31
|
-
editor.size.copyFrom(shape.size);
|
|
32
|
-
//
|
|
33
|
-
shape.lock(EShapeLockPart.TRANSFORM);
|
|
34
|
-
};
|
|
35
|
-
EShapeTransforms.finalize = function (shape) {
|
|
36
|
-
shape.unlock(EShapeLockPart.TRANSFORM, true);
|
|
37
|
-
};
|
|
38
|
-
EShapeTransforms.apply = function (shape, transform, capability) {
|
|
39
|
-
var editor = shape.editor;
|
|
40
|
-
if (editor != null) {
|
|
41
|
-
var newLocalTransform = editor.localTransform;
|
|
42
|
-
editor.internalTransformParentInverse
|
|
43
|
-
.copyTo(newLocalTransform)
|
|
44
|
-
.append(transform)
|
|
45
|
-
.append(editor.internalTransform);
|
|
46
|
-
this.applyLocal(shape, newLocalTransform, capability, editor.size);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
EShapeTransforms.applyLocal = function (shape, localTransform, capability, size) {
|
|
50
|
-
shape.lock(EShapeLockPart.UPLOADED);
|
|
51
|
-
// Reconstruct the position, the rotation and the size
|
|
52
|
-
var a = localTransform.a;
|
|
53
|
-
var b = localTransform.b;
|
|
54
|
-
var c = localTransform.c;
|
|
55
|
-
var d = localTransform.d;
|
|
56
|
-
var tx = localTransform.tx;
|
|
57
|
-
var ty = localTransform.ty;
|
|
58
|
-
// Transform
|
|
59
|
-
var transform = shape.transform;
|
|
60
|
-
// Capability
|
|
61
|
-
var cposition = !!(capability & EShapeCapability.POSITION);
|
|
62
|
-
var crotation = !!(capability & EShapeCapability.ROTATION);
|
|
63
|
-
var cskew = !!(capability & EShapeCapability.SKEW);
|
|
64
|
-
var cwidth = !!(capability & EShapeCapability.WIDTH);
|
|
65
|
-
var cheight = !!(capability & EShapeCapability.HEIGHT);
|
|
66
|
-
// Rotation and skew
|
|
67
|
-
if (crotation || cskew) {
|
|
68
|
-
// Rotation
|
|
69
|
-
var rx = Math.atan2(-c, d); // rotation - skewX
|
|
70
|
-
var ry = Math.atan2(+b, a); // rotation + skewY
|
|
71
|
-
if (crotation) {
|
|
72
|
-
transform.rotation = (rx + ry) * 0.5; // Here, assumes `skewX` === `skewY`
|
|
73
|
-
}
|
|
74
|
-
// Skew
|
|
75
|
-
if (cskew) {
|
|
76
|
-
var skew = (ry - rx) * 0.5;
|
|
77
|
-
transform.skew.set(skew, skew);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// Position
|
|
81
|
-
if (cposition) {
|
|
82
|
-
// Assumes the pivot is invariant.
|
|
83
|
-
// tx = position.x - (a * px + c * py)
|
|
84
|
-
// ty = position.y - (b * px + d * py)
|
|
85
|
-
//
|
|
86
|
-
// Thus,
|
|
87
|
-
// position.x = tx + (a * px + c * py)
|
|
88
|
-
// position.y = ty + (b * px + d * py)
|
|
89
|
-
var pivot = transform.pivot;
|
|
90
|
-
var px = pivot.x;
|
|
91
|
-
var py = pivot.y;
|
|
92
|
-
transform.position.set(tx + (a * px + c * py), ty + (b * px + d * py));
|
|
93
|
-
}
|
|
94
|
-
// Scale
|
|
95
|
-
if (size != null && (cwidth || cheight)) {
|
|
96
|
-
var w = toSizeNormalized(size.x * Math.sqrt(a * a + b * b));
|
|
97
|
-
var h = toSizeNormalized(size.y * Math.sqrt(c * c + d * d));
|
|
98
|
-
var s = shape.size;
|
|
99
|
-
if (cwidth && cheight) {
|
|
100
|
-
s.set(w, h);
|
|
101
|
-
}
|
|
102
|
-
else if (cwidth) {
|
|
103
|
-
s.x = w;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
s.y = h;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
//
|
|
110
|
-
shape.unlock(EShapeLockPart.UPLOADED, true);
|
|
111
|
-
};
|
|
112
|
-
return EShapeTransforms;
|
|
113
|
-
}());
|
|
114
|
-
export { EShapeTransforms };
|
|
115
|
-
//# sourceMappingURL=e-shape-transforms.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"e-shape-transforms.js","sourceRoot":"","sources":["../../../../src/main/typescript/wcardinal/ui/shape/e-shape-transforms.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;IAAA;IAqHA,CAAC;IApHO,wBAAO,GAAd,UAAe,KAAa;QAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAClD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAEtB,YAAY;QACZ,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,YAAY,UAAU,EAAE;YACjC,MAAM,CAAC,SAAS,CAAC,iBAAiB;iBAChC,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC;iBAC7C,MAAM,EAAE,CAAC;SACX;aAAM;YACN,MAAM,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;SACjD;QACD,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEnE,WAAW;QACX,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;QAE3C,OAAO;QACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAEM,yBAAQ,GAAf,UAAgB,KAAa;QAC5B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,sBAAK,GAAZ,UAAa,KAAa,EAAE,SAAiB,EAAE,UAA4B;QAC1E,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,IAAI,IAAI,EAAE;YACnB,IAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC;YAChD,MAAM,CAAC,8BAA8B;iBACnC,MAAM,CAAC,iBAAiB,CAAC;iBACzB,MAAM,CAAC,SAAS,CAAC;iBACjB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACnE;IACF,CAAC;IAEM,2BAAU,GAAjB,UACC,KAAa,EACb,cAAsB,EACtB,UAA4B,EAC5B,IAAa;QAEb,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAEpC,sDAAsD;QACtD,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3B,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3B,IAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;QAC7B,IAAM,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;QAE7B,YAAY;QACZ,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,aAAa;QACb,IAAM,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAM,SAAS,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAM,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAM,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvD,IAAM,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzD,oBAAoB;QACpB,IAAI,SAAS,IAAI,KAAK,EAAE;YACvB,WAAW;YACX,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB;YACjD,IAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB;YACjD,IAAI,SAAS,EAAE;gBACd,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,oCAAoC;aAC1E;YAED,OAAO;YACP,IAAI,KAAK,EAAE;gBACV,IAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAC/B;SACD;QAED,WAAW;QACX,IAAI,SAAS,EAAE;YACd,kCAAkC;YAClC,sCAAsC;YACtC,sCAAsC;YACtC,EAAE;YACF,QAAQ;YACR,sCAAsC;YACtC,sCAAsC;YACtC,IAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACnB,IAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACnB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACvE;QAED,QAAQ;QACR,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE;YACxC,IAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;YACrB,IAAI,MAAM,IAAI,OAAO,EAAE;gBACtB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACZ;iBAAM,IAAI,MAAM,EAAE;gBAClB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACR;iBAAM;gBACN,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACR;SACD;QAED,EAAE;QACF,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACF,uBAAC;AAAD,CAAC,AArHD,IAqHC","sourcesContent":["/*\n * Copyright (C) 2019 Toshiba Corporation\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IPoint, Matrix } from \"pixi.js\";\nimport { EShape } from \"./e-shape\";\nimport { EShapeEditor } from \"./e-shape-editor\";\nimport { EShapeBase } from \"./variant/e-shape-base\";\nimport { toSizeNormalized } from \"./variant/to-size-normalized\";\nimport { EShapeCapability } from \"./e-shape-capability\";\nimport { EShapeLockPart } from \"./variant/e-shape-lock-part\";\n\nexport class EShapeTransforms {\n\tstatic prepare(shape: EShape): void {\n\t\tconst editor = shape.editor || new EShapeEditor();\n\t\tshape.editor = editor;\n\n\t\t// Transform\n\t\tshape.updateTransform();\n\t\tconst parent = shape.parent;\n\t\tif (parent instanceof EShapeBase) {\n\t\t\tparent.transform.internalTransform\n\t\t\t\t.copyTo(editor.internalTransformParentInverse)\n\t\t\t\t.invert();\n\t\t} else {\n\t\t\teditor.internalTransformParentInverse.identity();\n\t\t}\n\t\tshape.transform.internalTransform.copyTo(editor.internalTransform);\n\n\t\t// Rotation\n\t\teditor.rotation = shape.transform.rotation;\n\n\t\t// Size\n\t\teditor.size.copyFrom(shape.size);\n\n\t\t//\n\t\tshape.lock(EShapeLockPart.TRANSFORM);\n\t}\n\n\tstatic finalize(shape: EShape): void {\n\t\tshape.unlock(EShapeLockPart.TRANSFORM, true);\n\t}\n\n\tstatic apply(shape: EShape, transform: Matrix, capability: EShapeCapability): void {\n\t\tconst editor = shape.editor;\n\t\tif (editor != null) {\n\t\t\tconst newLocalTransform = editor.localTransform;\n\t\t\teditor.internalTransformParentInverse\n\t\t\t\t.copyTo(newLocalTransform)\n\t\t\t\t.append(transform)\n\t\t\t\t.append(editor.internalTransform);\n\t\t\tthis.applyLocal(shape, newLocalTransform, capability, editor.size);\n\t\t}\n\t}\n\n\tstatic applyLocal(\n\t\tshape: EShape,\n\t\tlocalTransform: Matrix,\n\t\tcapability: EShapeCapability,\n\t\tsize?: IPoint\n\t): void {\n\t\tshape.lock(EShapeLockPart.UPLOADED);\n\n\t\t// Reconstruct the position, the rotation and the size\n\t\tconst a = localTransform.a;\n\t\tconst b = localTransform.b;\n\t\tconst c = localTransform.c;\n\t\tconst d = localTransform.d;\n\t\tconst tx = localTransform.tx;\n\t\tconst ty = localTransform.ty;\n\n\t\t// Transform\n\t\tconst transform = shape.transform;\n\n\t\t// Capability\n\t\tconst cposition = !!(capability & EShapeCapability.POSITION);\n\t\tconst crotation = !!(capability & EShapeCapability.ROTATION);\n\t\tconst cskew = !!(capability & EShapeCapability.SKEW);\n\t\tconst cwidth = !!(capability & EShapeCapability.WIDTH);\n\t\tconst cheight = !!(capability & EShapeCapability.HEIGHT);\n\n\t\t// Rotation and skew\n\t\tif (crotation || cskew) {\n\t\t\t// Rotation\n\t\t\tconst rx = Math.atan2(-c, d); // rotation - skewX\n\t\t\tconst ry = Math.atan2(+b, a); // rotation + skewY\n\t\t\tif (crotation) {\n\t\t\t\ttransform.rotation = (rx + ry) * 0.5; // Here, assumes `skewX` === `skewY`\n\t\t\t}\n\n\t\t\t// Skew\n\t\t\tif (cskew) {\n\t\t\t\tconst skew = (ry - rx) * 0.5;\n\t\t\t\ttransform.skew.set(skew, skew);\n\t\t\t}\n\t\t}\n\n\t\t// Position\n\t\tif (cposition) {\n\t\t\t// Assumes the pivot is invariant.\n\t\t\t// tx = position.x - (a * px + c * py)\n\t\t\t// ty = position.y - (b * px + d * py)\n\t\t\t//\n\t\t\t// Thus,\n\t\t\t// position.x = tx + (a * px + c * py)\n\t\t\t// position.y = ty + (b * px + d * py)\n\t\t\tconst pivot = transform.pivot;\n\t\t\tconst px = pivot.x;\n\t\t\tconst py = pivot.y;\n\t\t\ttransform.position.set(tx + (a * px + c * py), ty + (b * px + d * py));\n\t\t}\n\n\t\t// Scale\n\t\tif (size != null && (cwidth || cheight)) {\n\t\t\tconst w = toSizeNormalized(size.x * Math.sqrt(a * a + b * b));\n\t\t\tconst h = toSizeNormalized(size.y * Math.sqrt(c * c + d * d));\n\t\t\tconst s = shape.size;\n\t\t\tif (cwidth && cheight) {\n\t\t\t\ts.set(w, h);\n\t\t\t} else if (cwidth) {\n\t\t\t\ts.x = w;\n\t\t\t} else {\n\t\t\t\ts.y = h;\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\tshape.unlock(EShapeLockPart.UPLOADED, true);\n\t}\n}\n"]}
|