@omnimedia/omnitool 1.1.0-73 → 1.1.0-74
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 +1 -1
- package/s/driver/parts/compositor.ts +12 -9
- package/s/timeline/utils/matrix.ts +21 -0
- package/x/demo/demo.bundle.min.js +4 -4
- package/x/demo/demo.bundle.min.js.map +3 -3
- package/x/driver/parts/compositor.d.ts +7 -1
- package/x/driver/parts/compositor.js +9 -6
- package/x/driver/parts/compositor.js.map +1 -1
- package/x/index.html +2 -2
- package/x/tests.bundle.min.js +10 -10
- package/x/tests.bundle.min.js.map +3 -3
- package/x/tests.html +1 -1
- package/x/timeline/utils/matrix.d.ts +9 -0
- package/x/timeline/utils/matrix.js +10 -0
- package/x/timeline/utils/matrix.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import {pub} from "@e280/stz"
|
|
3
|
-
import {autoDetectRenderer, Container, Renderer, Sprite, Text, Texture} from "pixi.js"
|
|
3
|
+
import {autoDetectRenderer, Container, FederatedPointerEvent, Renderer, Sprite, Text, Texture} from "pixi.js"
|
|
4
4
|
|
|
5
5
|
import {Id} from "../../timeline/index.js"
|
|
6
6
|
import {Composition, Layer} from "../fns/schematic.js"
|
|
@@ -8,8 +8,9 @@ import {Mat6, mat6ToMatrix} from "../../timeline/utils/matrix.js"
|
|
|
8
8
|
import {makeTransition} from "../../features/transition/transition.js"
|
|
9
9
|
|
|
10
10
|
export class Compositor {
|
|
11
|
-
onPointerDown = pub<[{id: Id, object: Container}]>()
|
|
12
|
-
onPointerUp = pub<[{id: Id, object: Container}]>()
|
|
11
|
+
onPointerDown = pub<[{event: FederatedPointerEvent, id: Id, object: Container}]>()
|
|
12
|
+
onPointerUp = pub<[{event: FederatedPointerEvent, id: Id, object: Container}]>()
|
|
13
|
+
onDispose = pub<[{id: Id, object: Container}]>()
|
|
13
14
|
|
|
14
15
|
static async setup() {
|
|
15
16
|
const renderer = await autoDetectRenderer({
|
|
@@ -156,8 +157,8 @@ export class Compositor {
|
|
|
156
157
|
style: layer.style
|
|
157
158
|
})
|
|
158
159
|
text.eventMode = "static"
|
|
159
|
-
const down = () => this.onPointerDown.publish({id: layer.id, object: text})
|
|
160
|
-
const up = () => this.onPointerUp.publish({id: layer.id, object: text})
|
|
160
|
+
const down = (event: FederatedPointerEvent) => this.onPointerDown.publish({event, id: layer.id, object: text})
|
|
161
|
+
const up = (event: FederatedPointerEvent) => this.onPointerUp.publish({event, id: layer.id, object: text})
|
|
161
162
|
|
|
162
163
|
text.on("pointerdown", down)
|
|
163
164
|
text.on("pointerup", up)
|
|
@@ -165,7 +166,8 @@ export class Compositor {
|
|
|
165
166
|
return this.#activeObjects
|
|
166
167
|
.set(layer.id, {
|
|
167
168
|
sprite: text,
|
|
168
|
-
dispose() {
|
|
169
|
+
dispose: () => {
|
|
170
|
+
this.onDispose.publish({id: layer.id, object: text})
|
|
169
171
|
text.off("pointerdown", down)
|
|
170
172
|
text.off("pointerup", up)
|
|
171
173
|
}
|
|
@@ -175,8 +177,8 @@ export class Compositor {
|
|
|
175
177
|
case 'image': {
|
|
176
178
|
const sprite = new Sprite()
|
|
177
179
|
sprite.eventMode = "static"
|
|
178
|
-
const down = () => this.onPointerDown.publish({id: layer.id, object: sprite})
|
|
179
|
-
const up = () => this.onPointerUp.publish({id: layer.id, object: sprite})
|
|
180
|
+
const down = (event: FederatedPointerEvent) => this.onPointerDown.publish({event, id: layer.id, object: sprite})
|
|
181
|
+
const up = (event: FederatedPointerEvent) => this.onPointerUp.publish({event, id: layer.id, object: sprite})
|
|
180
182
|
|
|
181
183
|
sprite.on("pointerdown", down)
|
|
182
184
|
sprite.on("pointerup", up)
|
|
@@ -184,7 +186,8 @@ export class Compositor {
|
|
|
184
186
|
return this.#activeObjects
|
|
185
187
|
.set(layer.id, {
|
|
186
188
|
sprite,
|
|
187
|
-
dispose() {
|
|
189
|
+
dispose: () => {
|
|
190
|
+
this.onDispose.publish({id: layer.id, object: sprite})
|
|
188
191
|
sprite.off("pointerdown", down)
|
|
189
192
|
sprite.off("pointerup", up)
|
|
190
193
|
}
|
|
@@ -29,5 +29,26 @@ export const mul6 = (local: Mat6, parent: Mat6): Mat6 => {
|
|
|
29
29
|
]
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
export const mat6ToTransform = (mat: Mat6Obj): Transform => {
|
|
33
|
+
const scaleX = Math.hypot(mat.a, mat.b)
|
|
34
|
+
const scaleY = Math.hypot(mat.c, mat.d)
|
|
35
|
+
const rotation = Math.atan2(mat.b, mat.a) * (180 / Math.PI)
|
|
36
|
+
|
|
37
|
+
return [
|
|
38
|
+
[mat.tx, mat.ty],
|
|
39
|
+
[scaleX, scaleY],
|
|
40
|
+
rotation,
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface Mat6Obj {
|
|
45
|
+
a: number
|
|
46
|
+
b: number
|
|
47
|
+
c: number
|
|
48
|
+
d: number
|
|
49
|
+
tx: number
|
|
50
|
+
ty: number
|
|
51
|
+
}
|
|
52
|
+
|
|
32
53
|
export const I6: Mat6 = [1, 0, 0, 1, 0, 0]
|
|
33
54
|
export type Mat6 = [a: number, b: number, c: number, d: number, tx: number, ty: number]
|