@adobe/data 0.5.17 → 0.5.19

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 (124) hide show
  1. package/dist/ecs/entity/entity.d.ts +8 -0
  2. package/dist/ecs/entity/entity.js +3 -0
  3. package/dist/ecs/entity/entity.js.map +1 -0
  4. package/dist/ecs/entity/u32.d.ts +8 -0
  5. package/dist/{lit/elements/service-context.js → ecs/entity/u32.js} +3 -3
  6. package/dist/ecs/entity/u32.js.map +1 -0
  7. package/dist/ecs/store/store.d.ts +4 -1
  8. package/dist/graphics/frame.d.ts +1 -22
  9. package/dist/graphics/frame.js +14 -11
  10. package/dist/graphics/frame.js.map +1 -1
  11. package/dist/graphics/get-web-gpu-device-and-context.d.ts +1 -2
  12. package/dist/graphics/get-web-gpu-device-and-context.js +23 -20
  13. package/dist/graphics/get-web-gpu-device-and-context.js.map +1 -1
  14. package/dist/graphics/graphics-context.d.ts +1 -5
  15. package/dist/graphics/graphics-context.js +5 -0
  16. package/dist/graphics/graphics-context.js.map +1 -1
  17. package/dist/lit/hooks/use-drag-observe.d.ts +1 -0
  18. package/dist/lit/hooks/use-drag-observe.js +2 -2
  19. package/dist/lit/hooks/use-drag-observe.js.map +1 -1
  20. package/dist/lit/hooks/use-draggable.d.ts +1 -1
  21. package/dist/lit/hooks/use-draggable.js +4 -2
  22. package/dist/lit/hooks/use-draggable.js.map +1 -1
  23. package/dist/math/aabb/aabb.d.ts +4 -0
  24. package/dist/math/aabb/aabb.js +7 -0
  25. package/dist/math/aabb/aabb.js.map +1 -1
  26. package/dist/math/aabb-face/face.d.ts +51 -0
  27. package/dist/math/aabb-face/face.js +110 -0
  28. package/dist/math/aabb-face/face.js.map +1 -0
  29. package/dist/math/aabb-face/face.test.d.ts +1 -0
  30. package/dist/math/aabb-face/face.test.js +94 -0
  31. package/dist/math/aabb-face/face.test.js.map +1 -0
  32. package/dist/math/box/box.d.ts +50 -0
  33. package/dist/math/box/box.js +23 -0
  34. package/dist/math/box/box.js.map +1 -0
  35. package/dist/math/face/face.d.ts +51 -0
  36. package/dist/math/face/face.js +110 -0
  37. package/dist/math/face/face.js.map +1 -0
  38. package/dist/math/face/face.test.d.ts +1 -0
  39. package/dist/math/face/face.test.js +94 -0
  40. package/dist/math/face/face.test.js.map +1 -0
  41. package/dist/math/index.d.ts +0 -1
  42. package/dist/math/index.js +0 -1
  43. package/dist/math/index.js.map +1 -1
  44. package/dist/math/mat4x4/mat4x4.d.ts +22 -0
  45. package/dist/math/mat4x4/mat4x4.js +22 -0
  46. package/dist/math/mat4x4/mat4x4.js.map +1 -1
  47. package/dist/math/picking/face.d.ts +1 -0
  48. package/dist/math/picking/face.js +2 -0
  49. package/dist/math/picking/face.js.map +1 -0
  50. package/dist/math/picking/get-closest-entity-to-line.js +1 -1
  51. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -1
  52. package/dist/math/picking/get-closest-entity-to-point.js +1 -1
  53. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -1
  54. package/dist/math/picking/getClosestEntityToLine.d.ts +4 -0
  55. package/dist/math/picking/getClosestEntityToLine.js +29 -0
  56. package/dist/math/picking/getClosestEntityToLine.js.map +1 -0
  57. package/dist/math/picking/getClosestEntityToPoint.d.ts +4 -0
  58. package/dist/math/picking/getClosestEntityToPoint.js +27 -0
  59. package/dist/math/picking/getClosestEntityToPoint.js.map +1 -0
  60. package/dist/math/picking/getIntersectingEntities.d.ts +12 -0
  61. package/dist/math/picking/getIntersectingEntities.js +15 -0
  62. package/dist/math/picking/getIntersectingEntities.js.map +1 -0
  63. package/dist/math/picking/pick-from-tables.js +1 -1
  64. package/dist/math/picking/pick-from-tables.js.map +1 -1
  65. package/dist/math/picking/pick-result.d.ts +4 -2
  66. package/dist/math/quat/quat.d.ts +5 -0
  67. package/dist/math/quat/quat.js +15 -4
  68. package/dist/math/quat/quat.js.map +1 -1
  69. package/dist/math/transform/debug-inverse.d.ts +1 -0
  70. package/dist/math/transform/debug-inverse.js +28 -0
  71. package/dist/math/transform/debug-inverse.js.map +1 -0
  72. package/dist/math/transform/debug-quat.d.ts +1 -0
  73. package/dist/math/transform/debug-quat.js +23 -0
  74. package/dist/math/transform/debug-quat.js.map +1 -0
  75. package/dist/math/transform/debug-test.d.ts +1 -0
  76. package/dist/math/transform/debug-test.js +34 -0
  77. package/dist/math/transform/debug-test.js.map +1 -0
  78. package/dist/math/transform/transform.d.ts +58 -0
  79. package/dist/math/transform/transform.js +101 -0
  80. package/dist/math/transform/transform.js.map +1 -0
  81. package/dist/math/transform/transform.test.d.ts +1 -0
  82. package/dist/math/transform/transform.test.js +309 -0
  83. package/dist/math/transform/transform.test.js.map +1 -0
  84. package/dist/math/vec3/vec3.d.ts +1 -0
  85. package/dist/math/vec3/vec3.js +1 -0
  86. package/dist/math/vec3/vec3.js.map +1 -1
  87. package/dist/observe/to-async-generator.js.map +1 -1
  88. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +3 -3
  89. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +3 -3
  90. package/dist/table/table.d.ts +3 -0
  91. package/dist/table/table.js +6 -1
  92. package/dist/table/table.js.map +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/dist/typed-buffer/create-array-buffer.js +10 -2
  95. package/dist/typed-buffer/create-array-buffer.js.map +1 -1
  96. package/dist/typed-buffer/create-array-buffer.test.d.ts +1 -0
  97. package/dist/typed-buffer/create-array-buffer.test.js +51 -0
  98. package/dist/typed-buffer/create-array-buffer.test.js.map +1 -0
  99. package/dist/typed-buffer/create-const-buffer.copy.test.d.ts +1 -0
  100. package/dist/typed-buffer/create-const-buffer.copy.test.js +36 -0
  101. package/dist/typed-buffer/create-const-buffer.copy.test.js.map +1 -0
  102. package/dist/typed-buffer/create-const-buffer.js +3 -0
  103. package/dist/typed-buffer/create-const-buffer.js.map +1 -1
  104. package/dist/typed-buffer/create-number-buffer.js +5 -0
  105. package/dist/typed-buffer/create-number-buffer.js.map +1 -1
  106. package/dist/typed-buffer/create-number-buffer.test.d.ts +1 -0
  107. package/dist/typed-buffer/create-number-buffer.test.js +48 -0
  108. package/dist/typed-buffer/create-number-buffer.test.js.map +1 -0
  109. package/dist/typed-buffer/create-struct-buffer.copy.test.d.ts +1 -0
  110. package/dist/typed-buffer/create-struct-buffer.copy.test.js +47 -0
  111. package/dist/typed-buffer/create-struct-buffer.copy.test.js.map +1 -0
  112. package/dist/typed-buffer/create-struct-buffer.js +9 -0
  113. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  114. package/dist/typed-buffer/typed-buffer.d.ts +1 -0
  115. package/dist/typed-buffer/typed-buffer.js.map +1 -1
  116. package/package.json +1 -1
  117. package/dist/lit/elements/service-application.d.ts +0 -9
  118. package/dist/lit/elements/service-application.js +0 -55
  119. package/dist/lit/elements/service-application.js.map +0 -1
  120. package/dist/lit/elements/service-context.d.ts +0 -1
  121. package/dist/lit/elements/service-context.js.map +0 -1
  122. package/dist/lit/elements/service-element.d.ts +0 -6
  123. package/dist/lit/elements/service-element.js +0 -43
  124. package/dist/lit/elements/service-element.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import { Entity } from "../../ecs/index.js";
2
+ import { Table } from "../../table/table.js";
3
+ import { Aabb, Line3 } from "../index.js";
4
+ export declare function getIntersectingEntities<T extends Table<{
5
+ id: Entity;
6
+ boundingBox: Aabb;
7
+ }>>(options: {
8
+ tables: readonly T[];
9
+ line: Line3;
10
+ radius?: number;
11
+ predicate?: (table: T, row: number) => boolean;
12
+ }): Map<Entity, Aabb>;
@@ -0,0 +1,15 @@
1
+ import { Aabb } from "../index.js";
2
+ export function getIntersectingEntities(options) {
3
+ const { tables, line, radius = 0, predicate } = options;
4
+ const rows = new Map();
5
+ for (const table of tables) {
6
+ for (let row = 0; row < table.rowCount; row++) {
7
+ const boundingBox = table.columns.boundingBox.get(row);
8
+ if (Aabb.lineIntersection(boundingBox, line, radius) !== -1 && (predicate?.(table, row) ?? true)) {
9
+ rows.set(table.columns.id.get(row), boundingBox);
10
+ }
11
+ }
12
+ }
13
+ return rows;
14
+ }
15
+ //# sourceMappingURL=getIntersectingEntities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIntersectingEntities.js","sourceRoot":"","sources":["../../../src/math/picking/getIntersectingEntities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAS,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,uBAAuB,CAAsD,OAK5F;IACG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAgB,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC/F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -45,7 +45,7 @@ export function pickFromTables(options) {
45
45
  return {
46
46
  entity: best.id,
47
47
  lineAlpha: best.alpha,
48
- entityPosition: Line3.interpolate(line, best.alpha),
48
+ worldPosition: Line3.interpolate(line, best.alpha),
49
49
  // face: AabbFace.fromPosition(Line3.interpolate(line, best.alpha), rows.get(best.id)!),
50
50
  };
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pick-from-tables.js","sourceRoot":"","sources":["../../../src/math/picking/pick-from-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAGX,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAqD,OAKlF;IACG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACxD,IAAI,IAAI,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChB,8EAA8E;QAC9E,IAAI,IAAI,GAAyC,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;QACL,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;gBACnD,wFAAwF;aAC3F,CAAC;QACN,CAAC;QACD,gCAAgC;QAChC,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"pick-from-tables.js","sourceRoot":"","sources":["../../../src/math/picking/pick-from-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAGX,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAqD,OAKlF;IACG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACxD,IAAI,IAAI,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAChB,8EAA8E;QAC9E,IAAI,IAAI,GAAyC,IAAI,CAAC;QACtD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;QACL,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS,EAAE,IAAI,CAAC,KAAK;gBACrB,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;gBAClD,wFAAwF;aAC3F,CAAC;QACN,CAAC;QACD,gCAAgC;QAChC,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,GAAG,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -5,6 +5,8 @@ export interface PickResult {
5
5
  entity: Entity;
6
6
  /** Alpha value (0-1) along the picking line where the intersection/closest point occurs. */
7
7
  lineAlpha: number;
8
- /** World-space position of the entity or closest point on the AABB. */
9
- entityPosition: Vec3;
8
+ /** World-space position of the picked entity. */
9
+ worldPosition: Vec3;
10
+ /** Model-space position on the picked entity. */
11
+ modelPosition?: Vec3;
10
12
  }
@@ -35,6 +35,11 @@ export declare namespace Quat {
35
35
  const rotateVec3: ([x, y, z, w]: Quat, v: Vec3) => Vec3;
36
36
  const slerp: (q1: Quat, q2: Quat, t: number) => Quat;
37
37
  const lerp: (q1: Quat, q2: Quat, t: number) => Quat;
38
+ /**
39
+ * Converts a quaternion to a 4x4 rotation matrix in column-major order.
40
+ * The resulting matrix is compatible with WebGPU and can be directly used
41
+ * with Mat4x4 operations.
42
+ */
38
43
  const toMat4: ([x, y, z, w]: Quat) => Mat4x4;
39
44
  const identity: Quat;
40
45
  const inverse: (q: Quat) => Quat;
@@ -68,7 +68,12 @@ export var Quat;
68
68
  const halfAngle = angle * 0.5;
69
69
  const s = Math.sin(halfAngle);
70
70
  const c = Math.cos(halfAngle);
71
- return [axis[0] * s, axis[1] * s, axis[2] * s, c];
71
+ // Normalize the axis to ensure a unit quaternion
72
+ const len = Math.sqrt(axis[0] * axis[0] + axis[1] * axis[1] + axis[2] * axis[2]);
73
+ if (len === 0)
74
+ return Quat.identity;
75
+ const invLen = 1 / len;
76
+ return [axis[0] * invLen * s, axis[1] * invLen * s, axis[2] * invLen * s, c];
72
77
  };
73
78
  Quat.toAxisAngle = ([x, y, z, w]) => {
74
79
  const angle = 2 * Math.acos(Math.abs(w));
@@ -148,6 +153,11 @@ export var Quat;
148
153
  return Quat.normalize(Quat.add(Quat.scale(q1, 1 - t), Quat.scale(q2, t)));
149
154
  };
150
155
  // Matrix Conversion
156
+ /**
157
+ * Converts a quaternion to a 4x4 rotation matrix in column-major order.
158
+ * The resulting matrix is compatible with WebGPU and can be directly used
159
+ * with Mat4x4 operations.
160
+ */
151
161
  Quat.toMat4 = ([x, y, z, w]) => {
152
162
  const xx = x * x;
153
163
  const yy = y * y;
@@ -158,10 +168,11 @@ export var Quat;
158
168
  const wx = w * x;
159
169
  const wy = w * y;
160
170
  const wz = w * z;
171
+ // Column-major format (WebGPU standard)
161
172
  return [
162
- 1 - 2 * (yy + zz), 2 * (xy - wz), 2 * (xz + wy), 0,
163
- 2 * (xy + wz), 1 - 2 * (xx + zz), 2 * (yz - wx), 0,
164
- 2 * (xz - wy), 2 * (yz + wx), 1 - 2 * (xx + yy), 0,
173
+ 1 - 2 * (yy + zz), 2 * (xy + wz), 2 * (xz - wy), 0,
174
+ 2 * (xy - wz), 1 - 2 * (xx + zz), 2 * (yz + wx), 0,
175
+ 2 * (xz + wy), 2 * (yz - wx), 1 - 2 * (xx + yy), 0,
165
176
  0, 0, 0, 1
166
177
  ];
167
178
  };
@@ -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":"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"}
@@ -0,0 +1 @@
1
+ export {};