@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.
Files changed (75) hide show
  1. package/dist/boundsRectangle.d.ts +26 -0
  2. package/dist/boundsRectangle.d.ts.map +1 -0
  3. package/dist/boundsRectangle.js +160 -0
  4. package/dist/boundsRectangle.js.map +1 -0
  5. package/dist/hasAppearance.d.ts +3 -0
  6. package/dist/hasAppearance.d.ts.map +1 -0
  7. package/dist/hasAppearance.js +6 -0
  8. package/dist/hasAppearance.js.map +1 -0
  9. package/dist/hasBoundsRectangle.d.ts +5 -0
  10. package/dist/hasBoundsRectangle.d.ts.map +1 -0
  11. package/dist/hasBoundsRectangle.js +9 -0
  12. package/dist/hasBoundsRectangle.js.map +1 -0
  13. package/dist/hasClip.d.ts +3 -0
  14. package/dist/hasClip.d.ts.map +1 -0
  15. package/dist/hasClip.js +4 -0
  16. package/dist/hasClip.js.map +1 -0
  17. package/dist/hasMaterial.d.ts +3 -0
  18. package/dist/hasMaterial.d.ts.map +1 -0
  19. package/dist/hasMaterial.js +5 -0
  20. package/dist/hasMaterial.js.map +1 -0
  21. package/dist/hasTransform2d.d.ts +4 -0
  22. package/dist/hasTransform2d.d.ts.map +1 -0
  23. package/dist/hasTransform2d.js +19 -0
  24. package/dist/hasTransform2d.js.map +1 -0
  25. package/dist/hasTransform3d.d.ts +5 -0
  26. package/dist/hasTransform3d.d.ts.map +1 -0
  27. package/dist/hasTransform3d.js +8 -0
  28. package/dist/hasTransform3d.js.map +1 -0
  29. package/dist/hierarchy.d.ts +127 -0
  30. package/dist/hierarchy.d.ts.map +1 -0
  31. package/dist/hierarchy.js +396 -0
  32. package/dist/hierarchy.js.map +1 -0
  33. package/dist/index.d.ts +15 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +15 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/node.d.ts +21 -0
  38. package/dist/node.d.ts.map +1 -0
  39. package/dist/node.js +109 -0
  40. package/dist/node.js.map +1 -0
  41. package/dist/revision.d.ts +40 -0
  42. package/dist/revision.d.ts.map +1 -0
  43. package/dist/revision.js +85 -0
  44. package/dist/revision.js.map +1 -0
  45. package/dist/transform2d.d.ts +16 -0
  46. package/dist/transform2d.d.ts.map +1 -0
  47. package/dist/transform2d.js +99 -0
  48. package/dist/transform2d.js.map +1 -0
  49. package/dist/transform3d.d.ts +6 -0
  50. package/dist/transform3d.d.ts.map +1 -0
  51. package/dist/transform3d.js +45 -0
  52. package/dist/transform3d.js.map +1 -0
  53. package/dist/traversal.d.ts +51 -0
  54. package/dist/traversal.d.ts.map +1 -0
  55. package/dist/traversal.js +130 -0
  56. package/dist/traversal.js.map +1 -0
  57. package/dist/viewport.d.ts +8 -0
  58. package/dist/viewport.d.ts.map +1 -0
  59. package/dist/viewport.js +78 -0
  60. package/dist/viewport.js.map +1 -0
  61. package/package.json +40 -0
  62. package/src/boundsRectangle.test.ts +497 -0
  63. package/src/hasAppearance.test.ts +47 -0
  64. package/src/hasBoundsRectangle.test.ts +57 -0
  65. package/src/hasClip.test.ts +27 -0
  66. package/src/hasMaterial.test.ts +30 -0
  67. package/src/hasTransform2d.test.ts +67 -0
  68. package/src/hasTransform3d.test.ts +37 -0
  69. package/src/hierarchy.test.ts +973 -0
  70. package/src/node.test.ts +265 -0
  71. package/src/revision.test.ts +211 -0
  72. package/src/transform2d.test.ts +391 -0
  73. package/src/transform3d.test.ts +202 -0
  74. package/src/traversal.test.ts +233 -0
  75. 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
+ });