@leafer/helper 1.0.0-rc.3 → 1.0.0-rc.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer/helper",
3
- "version": "1.0.0-rc.3",
3
+ "version": "1.0.0-rc.5",
4
4
  "description": "@leafer/helper",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -22,9 +22,9 @@
22
22
  "leaferjs"
23
23
  ],
24
24
  "dependencies": {
25
- "@leafer/math": "1.0.0-rc.3"
25
+ "@leafer/math": "1.0.0-rc.5"
26
26
  },
27
27
  "devDependencies": {
28
- "@leafer/interface": "1.0.0-rc.3"
28
+ "@leafer/interface": "1.0.0-rc.5"
29
29
  }
30
30
  }
package/src/LeafHelper.ts CHANGED
@@ -2,7 +2,7 @@ import { IBranch, ILeaf, IMatrixData, IPointData } from '@leafer/interface'
2
2
  import { MathHelper, MatrixHelper, PointHelper } from '@leafer/math'
3
3
 
4
4
 
5
- const { copy, translate, toInnerPoint, scaleOfOuter, rotateOfOuter, skewOfOuter } = MatrixHelper
5
+ const { copy, toInnerPoint, scaleOfOuter, rotateOfOuter, skewOfOuter } = MatrixHelper
6
6
  const matrix = {} as IMatrixData
7
7
 
8
8
  export const LeafHelper = {
@@ -56,9 +56,8 @@ export const LeafHelper = {
56
56
  // transform
57
57
 
58
58
  moveWorld(t: ILeaf, x: number, y: number): void {
59
- t.__layout.checkUpdate()
60
59
  const local = { x, y }
61
- if (t.parent) toInnerPoint(t.parent.__world, local, local, true)
60
+ if (t.parent) toInnerPoint(t.parent.worldTransform, local, local, true)
62
61
  L.moveLocal(t, local.x, local.y)
63
62
  },
64
63
 
@@ -67,53 +66,37 @@ export const LeafHelper = {
67
66
  t.y += y
68
67
  },
69
68
 
70
- zoomOfWorld(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number, moveLayer?: ILeaf): void {
71
- t.__layout.checkUpdate()
72
- const local = t.parent ? PointHelper.tempToInnerOf(origin, t.parent.__world) : origin
73
- this.zoomOfLocal(t, local, scaleX, scaleY, moveLayer)
69
+ zoomOfWorld(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number): void {
70
+ this.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY)
74
71
  },
75
72
 
76
- zoomOfLocal(t: ILeaf, origin: IPointData, scaleX: number, scaleY: number = scaleX, moveLayer?: ILeaf): void {
73
+ zoomOfLocal(t: ILeaf, origin: IPointData, scaleX: number, scaleY: number = scaleX): void {
77
74
  copy(matrix, t.__local)
78
- if (moveLayer) translate(matrix, moveLayer.x, moveLayer.y)
79
75
  scaleOfOuter(matrix, origin, scaleX, scaleY)
80
- if (!moveLayer) moveLayer = t
81
- moveLayer.x += matrix.e - t.__local.e
82
- moveLayer.y += matrix.f - t.__local.f
76
+ moveByMatrix(t, matrix)
83
77
  t.scaleX *= scaleX
84
78
  t.scaleY *= scaleY
85
79
  },
86
80
 
87
- rotateOfWorld(t: ILeaf, origin: IPointData, angle: number, moveLayer?: ILeaf): void {
88
- t.__layout.checkUpdate()
89
- const local = t.parent ? PointHelper.tempToInnerOf(origin, t.parent.__world) : origin
90
- this.rotateOfLocal(t, local, angle, moveLayer)
81
+ rotateOfWorld(t: ILeaf, origin: IPointData, angle: number): void {
82
+ this.rotateOfLocal(t, getTempLocal(t, origin), angle)
91
83
  },
92
84
 
93
- rotateOfLocal(t: ILeaf, origin: IPointData, angle: number, moveLayer?: ILeaf): void {
85
+ rotateOfLocal(t: ILeaf, origin: IPointData, angle: number): void {
94
86
  copy(matrix, t.__local)
95
- if (moveLayer) translate(matrix, moveLayer.x, moveLayer.y)
96
87
  rotateOfOuter(matrix, origin, angle)
97
- if (!moveLayer) moveLayer = t
98
- moveLayer.x += matrix.e - t.__local.e
99
- moveLayer.y += matrix.f - t.__local.f
88
+ moveByMatrix(t, matrix)
100
89
  t.rotation = MathHelper.formatRotation(t.rotation + angle)
101
-
102
90
  },
103
91
 
104
- skewOfWorld(t: ILeaf, origin: IPointData, skewX: number, skewY?: number, moveLayer?: ILeaf): void {
105
- t.__layout.checkUpdate()
106
- const local = t.parent ? PointHelper.tempToInnerOf(origin, t.parent.__world) : origin
107
- this.skewOfLocal(t, local, skewX, skewY, moveLayer)
92
+ skewOfWorld(t: ILeaf, origin: IPointData, skewX: number, skewY?: number): void {
93
+ this.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY)
108
94
  },
109
95
 
110
- skewOfLocal(t: ILeaf, origin: IPointData, skewX: number, skewY: number, moveLayer?: ILeaf): void {
96
+ skewOfLocal(t: ILeaf, origin: IPointData, skewX: number, skewY: number): void {
111
97
  copy(matrix, t.__local)
112
- if (moveLayer) translate(matrix, moveLayer.x, moveLayer.y)
113
98
  skewOfOuter(matrix, origin, skewX, skewY)
114
- if (!moveLayer) moveLayer = t
115
- moveLayer.x = matrix.e - t.__local.e
116
- moveLayer.y = matrix.f - t.__local.f
99
+ moveByMatrix(t, matrix)
117
100
  t.skewX = MathHelper.formatSkew(t.skewX + skewX)
118
101
  t.skewY = MathHelper.formatSkew(t.skewY + skewY)
119
102
  },
@@ -127,5 +110,16 @@ export const LeafHelper = {
127
110
  }
128
111
 
129
112
  }
113
+
130
114
  const L = LeafHelper
131
- const { updateAllWorldMatrix, updateAllWorldOpacity, updateAllChange } = L
115
+ const { updateAllWorldMatrix, updateAllWorldOpacity, updateAllChange } = L
116
+
117
+ function moveByMatrix(t: ILeaf, matrix: IMatrixData): void {
118
+ t.x += matrix.e - t.__local.e
119
+ t.y += matrix.f - t.__local.f
120
+ }
121
+
122
+ function getTempLocal(t: ILeaf, world: IPointData): IPointData {
123
+ t.__layout.checkUpdate()
124
+ return t.parent ? PointHelper.tempToInnerOf(world, t.parent.__world) : world
125
+ }
package/types/index.d.ts CHANGED
@@ -7,12 +7,12 @@ declare const LeafHelper: {
7
7
  worldHittable(t: ILeaf): boolean;
8
8
  moveWorld(t: ILeaf, x: number, y: number): void;
9
9
  moveLocal(t: ILeaf, x: number, y?: number): void;
10
- zoomOfWorld(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number, moveLayer?: ILeaf): void;
11
- zoomOfLocal(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number, moveLayer?: ILeaf): void;
12
- rotateOfWorld(t: ILeaf, origin: IPointData, angle: number, moveLayer?: ILeaf): void;
13
- rotateOfLocal(t: ILeaf, origin: IPointData, angle: number, moveLayer?: ILeaf): void;
14
- skewOfWorld(t: ILeaf, origin: IPointData, skewX: number, skewY?: number, moveLayer?: ILeaf): void;
15
- skewOfLocal(t: ILeaf, origin: IPointData, skewX: number, skewY: number, moveLayer?: ILeaf): void;
10
+ zoomOfWorld(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number): void;
11
+ zoomOfLocal(t: ILeaf, origin: IPointData, scaleX: number, scaleY?: number): void;
12
+ rotateOfWorld(t: ILeaf, origin: IPointData, angle: number): void;
13
+ rotateOfLocal(t: ILeaf, origin: IPointData, angle: number): void;
14
+ skewOfWorld(t: ILeaf, origin: IPointData, skewX: number, skewY?: number): void;
15
+ skewOfLocal(t: ILeaf, origin: IPointData, skewX: number, skewY: number): void;
16
16
  drop(t: ILeaf, parent: IBranch): void;
17
17
  };
18
18