@flighthq/node 0.1.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/boundsRectangle.d.ts +26 -0
- package/dist/boundsRectangle.d.ts.map +1 -0
- package/dist/boundsRectangle.js +160 -0
- package/dist/boundsRectangle.js.map +1 -0
- package/dist/hasAppearance.d.ts +3 -0
- package/dist/hasAppearance.d.ts.map +1 -0
- package/dist/hasAppearance.js +6 -0
- package/dist/hasAppearance.js.map +1 -0
- package/dist/hasBoundsRectangle.d.ts +5 -0
- package/dist/hasBoundsRectangle.d.ts.map +1 -0
- package/dist/hasBoundsRectangle.js +9 -0
- package/dist/hasBoundsRectangle.js.map +1 -0
- package/dist/hasClip.d.ts +3 -0
- package/dist/hasClip.d.ts.map +1 -0
- package/dist/hasClip.js +4 -0
- package/dist/hasClip.js.map +1 -0
- package/dist/hasMaterial.d.ts +3 -0
- package/dist/hasMaterial.d.ts.map +1 -0
- package/dist/hasMaterial.js +5 -0
- package/dist/hasMaterial.js.map +1 -0
- package/dist/hasTransform2d.d.ts +4 -0
- package/dist/hasTransform2d.d.ts.map +1 -0
- package/dist/hasTransform2d.js +19 -0
- package/dist/hasTransform2d.js.map +1 -0
- package/dist/hasTransform3d.d.ts +5 -0
- package/dist/hasTransform3d.d.ts.map +1 -0
- package/dist/hasTransform3d.js +8 -0
- package/dist/hasTransform3d.js.map +1 -0
- package/dist/hierarchy.d.ts +127 -0
- package/dist/hierarchy.d.ts.map +1 -0
- package/dist/hierarchy.js +396 -0
- package/dist/hierarchy.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/node.d.ts +21 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +109 -0
- package/dist/node.js.map +1 -0
- package/dist/revision.d.ts +40 -0
- package/dist/revision.d.ts.map +1 -0
- package/dist/revision.js +85 -0
- package/dist/revision.js.map +1 -0
- package/dist/transform2d.d.ts +16 -0
- package/dist/transform2d.d.ts.map +1 -0
- package/dist/transform2d.js +99 -0
- package/dist/transform2d.js.map +1 -0
- package/dist/transform3d.d.ts +6 -0
- package/dist/transform3d.d.ts.map +1 -0
- package/dist/transform3d.js +45 -0
- package/dist/transform3d.js.map +1 -0
- package/dist/traversal.d.ts +51 -0
- package/dist/traversal.d.ts.map +1 -0
- package/dist/traversal.js +130 -0
- package/dist/traversal.js.map +1 -0
- package/dist/viewport.d.ts +8 -0
- package/dist/viewport.d.ts.map +1 -0
- package/dist/viewport.js +78 -0
- package/dist/viewport.js.map +1 -0
- package/package.json +40 -0
- package/src/boundsRectangle.test.ts +497 -0
- package/src/hasAppearance.test.ts +47 -0
- package/src/hasBoundsRectangle.test.ts +57 -0
- package/src/hasClip.test.ts +27 -0
- package/src/hasMaterial.test.ts +30 -0
- package/src/hasTransform2d.test.ts +67 -0
- package/src/hasTransform3d.test.ts +37 -0
- package/src/hierarchy.test.ts +973 -0
- package/src/node.test.ts +265 -0
- package/src/revision.test.ts +211 -0
- package/src/transform2d.test.ts +391 -0
- package/src/transform3d.test.ts +202 -0
- package/src/traversal.test.ts +233 -0
- package/src/viewport.test.ts +228 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { HasTransform2D, HasTransform2DRuntime, Node, NodeRuntime } from '@flighthq/types';
|
|
2
|
+
|
|
3
|
+
import { initTransform2DRuntimeTrait, initTransform2DTrait } from './hasTransform2d';
|
|
4
|
+
import { createNode, createNodeRuntime } from './node';
|
|
5
|
+
|
|
6
|
+
describe('initTransform2DRuntimeTrait', () => {
|
|
7
|
+
let runtime: NodeRuntime<HasTransform2D> & HasTransform2DRuntime;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
runtime = createNodeRuntime() as NodeRuntime<HasTransform2D> & HasTransform2DRuntime;
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('initializes default values', () => {
|
|
14
|
+
initTransform2DRuntimeTrait(runtime);
|
|
15
|
+
|
|
16
|
+
expect(runtime.localTransform2D).toBeNull();
|
|
17
|
+
expect(runtime.rotationAngle).toStrictEqual(0);
|
|
18
|
+
expect(runtime.rotationCosine).toStrictEqual(1);
|
|
19
|
+
expect(runtime.rotationSine).toStrictEqual(0);
|
|
20
|
+
expect(runtime.worldTransform2D).toBeNull();
|
|
21
|
+
|
|
22
|
+
// inherited graph runtime fields
|
|
23
|
+
expect(runtime.appearanceId).toStrictEqual(0);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
describe('initTransform2DTrait', () => {
|
|
28
|
+
let node: HasTransform2D;
|
|
29
|
+
|
|
30
|
+
beforeEach(() => {
|
|
31
|
+
node = createNode(NodeTestKind) as Node<HasTransform2D> & HasTransform2D;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('initializes default values', () => {
|
|
35
|
+
initTransform2DTrait(node);
|
|
36
|
+
|
|
37
|
+
expect(node.rotation).toStrictEqual(0);
|
|
38
|
+
expect(node.scaleX).toStrictEqual(1);
|
|
39
|
+
expect(node.scaleY).toStrictEqual(1);
|
|
40
|
+
expect(node.skewX).toStrictEqual(0);
|
|
41
|
+
expect(node.skewY).toStrictEqual(0);
|
|
42
|
+
expect(node.x).toStrictEqual(0);
|
|
43
|
+
expect(node.y).toStrictEqual(0);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('allows pre-defined values', () => {
|
|
47
|
+
const base = {
|
|
48
|
+
scaleX: 2,
|
|
49
|
+
scaleY: 3,
|
|
50
|
+
skewX: 15,
|
|
51
|
+
skewY: 30,
|
|
52
|
+
rotation: 45,
|
|
53
|
+
x: 100,
|
|
54
|
+
y: 200,
|
|
55
|
+
};
|
|
56
|
+
initTransform2DTrait(node, base);
|
|
57
|
+
expect(node.scaleX).toStrictEqual(base.scaleX);
|
|
58
|
+
expect(node.scaleY).toStrictEqual(base.scaleY);
|
|
59
|
+
expect(node.skewX).toStrictEqual(base.skewX);
|
|
60
|
+
expect(node.skewY).toStrictEqual(base.skewY);
|
|
61
|
+
expect(node.rotation).toStrictEqual(base.rotation);
|
|
62
|
+
expect(node.x).toStrictEqual(base.x);
|
|
63
|
+
expect(node.y).toStrictEqual(base.y);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
const NodeTestKind = 'NodeTest';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { HasTransform3D, HasTransform3DRuntime, Matrix4 } from '@flighthq/types';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
|
|
4
|
+
import { initTransform3DRuntimeTrait, initTransform3DTrait } from './hasTransform3d';
|
|
5
|
+
|
|
6
|
+
describe('initTransform3DRuntimeTrait', () => {
|
|
7
|
+
it('sets worldMatrix to null', () => {
|
|
8
|
+
const runtime = {} as HasTransform3DRuntime;
|
|
9
|
+
initTransform3DRuntimeTrait(runtime);
|
|
10
|
+
expect(runtime.worldMatrix).toBeNull();
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
describe('initTransform3DTrait', () => {
|
|
15
|
+
it('creates an identity localMatrix by default', () => {
|
|
16
|
+
const node = {} as HasTransform3D;
|
|
17
|
+
initTransform3DTrait(node);
|
|
18
|
+
expect(node.localMatrix).toBeDefined();
|
|
19
|
+
const m = node.localMatrix.m;
|
|
20
|
+
expect(m[0]).toBe(1);
|
|
21
|
+
expect(m[5]).toBe(1);
|
|
22
|
+
expect(m[10]).toBe(1);
|
|
23
|
+
expect(m[15]).toBe(1);
|
|
24
|
+
expect(m[12]).toBe(0);
|
|
25
|
+
expect(m[13]).toBe(0);
|
|
26
|
+
expect(m[14]).toBe(0);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('accepts an existing localMatrix', () => {
|
|
30
|
+
const node = {} as HasTransform3D;
|
|
31
|
+
const existing = { m: new Float32Array(16) } as unknown as Matrix4;
|
|
32
|
+
existing.m[12] = 7;
|
|
33
|
+
initTransform3DTrait(node, { localMatrix: existing });
|
|
34
|
+
expect(node.localMatrix).toBe(existing);
|
|
35
|
+
expect(node.localMatrix.m[12]).toBe(7);
|
|
36
|
+
});
|
|
37
|
+
});
|