@adobe/data 0.5.14 → 0.5.17

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 (94) 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/math/aabb/aabb.d.ts +42 -42
  4. package/dist/math/aabb/aabb.js +65 -62
  5. package/dist/math/aabb/aabb.js.map +1 -1
  6. package/dist/math/aabb-face/aabb-face.d.ts +59 -0
  7. package/dist/math/aabb-face/aabb-face.js +145 -0
  8. package/dist/math/aabb-face/aabb-face.js.map +1 -0
  9. package/dist/math/aabb-face/aabb-face.test.d.ts +1 -0
  10. package/dist/math/aabb-face/aabb-face.test.js +54 -0
  11. package/dist/math/aabb-face/aabb-face.test.js.map +1 -0
  12. package/dist/math/f32/f32.d.ts +8 -6
  13. package/dist/math/f32/f32.js +4 -1
  14. package/dist/math/f32/f32.js.map +1 -1
  15. package/dist/math/i32/i32.d.ts +9 -6
  16. package/dist/math/i32/i32.js +5 -2
  17. package/dist/math/i32/i32.js.map +1 -1
  18. package/dist/math/index.d.ts +13 -22
  19. package/dist/math/index.js +13 -22
  20. package/dist/math/index.js.map +1 -1
  21. package/dist/math/line2/line2.d.ts +36 -36
  22. package/dist/math/line2/line2.js +55 -52
  23. package/dist/math/line2/line2.js.map +1 -1
  24. package/dist/math/line3/line3.d.ts +48 -43
  25. package/dist/math/line3/line3.js +64 -52
  26. package/dist/math/line3/line3.js.map +1 -1
  27. package/dist/math/mat4x4/mat4x4.d.ts +34 -34
  28. package/dist/math/mat4x4/mat4x4.js +216 -213
  29. package/dist/math/mat4x4/mat4x4.js.map +1 -1
  30. package/dist/math/picking/get-closest-entity-to-line.d.ts +4 -0
  31. package/dist/math/picking/get-closest-entity-to-line.js +30 -0
  32. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -0
  33. package/dist/math/picking/get-closest-entity-to-point.d.ts +4 -0
  34. package/dist/math/picking/get-closest-entity-to-point.js +27 -0
  35. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -0
  36. package/dist/math/picking/get-intersecting-entities.d.ts +12 -0
  37. package/dist/math/picking/get-intersecting-entities.js +15 -0
  38. package/dist/math/picking/get-intersecting-entities.js.map +1 -0
  39. package/dist/math/picking/index.d.ts +4 -0
  40. package/dist/math/picking/index.js +4 -0
  41. package/dist/math/picking/index.js.map +1 -1
  42. package/dist/math/picking/pick-from-tables.d.ts +1 -0
  43. package/dist/math/picking/pick-from-tables.js +7 -98
  44. package/dist/math/picking/pick-from-tables.js.map +1 -1
  45. package/dist/math/picking/pick-result.d.ts +5 -2
  46. package/dist/math/plane/plane.d.ts +43 -0
  47. package/dist/math/plane/plane.js +70 -0
  48. package/dist/math/plane/plane.js.map +1 -0
  49. package/dist/math/plane/plane.test.d.ts +1 -0
  50. package/dist/math/plane/plane.test.js +132 -0
  51. package/dist/math/plane/plane.test.js.map +1 -0
  52. package/dist/math/quat/quat.d.ts +49 -39
  53. package/dist/math/quat/quat.js +225 -185
  54. package/dist/math/quat/quat.js.map +1 -1
  55. package/dist/math/u32/u32.d.ts +9 -7
  56. package/dist/math/u32/u32.js +4 -1
  57. package/dist/math/u32/u32.js.map +1 -1
  58. package/dist/math/vec2/vec2.d.ts +61 -61
  59. package/dist/math/vec2/vec2.js +93 -90
  60. package/dist/math/vec2/vec2.js.map +1 -1
  61. package/dist/math/vec3/vec3.d.ts +66 -63
  62. package/dist/math/vec3/vec3.js +137 -129
  63. package/dist/math/vec3/vec3.js.map +1 -1
  64. package/dist/math/vec4/vec4.d.ts +61 -61
  65. package/dist/math/vec4/vec4.js +132 -129
  66. package/dist/math/vec4/vec4.js.map +1 -1
  67. package/dist/observe/to-async-generator.js +4 -4
  68. package/dist/observe/to-async-generator.js.map +1 -1
  69. package/dist/old-ecs/action-ecs/action-ecs.test.js +1 -1
  70. package/dist/old-ecs/action-ecs/action-ecs.test.js.map +1 -1
  71. package/dist/old-ecs/action-ecs/action-types.d.ts +7 -0
  72. package/dist/old-ecs/action-ecs/action-types.js.map +1 -1
  73. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js +205 -1
  74. package/dist/old-ecs/core-ecs/core-ecs-serialization.test.js.map +1 -1
  75. package/dist/old-ecs/core-ecs/core-ecs-types.d.ts +4 -1
  76. package/dist/old-ecs/core-ecs/core-ecs.d.ts +2 -0
  77. package/dist/old-ecs/core-ecs/core-ecs.js +23 -9
  78. package/dist/old-ecs/core-ecs/core-ecs.js.map +1 -1
  79. package/dist/old-ecs/ecs/ecs-types.d.ts +7 -0
  80. package/dist/old-ecs/ecs/ecs.test.js +1 -1
  81. package/dist/old-ecs/ecs/ecs.test.js.map +1 -1
  82. package/dist/old-ecs/privacy/helper-functions.d.ts +43 -0
  83. package/dist/old-ecs/privacy/helper-functions.js +76 -0
  84. package/dist/old-ecs/privacy/helper-functions.js.map +1 -0
  85. package/dist/old-ecs/privacy/helper-functions.test.d.ts +1 -0
  86. package/dist/old-ecs/privacy/helper-functions.test.js +173 -0
  87. package/dist/old-ecs/privacy/helper-functions.test.js.map +1 -0
  88. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js +1 -1
  89. package/dist/old-ecs/transaction-ecs/transaction-ecs.test.js.map +1 -1
  90. package/dist/old-ecs/transaction-ecs/transaction-types.d.ts +7 -0
  91. package/dist/samples/todo/services/state-service/create-todo-database.d.ts +2 -2
  92. package/dist/samples/todo/services/state-service/create-todo-store.d.ts +2 -2
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +6 -3
@@ -22,199 +22,239 @@ SOFTWARE.*/
22
22
  import { F32Schema } from "../../schema/index.js";
23
23
  import { getStructLayout } from "../../typed-buffer/index.js";
24
24
  import { Vec3 } from "../index.js";
25
- export const schema = {
26
- type: 'array',
27
- items: F32Schema,
28
- minItems: 4,
29
- maxItems: 4,
30
- default: [0, 0, 0, 1], // identity quaternion
31
- };
32
- export const layout = getStructLayout(schema);
33
- // Basic Quaternion Operations
34
- export const add = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
35
- x1 + x2,
36
- y1 + y2,
37
- z1 + z2,
38
- w1 + w2
39
- ];
40
- export const subtract = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
41
- x1 - x2,
42
- y1 - y2,
43
- z1 - z2,
44
- w1 - w2
45
- ];
46
- export const scale = ([x, y, z, w], s) => [x * s, y * s, z * s, w * s];
47
- export const negate = ([x, y, z, w]) => [-x, -y, -z, -w];
48
- export const conjugate = ([x, y, z, w]) => [-x, -y, -z, w];
49
- export const multiply = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
50
- x1 * w2 + w1 * x2 + y1 * z2 - z1 * y2,
51
- y1 * w2 + w1 * y2 + z1 * x2 - x1 * z2,
52
- z1 * w2 + w1 * z2 + x1 * y2 - y1 * x2,
53
- w1 * w2 - x1 * x2 - y1 * y2 - z1 * z2
54
- ];
55
- // Geometric Functions
56
- export const length = ([x, y, z, w]) => Math.sqrt(x * x + y * y + z * z + w * w);
57
- export const lengthSquared = ([x, y, z, w]) => x * x + y * y + z * z + w * w;
58
- export const normalize = (q) => {
59
- const len = length(q);
60
- return len === 0 ? [0, 0, 0, 1] : scale(q, 1 / len);
61
- };
62
- export const dot = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => x1 * x2 + y1 * y2 + z1 * z2 + w1 * w2;
63
- export const distance = (a, b) => length(subtract(b, a));
64
- // Rotation Functions
65
- export const fromAxisAngle = (axis, angle) => {
66
- const halfAngle = angle * 0.5;
67
- const s = Math.sin(halfAngle);
68
- const c = Math.cos(halfAngle);
69
- return [axis[0] * s, axis[1] * s, axis[2] * s, c];
70
- };
71
- export const toAxisAngle = ([x, y, z, w]) => {
72
- const angle = 2 * Math.acos(Math.abs(w));
73
- const s = Math.sin(angle * 0.5);
74
- if (s === 0) {
75
- return { axis: [0, 0, 1], angle: 0 };
76
- }
77
- return {
78
- axis: [x / s, y / s, z / s],
79
- angle: w < 0 ? -angle : angle
25
+ export var Quat;
26
+ (function (Quat) {
27
+ Quat.schema = {
28
+ type: 'array',
29
+ items: F32Schema,
30
+ minItems: 4,
31
+ maxItems: 4,
32
+ default: [0, 0, 0, 1], // identity quaternion
80
33
  };
81
- };
82
- export const fromEuler = (x, y, z) => {
83
- const cx = Math.cos(x * 0.5);
84
- const sx = Math.sin(x * 0.5);
85
- const cy = Math.cos(y * 0.5);
86
- const sy = Math.sin(y * 0.5);
87
- const cz = Math.cos(z * 0.5);
88
- const sz = Math.sin(z * 0.5);
89
- return [
90
- sx * cy * cz - cx * sy * sz,
91
- cx * sy * cz + sx * cy * sz,
92
- cx * cy * sz - sx * sy * cz,
93
- cx * cy * cz + sx * sy * sz
34
+ Quat.layout = getStructLayout(Quat.schema);
35
+ // Basic Quaternion Operations
36
+ Quat.add = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
37
+ x1 + x2,
38
+ y1 + y2,
39
+ z1 + z2,
40
+ w1 + w2
94
41
  ];
95
- };
96
- export const toEuler = ([x, y, z, w]) => {
97
- // Roll (x-axis rotation)
98
- const sinr_cosp = 2 * (w * x + y * z);
99
- const cosr_cosp = 1 - 2 * (x * x + y * y);
100
- const roll = Math.atan2(sinr_cosp, cosr_cosp);
101
- // Pitch (y-axis rotation)
102
- const sinp = 2 * (w * y - z * x);
103
- let pitch;
104
- if (Math.abs(sinp) >= 1) {
105
- pitch = Math.sign(sinp) * Math.PI / 2; // use 90 degrees if out of range
106
- }
107
- else {
108
- pitch = Math.asin(sinp);
109
- }
110
- // Yaw (z-axis rotation)
111
- const siny_cosp = 2 * (w * z + x * y);
112
- const cosy_cosp = 1 - 2 * (y * y + z * z);
113
- const yaw = Math.atan2(siny_cosp, cosy_cosp);
114
- return [roll, pitch, yaw];
115
- };
116
- // Vector Rotation
117
- export const rotateVec3 = ([x, y, z, w], v) => {
118
- // q * v * q^-1
119
- const qv = [x, y, z];
120
- const uv = Vec3.cross(qv, v);
121
- const uuv = Vec3.cross(qv, uv);
122
- const scaleFactor = 2 * w;
123
- return [
124
- v[0] + scaleFactor * uv[0] + 2 * uuv[0],
125
- v[1] + scaleFactor * uv[1] + 2 * uuv[1],
126
- v[2] + scaleFactor * uv[2] + 2 * uuv[2]
42
+ Quat.subtract = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
43
+ x1 - x2,
44
+ y1 - y2,
45
+ z1 - z2,
46
+ w1 - w2
127
47
  ];
128
- };
129
- // Interpolation
130
- export const slerp = (q1, q2, t) => {
131
- const dotProduct = dot(q1, q2);
132
- // If the dot product is negative, slerp won't take the shorter route
133
- const q2Adjusted = dotProduct < 0 ? negate(q2) : q2;
134
- const adjustedDot = Math.abs(dotProduct);
135
- // If the inputs are too close for comfort, linearly interpolate
136
- if (adjustedDot > 0.9995) {
137
- return normalize(add(scale(q1, 1 - t), scale(q2Adjusted, t)));
138
- }
139
- const theta = Math.acos(adjustedDot);
140
- const sinTheta = Math.sin(theta);
141
- const factor1 = Math.sin((1 - t) * theta) / sinTheta;
142
- const factor2 = Math.sin(t * theta) / sinTheta;
143
- return normalize(add(scale(q1, factor1), scale(q2Adjusted, factor2)));
144
- };
145
- export const lerp = (q1, q2, t) => {
146
- return normalize(add(scale(q1, 1 - t), scale(q2, t)));
147
- };
148
- // Matrix Conversion
149
- export const toMat4 = ([x, y, z, w]) => {
150
- const xx = x * x;
151
- const yy = y * y;
152
- const zz = z * z;
153
- const xy = x * y;
154
- const xz = x * z;
155
- const yz = y * z;
156
- const wx = w * x;
157
- const wy = w * y;
158
- const wz = w * z;
159
- return [
160
- 1 - 2 * (yy + zz), 2 * (xy - wz), 2 * (xz + wy), 0,
161
- 2 * (xy + wz), 1 - 2 * (xx + zz), 2 * (yz - wx), 0,
162
- 2 * (xz - wy), 2 * (yz + wx), 1 - 2 * (xx + yy), 0,
163
- 0, 0, 0, 1
48
+ Quat.scale = ([x, y, z, w], s) => [x * s, y * s, z * s, w * s];
49
+ Quat.negate = ([x, y, z, w]) => [-x, -y, -z, -w];
50
+ Quat.conjugate = ([x, y, z, w]) => [-x, -y, -z, w];
51
+ Quat.multiply = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => [
52
+ x1 * w2 + w1 * x2 + y1 * z2 - z1 * y2,
53
+ y1 * w2 + w1 * y2 + z1 * x2 - x1 * z2,
54
+ z1 * w2 + w1 * z2 + x1 * y2 - y1 * x2,
55
+ w1 * w2 - x1 * x2 - y1 * y2 - z1 * z2
164
56
  ];
165
- };
166
- // Utility Functions
167
- export const identity = () => [0, 0, 0, 1];
168
- export const inverse = (q) => {
169
- const lenSq = lengthSquared(q);
170
- if (lenSq === 0)
171
- return [0, 0, 0, 1];
172
- return scale(conjugate(q), 1 / lenSq);
173
- };
174
- export const lookAt = (forward, up) => {
175
- // Normalize forward vector
176
- const f = Vec3.normalize(forward);
177
- // Calculate right vector
178
- const r = Vec3.normalize(Vec3.cross(f, up));
179
- // Recalculate up vector
180
- const u = Vec3.cross(r, f);
181
- // Convert to quaternion
182
- const trace = r[0] + u[1] + f[2];
183
- if (trace > 0) {
184
- const s = Math.sqrt(trace + 1) * 2;
185
- return [
186
- (u[2] - f[1]) / s,
187
- (f[0] - r[2]) / s,
188
- (r[1] - u[0]) / s,
189
- 0.25 * s
190
- ];
191
- }
192
- else if (r[0] > u[1] && r[0] > f[2]) {
193
- const s = Math.sqrt(1 + r[0] - u[1] - f[2]) * 2;
57
+ // Geometric Functions
58
+ Quat.length = ([x, y, z, w]) => Math.sqrt(x * x + y * y + z * z + w * w);
59
+ Quat.lengthSquared = ([x, y, z, w]) => x * x + y * y + z * z + w * w;
60
+ Quat.normalize = (q) => {
61
+ const len = Quat.length(q);
62
+ return len === 0 ? [0, 0, 0, 1] : Quat.scale(q, 1 / len);
63
+ };
64
+ Quat.dot = ([x1, y1, z1, w1], [x2, y2, z2, w2]) => x1 * x2 + y1 * y2 + z1 * z2 + w1 * w2;
65
+ Quat.distance = (a, b) => Quat.length(Quat.subtract(b, a));
66
+ // Rotation Functions
67
+ Quat.fromAxisAngle = (axis, angle) => {
68
+ const halfAngle = angle * 0.5;
69
+ const s = Math.sin(halfAngle);
70
+ const c = Math.cos(halfAngle);
71
+ return [axis[0] * s, axis[1] * s, axis[2] * s, c];
72
+ };
73
+ Quat.toAxisAngle = ([x, y, z, w]) => {
74
+ const angle = 2 * Math.acos(Math.abs(w));
75
+ const s = Math.sin(angle * 0.5);
76
+ if (s === 0) {
77
+ return { axis: [0, 0, 1], angle: 0 };
78
+ }
79
+ return {
80
+ axis: [x / s, y / s, z / s],
81
+ angle: w < 0 ? -angle : angle
82
+ };
83
+ };
84
+ Quat.fromEuler = (x, y, z) => {
85
+ const cx = Math.cos(x * 0.5);
86
+ const sx = Math.sin(x * 0.5);
87
+ const cy = Math.cos(y * 0.5);
88
+ const sy = Math.sin(y * 0.5);
89
+ const cz = Math.cos(z * 0.5);
90
+ const sz = Math.sin(z * 0.5);
194
91
  return [
195
- 0.25 * s,
196
- (u[0] + r[1]) / s,
197
- (f[0] + r[2]) / s,
198
- (u[2] - f[1]) / s
92
+ sx * cy * cz - cx * sy * sz,
93
+ cx * sy * cz + sx * cy * sz,
94
+ cx * cy * sz - sx * sy * cz,
95
+ cx * cy * cz + sx * sy * sz
199
96
  ];
200
- }
201
- else if (u[1] > f[2]) {
202
- const s = Math.sqrt(1 + u[1] - r[0] - f[2]) * 2;
97
+ };
98
+ Quat.toEuler = ([x, y, z, w]) => {
99
+ // Roll (x-axis rotation)
100
+ const sinr_cosp = 2 * (w * x + y * z);
101
+ const cosr_cosp = 1 - 2 * (x * x + y * y);
102
+ const roll = Math.atan2(sinr_cosp, cosr_cosp);
103
+ // Pitch (y-axis rotation)
104
+ const sinp = 2 * (w * y - z * x);
105
+ let pitch;
106
+ if (Math.abs(sinp) >= 1) {
107
+ pitch = Math.sign(sinp) * Math.PI / 2; // use 90 degrees if out of range
108
+ }
109
+ else {
110
+ pitch = Math.asin(sinp);
111
+ }
112
+ // Yaw (z-axis rotation)
113
+ const siny_cosp = 2 * (w * z + x * y);
114
+ const cosy_cosp = 1 - 2 * (y * y + z * z);
115
+ const yaw = Math.atan2(siny_cosp, cosy_cosp);
116
+ return [roll, pitch, yaw];
117
+ };
118
+ // Vector Rotation
119
+ Quat.rotateVec3 = ([x, y, z, w], v) => {
120
+ // q * v * q^-1
121
+ const qv = [x, y, z];
122
+ const uv = Vec3.cross(qv, v);
123
+ const uuv = Vec3.cross(qv, uv);
124
+ const scaleFactor = 2 * w;
203
125
  return [
204
- (u[0] + r[1]) / s,
205
- 0.25 * s,
206
- (f[1] + u[2]) / s,
207
- (f[0] - r[2]) / s
126
+ v[0] + scaleFactor * uv[0] + 2 * uuv[0],
127
+ v[1] + scaleFactor * uv[1] + 2 * uuv[1],
128
+ v[2] + scaleFactor * uv[2] + 2 * uuv[2]
208
129
  ];
209
- }
210
- else {
211
- const s = Math.sqrt(1 + f[2] - r[0] - u[1]) * 2;
130
+ };
131
+ // Interpolation
132
+ Quat.slerp = (q1, q2, t) => {
133
+ const dotProduct = Quat.dot(q1, q2);
134
+ // If the dot product is negative, slerp won't take the shorter route
135
+ const q2Adjusted = dotProduct < 0 ? Quat.negate(q2) : q2;
136
+ const adjustedDot = Math.abs(dotProduct);
137
+ // If the inputs are too close for comfort, linearly interpolate
138
+ if (adjustedDot > 0.9995) {
139
+ return Quat.normalize(Quat.add(Quat.scale(q1, 1 - t), Quat.scale(q2Adjusted, t)));
140
+ }
141
+ const theta = Math.acos(adjustedDot);
142
+ const sinTheta = Math.sin(theta);
143
+ const factor1 = Math.sin((1 - t) * theta) / sinTheta;
144
+ const factor2 = Math.sin(t * theta) / sinTheta;
145
+ return Quat.normalize(Quat.add(Quat.scale(q1, factor1), Quat.scale(q2Adjusted, factor2)));
146
+ };
147
+ Quat.lerp = (q1, q2, t) => {
148
+ return Quat.normalize(Quat.add(Quat.scale(q1, 1 - t), Quat.scale(q2, t)));
149
+ };
150
+ // Matrix Conversion
151
+ Quat.toMat4 = ([x, y, z, w]) => {
152
+ const xx = x * x;
153
+ const yy = y * y;
154
+ const zz = z * z;
155
+ const xy = x * y;
156
+ const xz = x * z;
157
+ const yz = y * z;
158
+ const wx = w * x;
159
+ const wy = w * y;
160
+ const wz = w * z;
212
161
  return [
213
- (f[0] + r[2]) / s,
214
- (f[1] + u[2]) / s,
215
- 0.25 * s,
216
- (r[1] - u[0]) / s
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,
165
+ 0, 0, 0, 1
217
166
  ];
218
- }
219
- };
167
+ };
168
+ Quat.identity = [0, 0, 0, 1];
169
+ // Utility Functions
170
+ Quat.inverse = (q) => {
171
+ const lenSq = Quat.lengthSquared(q);
172
+ if (lenSq === 0)
173
+ return [0, 0, 0, 1];
174
+ return Quat.scale(Quat.conjugate(q), 1 / lenSq);
175
+ };
176
+ Quat.lookAt = (forward, up) => {
177
+ // Normalize forward vector
178
+ const f = Vec3.normalize(forward);
179
+ // Calculate right vector
180
+ const r = Vec3.normalize(Vec3.cross(f, up));
181
+ // Recalculate up vector
182
+ const u = Vec3.cross(r, f);
183
+ // Convert to quaternion
184
+ const trace = r[0] + u[1] + f[2];
185
+ if (trace > 0) {
186
+ const s = Math.sqrt(trace + 1) * 2;
187
+ return [
188
+ (u[2] - f[1]) / s,
189
+ (f[0] - r[2]) / s,
190
+ (r[1] - u[0]) / s,
191
+ 0.25 * s
192
+ ];
193
+ }
194
+ else if (r[0] > u[1] && r[0] > f[2]) {
195
+ const s = Math.sqrt(1 + r[0] - u[1] - f[2]) * 2;
196
+ return [
197
+ 0.25 * s,
198
+ (u[0] + r[1]) / s,
199
+ (f[0] + r[2]) / s,
200
+ (u[2] - f[1]) / s
201
+ ];
202
+ }
203
+ else if (u[1] > f[2]) {
204
+ const s = Math.sqrt(1 + u[1] - r[0] - f[2]) * 2;
205
+ return [
206
+ (u[0] + r[1]) / s,
207
+ 0.25 * s,
208
+ (f[1] + u[2]) / s,
209
+ (f[0] - r[2]) / s
210
+ ];
211
+ }
212
+ else {
213
+ const s = Math.sqrt(1 + f[2] - r[0] - u[1]) * 2;
214
+ return [
215
+ (f[0] + r[2]) / s,
216
+ (f[1] + u[2]) / s,
217
+ 0.25 * s,
218
+ (r[1] - u[0]) / s
219
+ ];
220
+ }
221
+ };
222
+ /**
223
+ * Returns a quaternion that aligns the local Z-axis to the given direction via the shortest arc,
224
+ * then applies an additional twist around that aligned Z-axis.
225
+ *
226
+ * Note: This aligns the Z axis.
227
+ *
228
+ * @param direction - Target world-space direction for local Z. If zero-length, returns identity.
229
+ * @param twistRadians - Extra rotation around the aligned Z-axis, in radians. Defaults to 0.
230
+ */
231
+ Quat.alignTo = (direction, twistRadians = 0) => {
232
+ const zAxis = [0, 0, 1];
233
+ const dirLen = Vec3.length(direction);
234
+ if (dirLen === 0)
235
+ return Quat.identity;
236
+ const dir = Vec3.normalize(direction);
237
+ const dotVal = Vec3.dot(zAxis, dir);
238
+ let base;
239
+ if (dotVal > 0.999999) {
240
+ base = Quat.identity;
241
+ }
242
+ else if (dotVal < -0.999999) {
243
+ // Opposite: 180° around any axis orthogonal to Z
244
+ const orthoCandidate = [1, 0, 0];
245
+ const axis = Math.abs(Vec3.dot(zAxis, orthoCandidate)) > 0.999 ? [0, 1, 0] : orthoCandidate;
246
+ base = Quat.fromAxisAngle(axis, Math.PI);
247
+ }
248
+ else {
249
+ const axis = Vec3.normalize(Vec3.cross(zAxis, dir));
250
+ const angle = Math.acos(dotVal);
251
+ base = Quat.fromAxisAngle(axis, angle);
252
+ }
253
+ if (twistRadians === 0)
254
+ return base;
255
+ // Twist around the final aligned Z (which is 'dir' in world space)
256
+ const twist = Quat.fromAxisAngle(dir, twistRadians);
257
+ return Quat.multiply(twist, base);
258
+ };
259
+ })(Quat || (Quat = {}));
220
260
  //# sourceMappingURL=quat.js.map
@@ -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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"}
@@ -1,8 +1,10 @@
1
1
  import { FromSchema } from "../../schema/index.js";
2
- export declare const schema: {
3
- readonly type: "integer";
4
- readonly minimum: 0;
5
- readonly maximum: 4294967295;
6
- readonly default: number;
7
- };
8
- export type Type = FromSchema<typeof schema>;
2
+ export type U32 = FromSchema<typeof U32.schema>;
3
+ export declare namespace U32 {
4
+ const schema: {
5
+ readonly type: "integer";
6
+ readonly minimum: 0;
7
+ readonly maximum: 4294967295;
8
+ readonly default: number;
9
+ };
10
+ }
@@ -20,5 +20,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
22
  import { U32Schema } from "../../schema/index.js";
23
- export const schema = U32Schema;
23
+ export var U32;
24
+ (function (U32) {
25
+ U32.schema = U32Schema;
26
+ })(U32 || (U32 = {}));
24
27
  //# sourceMappingURL=u32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"u32.js","sourceRoot":"","sources":["../../../src/math/u32/u32.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAA"}
1
+ {"version":3,"file":"u32.js","sourceRoot":"","sources":["../../../src/math/u32/u32.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAI9D,MAAM,KAAW,GAAG,CAEnB;AAFD,WAAiB,GAAG;IACH,UAAM,GAAG,SAAS,CAAC;AACpC,CAAC,EAFgB,GAAG,KAAH,GAAG,QAEnB"}
@@ -1,63 +1,63 @@
1
1
  import { FromSchema } from "../../schema/index.js";
2
- export declare const schema: {
3
- readonly type: "array";
4
- readonly items: {
5
- readonly type: "number";
6
- readonly precision: 1;
7
- readonly default: number;
2
+ export type Vec2 = FromSchema<typeof Vec2.schema>;
3
+ export declare namespace Vec2 {
4
+ const schema: {
5
+ readonly type: "array";
6
+ readonly items: {
7
+ readonly type: "number";
8
+ readonly precision: 1;
9
+ readonly default: number;
10
+ };
11
+ readonly minItems: 2;
12
+ readonly maxItems: 2;
13
+ readonly default: readonly [0, 0];
8
14
  };
9
- readonly minItems: 2;
10
- readonly maxItems: 2;
11
- readonly default: readonly [0, 0];
12
- };
13
- export type Type = FromSchema<typeof schema>;
14
- type Vec2 = Type;
15
- export declare const layout: import("../../typed-buffer/index.js").StructLayout;
16
- export declare const abs: ([x, y]: Vec2) => Vec2;
17
- export declare const ceil: ([x, y]: Vec2) => Vec2;
18
- export declare const floor: ([x, y]: Vec2) => Vec2;
19
- export declare const round: ([x, y]: Vec2) => Vec2;
20
- export declare const trunc: ([x, y]: Vec2) => Vec2;
21
- export declare const min: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
22
- export declare const max: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
23
- export declare const clamp: (v: Vec2, minVec: Vec2, maxVec: Vec2) => Vec2;
24
- export declare const mix: ([x1, y1]: Vec2, [x2, y2]: Vec2, t: number) => Vec2;
25
- export declare const step: ([edge1, edge2]: Vec2, [x, y]: Vec2) => Vec2;
26
- export declare const smoothstep: ([e0x, e0y]: Vec2, [e1x, e1y]: Vec2, [x, y]: Vec2) => Vec2;
27
- export declare const length: ([x, y]: Vec2) => number;
28
- export declare const distance: (a: Vec2, b: Vec2) => number;
29
- export declare const dot: ([x1, y1]: Vec2, [x2, y2]: Vec2) => number;
30
- export declare const normalize: (v: Vec2) => Vec2;
31
- export declare const faceforward: (n: Vec2, i: Vec2, nref: Vec2) => Vec2;
32
- export declare const reflect: (i: Vec2, n: Vec2) => Vec2;
33
- export declare const refract: (i: Vec2, n: Vec2, eta: number) => Vec2;
34
- export declare const sin: ([x, y]: Vec2) => Vec2;
35
- export declare const cos: ([x, y]: Vec2) => Vec2;
36
- export declare const tan: ([x, y]: Vec2) => Vec2;
37
- export declare const asin: ([x, y]: Vec2) => Vec2;
38
- export declare const acos: ([x, y]: Vec2) => Vec2;
39
- export declare const atan: ([x, y]: Vec2) => Vec2;
40
- export declare const sinh: ([x, y]: Vec2) => Vec2;
41
- export declare const cosh: ([x, y]: Vec2) => Vec2;
42
- export declare const tanh: ([x, y]: Vec2) => Vec2;
43
- export declare const asinh: ([x, y]: Vec2) => Vec2;
44
- export declare const acosh: ([x, y]: Vec2) => Vec2;
45
- export declare const atanh: ([x, y]: Vec2) => Vec2;
46
- export declare const sign: ([x, y]: Vec2) => Vec2;
47
- export declare const fract: ([x, y]: Vec2) => Vec2;
48
- export declare const mod: ([x, y]: Vec2, m: number) => Vec2;
49
- export declare const modf: ([x, y]: Vec2) => {
50
- fract: Vec2;
51
- whole: Vec2;
52
- };
53
- export declare const pow: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
54
- export declare const exp: ([x, y]: Vec2) => Vec2;
55
- export declare const exp2: ([x, y]: Vec2) => Vec2;
56
- export declare const log: ([x, y]: Vec2) => Vec2;
57
- export declare const log2: ([x, y]: Vec2) => Vec2;
58
- export declare const sqrt: ([x, y]: Vec2) => Vec2;
59
- export declare const add: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
60
- export declare const subtract: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
61
- export declare const scale: ([x, y]: Vec2, s: number) => Vec2;
62
- export declare const negate: ([x, y]: Vec2) => Vec2;
63
- export {};
15
+ const layout: import("../../typed-buffer/index.js").StructLayout;
16
+ const abs: ([x, y]: Vec2) => Vec2;
17
+ const ceil: ([x, y]: Vec2) => Vec2;
18
+ const floor: ([x, y]: Vec2) => Vec2;
19
+ const round: ([x, y]: Vec2) => Vec2;
20
+ const trunc: ([x, y]: Vec2) => Vec2;
21
+ const min: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
22
+ const max: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
23
+ const clamp: (v: Vec2, minVec: Vec2, maxVec: Vec2) => Vec2;
24
+ const mix: ([x1, y1]: Vec2, [x2, y2]: Vec2, t: number) => Vec2;
25
+ const step: ([edge1, edge2]: Vec2, [x, y]: Vec2) => Vec2;
26
+ const smoothstep: ([e0x, e0y]: Vec2, [e1x, e1y]: Vec2, [x, y]: Vec2) => Vec2;
27
+ const length: ([x, y]: Vec2) => number;
28
+ const distance: (a: Vec2, b: Vec2) => number;
29
+ const dot: ([x1, y1]: Vec2, [x2, y2]: Vec2) => number;
30
+ const normalize: (v: Vec2) => Vec2;
31
+ const faceforward: (n: Vec2, i: Vec2, nref: Vec2) => Vec2;
32
+ const reflect: (i: Vec2, n: Vec2) => Vec2;
33
+ const refract: (i: Vec2, n: Vec2, eta: number) => Vec2;
34
+ const sin: ([x, y]: Vec2) => Vec2;
35
+ const cos: ([x, y]: Vec2) => Vec2;
36
+ const tan: ([x, y]: Vec2) => Vec2;
37
+ const asin: ([x, y]: Vec2) => Vec2;
38
+ const acos: ([x, y]: Vec2) => Vec2;
39
+ const atan: ([x, y]: Vec2) => Vec2;
40
+ const sinh: ([x, y]: Vec2) => Vec2;
41
+ const cosh: ([x, y]: Vec2) => Vec2;
42
+ const tanh: ([x, y]: Vec2) => Vec2;
43
+ const asinh: ([x, y]: Vec2) => Vec2;
44
+ const acosh: ([x, y]: Vec2) => Vec2;
45
+ const atanh: ([x, y]: Vec2) => Vec2;
46
+ const sign: ([x, y]: Vec2) => Vec2;
47
+ const fract: ([x, y]: Vec2) => Vec2;
48
+ const mod: ([x, y]: Vec2, m: number) => Vec2;
49
+ const modf: ([x, y]: Vec2) => {
50
+ fract: Vec2;
51
+ whole: Vec2;
52
+ };
53
+ const pow: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
54
+ const exp: ([x, y]: Vec2) => Vec2;
55
+ const exp2: ([x, y]: Vec2) => Vec2;
56
+ const log: ([x, y]: Vec2) => Vec2;
57
+ const log2: ([x, y]: Vec2) => Vec2;
58
+ const sqrt: ([x, y]: Vec2) => Vec2;
59
+ const add: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
60
+ const subtract: ([x1, y1]: Vec2, [x2, y2]: Vec2) => Vec2;
61
+ const scale: ([x, y]: Vec2, s: number) => Vec2;
62
+ const negate: ([x, y]: Vec2) => Vec2;
63
+ }