@adobe/data 0.5.16 → 0.5.18

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 (82) hide show
  1. package/dist/ecs/database/create-database.test.js +11 -0
  2. package/dist/ecs/database/create-database.test.js.map +1 -1
  3. package/dist/ecs/store/store.d.ts +4 -1
  4. package/dist/math/aabb/aabb.d.ts +4 -0
  5. package/dist/math/aabb/aabb.js +7 -0
  6. package/dist/math/aabb/aabb.js.map +1 -1
  7. package/dist/math/index.d.ts +0 -1
  8. package/dist/math/index.js +0 -1
  9. package/dist/math/index.js.map +1 -1
  10. package/dist/math/mat4x4/mat4x4.d.ts +22 -0
  11. package/dist/math/mat4x4/mat4x4.js +22 -0
  12. package/dist/math/mat4x4/mat4x4.js.map +1 -1
  13. package/dist/math/picking/get-closest-entity-to-line.js +1 -1
  14. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -1
  15. package/dist/math/picking/get-closest-entity-to-point.js +1 -1
  16. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -1
  17. package/dist/math/picking/pick-from-tables.js +1 -1
  18. package/dist/math/picking/pick-from-tables.js.map +1 -1
  19. package/dist/math/picking/pick-result.d.ts +4 -2
  20. package/dist/math/quat/quat.d.ts +5 -0
  21. package/dist/math/quat/quat.js +15 -4
  22. package/dist/math/quat/quat.js.map +1 -1
  23. package/dist/math/transform/debug-inverse.d.ts +1 -0
  24. package/dist/math/transform/debug-inverse.js +28 -0
  25. package/dist/math/transform/debug-inverse.js.map +1 -0
  26. package/dist/math/transform/debug-quat.d.ts +1 -0
  27. package/dist/math/transform/debug-quat.js +23 -0
  28. package/dist/math/transform/debug-quat.js.map +1 -0
  29. package/dist/math/transform/debug-test.d.ts +1 -0
  30. package/dist/math/transform/debug-test.js +34 -0
  31. package/dist/math/transform/debug-test.js.map +1 -0
  32. package/dist/math/transform/transform.d.ts +58 -0
  33. package/dist/math/transform/transform.js +101 -0
  34. package/dist/math/transform/transform.js.map +1 -0
  35. package/dist/math/transform/transform.test.d.ts +1 -0
  36. package/dist/math/transform/transform.test.js +309 -0
  37. package/dist/math/transform/transform.test.js.map +1 -0
  38. package/dist/math/vec3/vec3.d.ts +1 -0
  39. package/dist/math/vec3/vec3.js +1 -0
  40. package/dist/math/vec3/vec3.js.map +1 -1
  41. package/dist/observe/to-async-generator.js.map +1 -1
  42. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +205 -1
  43. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -1
  44. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +4 -1
  45. package/dist/old-ecs/core-ecs/core-ecs.d.ts +2 -0
  46. package/dist/old-ecs/core-ecs/core-ecs.js +23 -9
  47. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -1
  48. package/dist/old-ecs/privacy/helper-functions.d.ts +43 -0
  49. package/dist/old-ecs/privacy/helper-functions.js +76 -0
  50. package/dist/old-ecs/privacy/helper-functions.js.map +1 -0
  51. package/dist/old-ecs/privacy/helper-functions.test.d.ts +1 -0
  52. package/dist/old-ecs/privacy/helper-functions.test.js +173 -0
  53. package/dist/old-ecs/privacy/helper-functions.test.js.map +1 -0
  54. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +2 -2
  55. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +2 -2
  56. package/dist/table/table.d.ts +3 -0
  57. package/dist/table/table.js +6 -1
  58. package/dist/table/table.js.map +1 -1
  59. package/dist/tsconfig.tsbuildinfo +1 -1
  60. package/dist/typed-buffer/create-array-buffer.js +10 -2
  61. package/dist/typed-buffer/create-array-buffer.js.map +1 -1
  62. package/dist/typed-buffer/create-array-buffer.test.d.ts +1 -0
  63. package/dist/typed-buffer/create-array-buffer.test.js +51 -0
  64. package/dist/typed-buffer/create-array-buffer.test.js.map +1 -0
  65. package/dist/typed-buffer/create-const-buffer.copy.test.d.ts +1 -0
  66. package/dist/typed-buffer/create-const-buffer.copy.test.js +36 -0
  67. package/dist/typed-buffer/create-const-buffer.copy.test.js.map +1 -0
  68. package/dist/typed-buffer/create-const-buffer.js +3 -0
  69. package/dist/typed-buffer/create-const-buffer.js.map +1 -1
  70. package/dist/typed-buffer/create-number-buffer.js +5 -0
  71. package/dist/typed-buffer/create-number-buffer.js.map +1 -1
  72. package/dist/typed-buffer/create-number-buffer.test.d.ts +1 -0
  73. package/dist/typed-buffer/create-number-buffer.test.js +48 -0
  74. package/dist/typed-buffer/create-number-buffer.test.js.map +1 -0
  75. package/dist/typed-buffer/create-struct-buffer.copy.test.d.ts +1 -0
  76. package/dist/typed-buffer/create-struct-buffer.copy.test.js +47 -0
  77. package/dist/typed-buffer/create-struct-buffer.copy.test.js.map +1 -0
  78. package/dist/typed-buffer/create-struct-buffer.js +9 -0
  79. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  80. package/dist/typed-buffer/typed-buffer.d.ts +1 -0
  81. package/dist/typed-buffer/typed-buffer.js.map +1 -1
  82. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"quat.js","sourceRoot":"","sources":["../../../src/math/quat/quat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quat.js","sourceRoot":"","sources":["../../../src/math/quat/quat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ import { Transform } from "./transform.js";
2
+ import { Quat } from "../quat/quat.js";
3
+ const transform = {
4
+ position: [5, -3, 7],
5
+ rotation: Quat.fromAxisAngle([1, 1, 0], Math.PI / 4),
6
+ scale: [2, 0.5, 3],
7
+ };
8
+ const point = [1, 2, 3];
9
+ console.log("Original point:", point);
10
+ const transformed = Transform.transform(transform, point);
11
+ console.log("Transformed:", transformed);
12
+ const inverted = Transform.transformInverse(transform, transformed);
13
+ console.log("Inverted back:", inverted);
14
+ console.log("Difference:", [
15
+ inverted[0] - point[0],
16
+ inverted[1] - point[1],
17
+ inverted[2] - point[2]
18
+ ]);
19
+ // Test just the rotation part
20
+ console.log("\n=== Testing rotation ===");
21
+ const rotated = Quat.rotateVec3(transform.rotation, point);
22
+ console.log("Rotated:", rotated);
23
+ const conjugate = Quat.conjugate(transform.rotation);
24
+ console.log("Conjugate quat:", conjugate);
25
+ const rotatedBack = Quat.rotateVec3(conjugate, rotated);
26
+ console.log("Rotated back:", rotatedBack);
27
+ console.log("Should equal original:", point);
28
+ //# sourceMappingURL=debug-inverse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-inverse.js","sourceRoot":"","sources":["../../../src/math/transform/debug-inverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,MAAM,SAAS,GAAc;IACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACpB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,KAAK,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAEtC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AAEzC,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AACpE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAExC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;IACvB,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;CACzB,CAAC,CAAC;AAEH,8BAA8B;AAC9B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import { Quat } from "../quat/quat.js";
2
+ import { Vec3 } from "../vec3/vec3.js";
3
+ // Test with normalized axis
4
+ const axis = [1, 1, 0];
5
+ const normalizedAxis = Vec3.normalize(axis);
6
+ console.log("Axis:", axis);
7
+ console.log("Normalized:", normalizedAxis);
8
+ const quat = Quat.fromAxisAngle(normalizedAxis, Math.PI / 4);
9
+ console.log("Quaternion:", quat);
10
+ console.log("Length:", Quat.length(quat));
11
+ const point = [1, 2, 3];
12
+ const rotated = Quat.rotateVec3(quat, point);
13
+ console.log("\nRotated:", rotated);
14
+ const conjugate = Quat.conjugate(quat);
15
+ const back = Quat.rotateVec3(conjugate, rotated);
16
+ console.log("Rotated back:", back);
17
+ console.log("Original:", point);
18
+ console.log("Difference:", [
19
+ back[0] - point[0],
20
+ back[1] - point[1],
21
+ back[2] - point[2]
22
+ ]);
23
+ //# sourceMappingURL=debug-quat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-quat.js","sourceRoot":"","sources":["../../../src/math/transform/debug-quat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,4BAA4B;AAC5B,MAAM,IAAI,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAE3C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1C,MAAM,KAAK,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACnC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAChC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;IACvB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;CACrB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ import { Transform } from "./transform.js";
2
+ import { Vec3 } from "../vec3/vec3.js";
3
+ import { Quat } from "../quat/quat.js";
4
+ import { Mat4x4 } from "../mat4x4/mat4x4.js";
5
+ // Simple rotation test
6
+ const transform = {
7
+ position: Vec3.zero,
8
+ rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
9
+ scale: Vec3.one,
10
+ };
11
+ const point = [1, 2, 3];
12
+ console.log("Transform:", transform);
13
+ console.log("Point:", point);
14
+ console.log("");
15
+ // Direct method
16
+ const directResult = Transform.transform(transform, point);
17
+ console.log("Direct result:", directResult);
18
+ // Matrix method
19
+ const matrix = Transform.toMatrix(transform);
20
+ console.log("Matrix:", matrix);
21
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
22
+ console.log("Matrix result:", matrixResult);
23
+ console.log("");
24
+ console.log("Difference:", [
25
+ directResult[0] - matrixResult[0],
26
+ directResult[1] - matrixResult[1],
27
+ directResult[2] - matrixResult[2]
28
+ ]);
29
+ // Test quaternion rotation directly
30
+ console.log("");
31
+ console.log("Testing Quat.rotateVec3 directly:");
32
+ const quatRotated = Quat.rotateVec3(transform.rotation, point);
33
+ console.log("Quat.rotateVec3 result:", quatRotated);
34
+ //# sourceMappingURL=debug-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-test.js","sourceRoot":"","sources":["../../../src/math/transform/debug-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,uBAAuB;AACvB,MAAM,SAAS,GAAc;IACzB,QAAQ,EAAE,IAAI,CAAC,IAAI;IACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,KAAK,EAAE,IAAI,CAAC,GAAG;CAClB,CAAC;AAEF,MAAM,KAAK,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEhB,gBAAgB;AAChB,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC3D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAE5C,gBAAgB;AAChB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxD,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAE5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;IACvB,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IACjC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IACjC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;CACpC,CAAC,CAAC;AAEH,oCAAoC;AACpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { FromSchema } from "../../schema/schema.js";
2
+ import { Mat4x4 } from "../mat4x4/mat4x4.js";
3
+ import { Vec3 } from "../vec3/vec3.js";
4
+ export type Transform = FromSchema<typeof Transform.schema>;
5
+ export declare namespace Transform {
6
+ const schema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly position: {
10
+ readonly type: "array";
11
+ readonly items: {
12
+ readonly type: "number";
13
+ readonly precision: 1;
14
+ readonly default: number;
15
+ };
16
+ readonly minItems: 3;
17
+ readonly maxItems: 3;
18
+ readonly default: readonly [0, 0, 0];
19
+ };
20
+ readonly rotation: {
21
+ readonly type: "array";
22
+ readonly items: {
23
+ readonly type: "number";
24
+ readonly precision: 1;
25
+ readonly default: number;
26
+ };
27
+ readonly minItems: 4;
28
+ readonly maxItems: 4;
29
+ readonly default: readonly [0, 0, 0, 1];
30
+ };
31
+ readonly scale: {
32
+ readonly type: "array";
33
+ readonly items: {
34
+ readonly type: "number";
35
+ readonly precision: 1;
36
+ readonly default: number;
37
+ };
38
+ readonly minItems: 3;
39
+ readonly maxItems: 3;
40
+ readonly default: readonly [0, 0, 0];
41
+ };
42
+ };
43
+ readonly required: readonly ["position", "rotation", "scale"];
44
+ readonly additionalProperties: false;
45
+ readonly layout: "std140";
46
+ };
47
+ const identity: Transform;
48
+ const toMatrix: (transform: Transform) => Mat4x4;
49
+ const transform: (transform: Transform, point: Vec3) => Vec3;
50
+ /**
51
+ * Applies the inverse transformation to a point.
52
+ * This is the reverse operation of transform(): if transform(t, p) = p',
53
+ * then transformInverse(t, p') = p.
54
+ *
55
+ * Note: Assumes rotation is a unit quaternion (which is guaranteed by Quat.fromAxisAngle).
56
+ */
57
+ const transformInverse: (transform: Transform, point: Vec3) => Vec3;
58
+ }
@@ -0,0 +1,101 @@
1
+ import { Mat4x4 } from "../mat4x4/mat4x4.js";
2
+ import { Quat } from "../quat/quat.js";
3
+ import { Vec3 } from "../vec3/vec3.js";
4
+ export var Transform;
5
+ (function (Transform) {
6
+ Transform.schema = {
7
+ type: "object",
8
+ properties: {
9
+ position: Vec3.schema,
10
+ rotation: Quat.schema,
11
+ scale: Vec3.schema,
12
+ },
13
+ required: ["position", "rotation", "scale"],
14
+ additionalProperties: false,
15
+ layout: "std140",
16
+ };
17
+ Transform.identity = {
18
+ position: Vec3.zero,
19
+ rotation: Quat.identity,
20
+ scale: Vec3.one,
21
+ };
22
+ Transform.toMatrix = (transform) => {
23
+ const { position, rotation, scale } = transform;
24
+ // Create rotation matrix from quaternion
25
+ const rotationMatrix = Quat.toMat4(rotation);
26
+ // Create scale matrix
27
+ const scaleMatrix = Mat4x4.scaling(scale[0], scale[1], scale[2]);
28
+ // Create translation matrix
29
+ const translationMatrix = Mat4x4.translation(position[0], position[1], position[2]);
30
+ // Combine in TRS order: Translation * Rotation * Scale
31
+ const rs = Mat4x4.multiply(rotationMatrix, scaleMatrix);
32
+ return Mat4x4.multiply(translationMatrix, rs);
33
+ };
34
+ Transform.transform = (transform, point) => {
35
+ const { position, rotation, scale } = transform;
36
+ // Apply scale
37
+ const sx = point[0] * scale[0];
38
+ const sy = point[1] * scale[1];
39
+ const sz = point[2] * scale[2];
40
+ // Apply rotation (quaternion rotation unrolled)
41
+ const [qx, qy, qz, qw] = rotation;
42
+ // Compute qv × scaled (cross product)
43
+ const uvx = qy * sz - qz * sy;
44
+ const uvy = qz * sx - qx * sz;
45
+ const uvz = qx * sy - qy * sx;
46
+ // Compute qv × uv (cross product)
47
+ const uuvx = qy * uvz - qz * uvy;
48
+ const uuvy = qz * uvx - qx * uvz;
49
+ const uuvz = qx * uvy - qy * uvx;
50
+ // Combine: scaled + 2*w*uv + 2*uuv
51
+ const scaleFactor = 2 * qw;
52
+ const rx = sx + scaleFactor * uvx + 2 * uuvx;
53
+ const ry = sy + scaleFactor * uvy + 2 * uuvy;
54
+ const rz = sz + scaleFactor * uvz + 2 * uuvz;
55
+ // Apply translation
56
+ return [
57
+ rx + position[0],
58
+ ry + position[1],
59
+ rz + position[2]
60
+ ];
61
+ };
62
+ /**
63
+ * Applies the inverse transformation to a point.
64
+ * This is the reverse operation of transform(): if transform(t, p) = p',
65
+ * then transformInverse(t, p') = p.
66
+ *
67
+ * Note: Assumes rotation is a unit quaternion (which is guaranteed by Quat.fromAxisAngle).
68
+ */
69
+ Transform.transformInverse = (transform, point) => {
70
+ const { position, rotation, scale } = transform;
71
+ // Remove translation
72
+ const tx = point[0] - position[0];
73
+ const ty = point[1] - position[1];
74
+ const tz = point[2] - position[2];
75
+ // Apply inverse rotation using quaternion conjugate (for unit quaternions: q^-1 = conjugate(q))
76
+ const [qx, qy, qz, qw] = rotation;
77
+ const iqx = -qx;
78
+ const iqy = -qy;
79
+ const iqz = -qz;
80
+ // Compute qv × translated (cross product)
81
+ const uvx = iqy * tz - iqz * ty;
82
+ const uvy = iqz * tx - iqx * tz;
83
+ const uvz = iqx * ty - iqy * tx;
84
+ // Compute qv × uv (cross product)
85
+ const uuvx = iqy * uvz - iqz * uvy;
86
+ const uuvy = iqz * uvx - iqx * uvz;
87
+ const uuvz = iqx * uvy - iqy * uvx;
88
+ // Combine: translated + 2*w*uv + 2*uuv
89
+ const scaleFactor = 2 * qw;
90
+ const rx = tx + scaleFactor * uvx + 2 * uuvx;
91
+ const ry = ty + scaleFactor * uvy + 2 * uuvy;
92
+ const rz = tz + scaleFactor * uvz + 2 * uuvz;
93
+ // Apply inverse scale (division)
94
+ return [
95
+ rx / scale[0],
96
+ ry / scale[1],
97
+ rz / scale[2]
98
+ ];
99
+ };
100
+ })(Transform || (Transform = {}));
101
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/math/transform/transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC,MAAM,KAAW,SAAS,CAoHzB;AApHD,WAAiB,SAAS;IACT,gBAAM,GAAG;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM;SACrB;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;QAC3C,oBAAoB,EAAE,KAAK;QAC3B,MAAM,EAAE,QAAQ;KACO,CAAC;IAEf,kBAAQ,GAAc;QAC/B,QAAQ,EAAE,IAAI,CAAC,IAAI;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,GAAG;KAClB,CAAC;IAEW,kBAAQ,GAAG,CAAC,SAAoB,EAAU,EAAE;QACrD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QAEhD,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE7C,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjE,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpF,uDAAuD;QACvD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IAEW,mBAAS,GAAG,CAAC,SAAoB,EAAE,KAAW,EAAQ,EAAE;QACjE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QAEhD,cAAc;QACd,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/B,gDAAgD;QAChD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;QAElC,sCAAsC;QACtC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAE9B,kCAAkC;QAClC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QACjC,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;QAEjC,mCAAmC;QACnC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAE7C,oBAAoB;QACpB,OAAO;YACH,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;YAChB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;YAChB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;SACnB,CAAC;IACN,CAAC,CAAC;IAEF;;;;;;OAMG;IACU,0BAAgB,GAAG,CAAC,SAAoB,EAAE,KAAW,EAAQ,EAAE;QACxE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QAEhD,qBAAqB;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAElC,gGAAgG;QAChG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;QAClC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAEhB,0CAA0C;QAC1C,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAEhC,kCAAkC;QAClC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACnC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAEnC,uCAAuC;QACvC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;QAE7C,iCAAiC;QACjC,OAAO;YACH,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACb,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACb,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;IACN,CAAC,CAAC;AAEN,CAAC,EApHgB,SAAS,KAAT,SAAS,QAoHzB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,309 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { Transform } from "./transform.js";
3
+ import { Vec3 } from "../vec3/vec3.js";
4
+ import { Quat } from "../quat/quat.js";
5
+ import { Mat4x4 } from "../mat4x4/mat4x4.js";
6
+ const EPSILON = 1e-6;
7
+ const expectVec3Close = (a, b, epsilon = EPSILON) => {
8
+ expect(Math.abs(a[0] - b[0])).toBeLessThan(epsilon);
9
+ expect(Math.abs(a[1] - b[1])).toBeLessThan(epsilon);
10
+ expect(Math.abs(a[2] - b[2])).toBeLessThan(epsilon);
11
+ };
12
+ describe("Transform", () => {
13
+ describe("identity transform", () => {
14
+ it("should not change a point when applying identity transform", () => {
15
+ const point = [1, 2, 3];
16
+ const result = Transform.transform(Transform.identity, point);
17
+ expectVec3Close(result, point);
18
+ });
19
+ it("should match matrix transformation for identity", () => {
20
+ const point = [1, 2, 3];
21
+ const matrix = Transform.toMatrix(Transform.identity);
22
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
23
+ const directResult = Transform.transform(Transform.identity, point);
24
+ expectVec3Close(directResult, matrixResult);
25
+ });
26
+ });
27
+ describe("translation only", () => {
28
+ it("should translate a point correctly", () => {
29
+ const transform = {
30
+ position: [5, -3, 2],
31
+ rotation: Quat.identity,
32
+ scale: Vec3.one,
33
+ };
34
+ const point = [1, 2, 3];
35
+ const result = Transform.transform(transform, point);
36
+ expectVec3Close(result, [6, -1, 5]);
37
+ });
38
+ it("should match matrix transformation for translation", () => {
39
+ const transform = {
40
+ position: [5, -3, 2],
41
+ rotation: Quat.identity,
42
+ scale: Vec3.one,
43
+ };
44
+ const point = [1, 2, 3];
45
+ const matrix = Transform.toMatrix(transform);
46
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
47
+ const directResult = Transform.transform(transform, point);
48
+ expectVec3Close(directResult, matrixResult);
49
+ });
50
+ });
51
+ describe("scale only", () => {
52
+ it("should scale a point correctly", () => {
53
+ const transform = {
54
+ position: Vec3.zero,
55
+ rotation: Quat.identity,
56
+ scale: [2, 3, 0.5],
57
+ };
58
+ const point = [1, 2, 4];
59
+ const result = Transform.transform(transform, point);
60
+ expectVec3Close(result, [2, 6, 2]);
61
+ });
62
+ it("should match matrix transformation for scale", () => {
63
+ const transform = {
64
+ position: Vec3.zero,
65
+ rotation: Quat.identity,
66
+ scale: [2, 3, 0.5],
67
+ };
68
+ const point = [1, 2, 4];
69
+ const matrix = Transform.toMatrix(transform);
70
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
71
+ const directResult = Transform.transform(transform, point);
72
+ expectVec3Close(directResult, matrixResult);
73
+ });
74
+ });
75
+ describe("rotation only", () => {
76
+ it("should rotate a point 90 degrees around Z axis", () => {
77
+ const transform = {
78
+ position: Vec3.zero,
79
+ rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
80
+ scale: Vec3.one,
81
+ };
82
+ const point = [1, 0, 0];
83
+ const result = Transform.transform(transform, point);
84
+ expectVec3Close(result, [0, 1, 0]);
85
+ });
86
+ it("should rotate a point 90 degrees around Y axis", () => {
87
+ const transform = {
88
+ position: Vec3.zero,
89
+ rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 2),
90
+ scale: Vec3.one,
91
+ };
92
+ const point = [1, 0, 0];
93
+ const result = Transform.transform(transform, point);
94
+ expectVec3Close(result, [0, 0, -1]);
95
+ });
96
+ it("should match matrix transformation for rotation", () => {
97
+ const transform = {
98
+ position: Vec3.zero,
99
+ rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
100
+ scale: Vec3.one,
101
+ };
102
+ const point = [1, 2, 3];
103
+ const matrix = Transform.toMatrix(transform);
104
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
105
+ const directResult = Transform.transform(transform, point);
106
+ expectVec3Close(directResult, matrixResult);
107
+ });
108
+ });
109
+ describe("combined transformations", () => {
110
+ it("should apply scale, rotation, and translation in correct order", () => {
111
+ const transform = {
112
+ position: [10, 20, 30],
113
+ rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
114
+ scale: [2, 2, 2],
115
+ };
116
+ const point = [1, 0, 0];
117
+ const result = Transform.transform(transform, point);
118
+ // Scale: [2, 0, 0]
119
+ // Rotate 90° around Z: [0, 2, 0]
120
+ // Translate: [10, 22, 30]
121
+ expectVec3Close(result, [10, 22, 30]);
122
+ });
123
+ it("should match matrix transformation for complex transform", () => {
124
+ const transform = {
125
+ position: [5, -3, 7],
126
+ rotation: Quat.fromAxisAngle([1, 1, 0], Math.PI / 4),
127
+ scale: [2, 0.5, 3],
128
+ };
129
+ const point = [1, 2, 3];
130
+ const matrix = Transform.toMatrix(transform);
131
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
132
+ const directResult = Transform.transform(transform, point);
133
+ expectVec3Close(directResult, matrixResult);
134
+ });
135
+ it("should match matrix transformation with arbitrary rotation", () => {
136
+ const transform = {
137
+ position: [-2, 4, -1],
138
+ rotation: Quat.fromEuler(0.5, 1.2, -0.3),
139
+ scale: [1.5, 0.8, 2.2],
140
+ };
141
+ const point = [3, -1, 2];
142
+ const matrix = Transform.toMatrix(transform);
143
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
144
+ const directResult = Transform.transform(transform, point);
145
+ expectVec3Close(directResult, matrixResult);
146
+ });
147
+ });
148
+ describe("multiple points consistency", () => {
149
+ it("should consistently match matrix transformation for various points", () => {
150
+ const transform = {
151
+ position: [1, 2, 3],
152
+ rotation: Quat.fromAxisAngle([1, 0.5, 0.3], 1.5),
153
+ scale: [2, 1.5, 0.75],
154
+ };
155
+ const testPoints = [
156
+ [0, 0, 0],
157
+ [1, 0, 0],
158
+ [0, 1, 0],
159
+ [0, 0, 1],
160
+ [1, 1, 1],
161
+ [-1, -1, -1],
162
+ [5, -3, 2],
163
+ [0.1, 0.2, 0.3],
164
+ ];
165
+ const matrix = Transform.toMatrix(transform);
166
+ for (const point of testPoints) {
167
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
168
+ const directResult = Transform.transform(transform, point);
169
+ expectVec3Close(directResult, matrixResult);
170
+ }
171
+ });
172
+ });
173
+ describe("edge cases", () => {
174
+ it("should handle zero point", () => {
175
+ const transform = {
176
+ position: [1, 2, 3],
177
+ rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 4),
178
+ scale: [2, 3, 4],
179
+ };
180
+ const point = [0, 0, 0];
181
+ const matrix = Transform.toMatrix(transform);
182
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
183
+ const directResult = Transform.transform(transform, point);
184
+ expectVec3Close(directResult, matrixResult);
185
+ });
186
+ it("should handle zero scale components", () => {
187
+ const transform = {
188
+ position: [1, 2, 3],
189
+ rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 4),
190
+ scale: [0, 1, 1],
191
+ };
192
+ const point = [5, 5, 5];
193
+ const matrix = Transform.toMatrix(transform);
194
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
195
+ const directResult = Transform.transform(transform, point);
196
+ expectVec3Close(directResult, matrixResult);
197
+ });
198
+ it("should handle negative scale", () => {
199
+ const transform = {
200
+ position: [0, 0, 0],
201
+ rotation: Quat.identity,
202
+ scale: [-1, 1, -1],
203
+ };
204
+ const point = [1, 2, 3];
205
+ const matrix = Transform.toMatrix(transform);
206
+ const matrixResult = Mat4x4.multiplyVec3(matrix, point);
207
+ const directResult = Transform.transform(transform, point);
208
+ expectVec3Close(directResult, matrixResult);
209
+ });
210
+ });
211
+ describe("transformInverse", () => {
212
+ it("should be the inverse of transform for identity", () => {
213
+ const point = [1, 2, 3];
214
+ const transformed = Transform.transform(Transform.identity, point);
215
+ const result = Transform.transformInverse(Transform.identity, transformed);
216
+ expectVec3Close(result, point);
217
+ });
218
+ it("should be the inverse of transform for translation only", () => {
219
+ const transform = {
220
+ position: [5, -3, 2],
221
+ rotation: Quat.identity,
222
+ scale: Vec3.one,
223
+ };
224
+ const point = [1, 2, 3];
225
+ const transformed = Transform.transform(transform, point);
226
+ const result = Transform.transformInverse(transform, transformed);
227
+ expectVec3Close(result, point);
228
+ });
229
+ it("should be the inverse of transform for scale only", () => {
230
+ const transform = {
231
+ position: Vec3.zero,
232
+ rotation: Quat.identity,
233
+ scale: [2, 3, 0.5],
234
+ };
235
+ const point = [1, 2, 4];
236
+ const transformed = Transform.transform(transform, point);
237
+ const result = Transform.transformInverse(transform, transformed);
238
+ expectVec3Close(result, point);
239
+ });
240
+ it("should be the inverse of transform for rotation only", () => {
241
+ const transform = {
242
+ position: Vec3.zero,
243
+ rotation: Quat.fromAxisAngle([0, 0, 1], Math.PI / 2),
244
+ scale: Vec3.one,
245
+ };
246
+ const point = [1, 2, 3];
247
+ const transformed = Transform.transform(transform, point);
248
+ const result = Transform.transformInverse(transform, transformed);
249
+ expectVec3Close(result, point);
250
+ });
251
+ it("should be the inverse of transform for combined transformations", () => {
252
+ const transform = {
253
+ position: [5, -3, 7],
254
+ rotation: Quat.fromAxisAngle([1, 1, 0], Math.PI / 4),
255
+ scale: [2, 0.5, 3],
256
+ };
257
+ const point = [1, 2, 3];
258
+ const transformed = Transform.transform(transform, point);
259
+ const result = Transform.transformInverse(transform, transformed);
260
+ expectVec3Close(result, point);
261
+ });
262
+ it("should handle multiple points correctly", () => {
263
+ const transform = {
264
+ position: [1, 2, 3],
265
+ rotation: Quat.fromEuler(0.5, 1.2, -0.3),
266
+ scale: [2, 1.5, 0.75],
267
+ };
268
+ const testPoints = [
269
+ [0, 0, 0],
270
+ [1, 0, 0],
271
+ [0, 1, 0],
272
+ [0, 0, 1],
273
+ [1, 1, 1],
274
+ [-1, -1, -1],
275
+ [5, -3, 2],
276
+ ];
277
+ for (const point of testPoints) {
278
+ const transformed = Transform.transform(transform, point);
279
+ const result = Transform.transformInverse(transform, transformed);
280
+ expectVec3Close(result, point);
281
+ }
282
+ });
283
+ it("should match inverse matrix transformation", () => {
284
+ const transform = {
285
+ position: [2, -1, 3],
286
+ rotation: Quat.fromAxisAngle([1, 0, 1], 0.8),
287
+ scale: [1.5, 2, 0.8],
288
+ };
289
+ const point = [3, -1, 2];
290
+ const matrix = Transform.toMatrix(transform);
291
+ const inverseMatrix = Mat4x4.inverse(matrix);
292
+ const matrixResult = Mat4x4.multiplyVec3(inverseMatrix, point);
293
+ const directResult = Transform.transformInverse(transform, point);
294
+ expectVec3Close(directResult, matrixResult);
295
+ });
296
+ it("should handle negative scale", () => {
297
+ const transform = {
298
+ position: [1, 2, 3],
299
+ rotation: Quat.fromAxisAngle([0, 1, 0], Math.PI / 6),
300
+ scale: [-2, 1, -1],
301
+ };
302
+ const point = [4, 5, 6];
303
+ const transformed = Transform.transform(transform, point);
304
+ const result = Transform.transformInverse(transform, transformed);
305
+ expectVec3Close(result, point);
306
+ });
307
+ });
308
+ });
309
+ //# sourceMappingURL=transform.test.js.map