@flighthq/geometry 0.3.0 → 0.3.1-next.1041.35b950c

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 (125) hide show
  1. package/dist/aabb.d.ts +1 -0
  2. package/dist/aabb.d.ts.map +1 -1
  3. package/dist/aabb.js +58 -38
  4. package/dist/aabb.js.map +1 -1
  5. package/dist/boundingSphere.d.ts.map +1 -1
  6. package/dist/boundingSphere.js +3 -2
  7. package/dist/boundingSphere.js.map +1 -1
  8. package/dist/capsule.d.ts +6 -5
  9. package/dist/capsule.d.ts.map +1 -1
  10. package/dist/capsule.js +38 -15
  11. package/dist/capsule.js.map +1 -1
  12. package/dist/contract.d.ts +1 -0
  13. package/dist/contract.d.ts.map +1 -1
  14. package/dist/contract.js +1 -0
  15. package/dist/contract.js.map +1 -1
  16. package/dist/enableGeometryPoolGuards.d.ts +4 -0
  17. package/dist/enableGeometryPoolGuards.d.ts.map +1 -0
  18. package/dist/enableGeometryPoolGuards.js +32 -0
  19. package/dist/enableGeometryPoolGuards.js.map +1 -0
  20. package/dist/frustum.d.ts +2 -1
  21. package/dist/frustum.d.ts.map +1 -1
  22. package/dist/frustum.js +4 -1
  23. package/dist/frustum.js.map +1 -1
  24. package/dist/geometryPoolGuards.d.ts +6 -0
  25. package/dist/geometryPoolGuards.d.ts.map +1 -0
  26. package/dist/geometryPoolGuards.js +7 -0
  27. package/dist/geometryPoolGuards.js.map +1 -0
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/matrix.d.ts +12 -9
  33. package/dist/matrix.d.ts.map +1 -1
  34. package/dist/matrix.js +103 -106
  35. package/dist/matrix.js.map +1 -1
  36. package/dist/matrix3.d.ts +17 -2
  37. package/dist/matrix3.d.ts.map +1 -1
  38. package/dist/matrix3.js +88 -44
  39. package/dist/matrix3.js.map +1 -1
  40. package/dist/matrix3Pool.d.ts.map +1 -1
  41. package/dist/matrix3Pool.js +6 -0
  42. package/dist/matrix3Pool.js.map +1 -1
  43. package/dist/matrix4.d.ts +23 -10
  44. package/dist/matrix4.d.ts.map +1 -1
  45. package/dist/matrix4.js +74 -53
  46. package/dist/matrix4.js.map +1 -1
  47. package/dist/matrix4Pool.d.ts.map +1 -1
  48. package/dist/matrix4Pool.js +6 -0
  49. package/dist/matrix4Pool.js.map +1 -1
  50. package/dist/matrixPool.d.ts.map +1 -1
  51. package/dist/matrixPool.js +6 -0
  52. package/dist/matrixPool.js.map +1 -1
  53. package/dist/obb.d.ts +4 -2
  54. package/dist/obb.d.ts.map +1 -1
  55. package/dist/obb.js +164 -88
  56. package/dist/obb.js.map +1 -1
  57. package/dist/quaternion.d.ts +7 -4
  58. package/dist/quaternion.d.ts.map +1 -1
  59. package/dist/quaternion.js +40 -25
  60. package/dist/quaternion.js.map +1 -1
  61. package/dist/quaternionPool.d.ts.map +1 -1
  62. package/dist/quaternionPool.js +6 -0
  63. package/dist/quaternionPool.js.map +1 -1
  64. package/dist/ray3d.d.ts +5 -4
  65. package/dist/ray3d.d.ts.map +1 -1
  66. package/dist/ray3d.js +23 -8
  67. package/dist/ray3d.js.map +1 -1
  68. package/dist/rectangle.d.ts.map +1 -1
  69. package/dist/rectangle.js +66 -43
  70. package/dist/rectangle.js.map +1 -1
  71. package/dist/rectanglePool.d.ts.map +1 -1
  72. package/dist/rectanglePool.js +6 -0
  73. package/dist/rectanglePool.js.map +1 -1
  74. package/dist/transform2d.d.ts.map +1 -1
  75. package/dist/transform2d.js +5 -2
  76. package/dist/transform2d.js.map +1 -1
  77. package/dist/typedarray.js +3 -6
  78. package/dist/typedarray.js.map +1 -1
  79. package/dist/vector2.d.ts.map +1 -1
  80. package/dist/vector2.js +44 -26
  81. package/dist/vector2.js.map +1 -1
  82. package/dist/vector2Pool.d.ts.map +1 -1
  83. package/dist/vector2Pool.js +6 -0
  84. package/dist/vector2Pool.js.map +1 -1
  85. package/dist/vector3.d.ts +2 -2
  86. package/dist/vector3.d.ts.map +1 -1
  87. package/dist/vector3.js +55 -37
  88. package/dist/vector3.js.map +1 -1
  89. package/dist/vector3Pool.d.ts.map +1 -1
  90. package/dist/vector3Pool.js +6 -0
  91. package/dist/vector3Pool.js.map +1 -1
  92. package/dist/vector4.d.ts +2 -2
  93. package/dist/vector4.d.ts.map +1 -1
  94. package/dist/vector4.js +66 -48
  95. package/dist/vector4.js.map +1 -1
  96. package/dist/vector4Pool.d.ts.map +1 -1
  97. package/dist/vector4Pool.js +6 -0
  98. package/dist/vector4Pool.js.map +1 -1
  99. package/package.json +4 -3
  100. package/src/aabb.test.ts +18 -0
  101. package/src/boundingSphere.test.ts +39 -0
  102. package/src/capsule.test.ts +158 -0
  103. package/src/enableGeometryPoolGuards.test.ts +121 -0
  104. package/src/frustum.test.ts +38 -0
  105. package/src/geometryPoolGuards.test.ts +16 -0
  106. package/src/matrix.test.ts +52 -6
  107. package/src/matrix3.test.ts +46 -6
  108. package/src/matrix3Pool.test.ts +11 -0
  109. package/src/matrix4.test.ts +553 -135
  110. package/src/matrix4Pool.test.ts +11 -0
  111. package/src/matrixPool.test.ts +11 -0
  112. package/src/obb.test.ts +277 -0
  113. package/src/plane.test.ts +20 -0
  114. package/src/quaternion.test.ts +222 -4
  115. package/src/quaternionPool.test.ts +12 -0
  116. package/src/ray3d.test.ts +204 -0
  117. package/src/rectangle.test.ts +58 -14
  118. package/src/rectanglePool.test.ts +11 -0
  119. package/src/transform2d.test.ts +38 -0
  120. package/src/vector2.test.ts +170 -0
  121. package/src/vector2Pool.test.ts +11 -0
  122. package/src/vector3.test.ts +210 -0
  123. package/src/vector3Pool.test.ts +11 -0
  124. package/src/vector4.test.ts +231 -0
  125. package/src/vector4Pool.test.ts +11 -0
@@ -1,3 +1,5 @@
1
+ import { EntityRuntimeKey } from '@flighthq/types/contract';
2
+ import { geometryPoolReleaseGuard } from './geometryPoolGuards';
1
3
  import { createVector3 } from './vector3';
2
4
  export function acquireEmptyVector3() {
3
5
  const v = acquireVector3();
@@ -6,6 +8,7 @@ export function acquireEmptyVector3() {
6
8
  v.z = 0;
7
9
  return v;
8
10
  }
11
+ // Acquires without initializing the components. Use acquireEmptyVector3 when a zero value is required.
9
12
  export function acquireVector3() {
10
13
  let v;
11
14
  if (pool.length > 0) {
@@ -22,6 +25,9 @@ export function clearVector3Pool() {
22
25
  export function releaseVector3(v) {
23
26
  if (!v)
24
27
  return;
28
+ if (geometryPoolReleaseGuard !== null && pool.includes(v))
29
+ geometryPoolReleaseGuard('releaseVector3');
30
+ v[EntityRuntimeKey] = undefined;
25
31
  pool.push(v);
26
32
  }
27
33
  const pool = [];
@@ -1 +1 @@
1
- {"version":3,"file":"vector3Pool.js","sourceRoot":"","sources":["../src/vector3Pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAU,CAAC;IAEf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAa,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"vector3Pool.js","sourceRoot":"","sources":["../src/vector3Pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAU,CAAC;IAEf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAa,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IACtG,CAAC,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAc,EAAE,CAAC"}
package/dist/vector4.d.ts CHANGED
@@ -154,7 +154,7 @@ export declare function scaleVector4(out: Vector4Like, source: Readonly<Vector4L
154
154
  **/
155
155
  export declare function setVector4(out: Vector4Like, x: number, y: number, z: number, w: number): void;
156
156
  /**
157
- * Reads a Vector4Like from a Float32Array at a byte offset.
157
+ * Reads a Vector4Like from a Float32Array at an element offset.
158
158
  */
159
159
  export declare function setVector4FromFloat32Array(out: Vector4Like, offset: number, source: Readonly<Float32Array>): void;
160
160
  /**
@@ -170,7 +170,7 @@ export declare function setVector4FromVector3(out: Vector4Like, source: Readonly
170
170
  **/
171
171
  export declare function subtractVector4(out: Vector4Like, source: Readonly<Vector4Like>, other: Readonly<Vector4Like>): void;
172
172
  /**
173
- * Writes a Vector4Like into a Float32Array at a byte offset.
173
+ * Writes a Vector4Like into a Float32Array at an element offset.
174
174
  */
175
175
  export declare function writeVector4ToFloat32Array(out: Float32Array, offset: number, source: Readonly<Vector4Like>): void;
176
176
  export declare const VECTOR4_W_UNIT: Readonly<Vector4>;
@@ -1 +1 @@
1
- {"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../src/vector4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector4.d.ts","sourceRoot":"","sources":["../src/vector4.ts"],"names":[],"mappings":"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"}
package/dist/vector4.js CHANGED
@@ -4,10 +4,12 @@ import { createEntity } from '@flighthq/entity/contract';
4
4
  * and writes to out.
5
5
  */
6
6
  export function addVector4(out, a, b) {
7
- out.x = a.x + b.x;
8
- out.y = a.y + b.y;
9
- out.z = a.z + b.z;
10
- out.w = a.w + b.w;
7
+ const ax = a.x, ay = a.y, az = a.z, aw = a.w;
8
+ const bx = b.x, by = b.y, bz = b.z, bw = b.w;
9
+ out.x = ax + bx;
10
+ out.y = ay + by;
11
+ out.z = az + bz;
12
+ out.w = aw + bw;
11
13
  }
12
14
  /**
13
15
  * Clamps each component of a Vector4Like independently to [min, max].
@@ -30,10 +32,11 @@ export function cloneVector4(source) {
30
32
  * Copies the x, y, z and w components of another vector.
31
33
  */
32
34
  export function copyVector4(out, source) {
33
- out.x = source.x;
34
- out.y = source.y;
35
- out.z = source.z;
36
- out.w = source.w;
35
+ const x = source.x, y = source.y, z = source.z, w = source.w;
36
+ out.x = x;
37
+ out.y = y;
38
+ out.z = z;
39
+ out.w = w;
37
40
  }
38
41
  /**
39
42
  * The Vector4Like class represents a vector or point in four-dimensional space using the
@@ -74,7 +77,9 @@ export function divideVector4(out, source, divisor) {
74
77
  export function equalsVector4(a, b) {
75
78
  if (!a || !b)
76
79
  return false;
77
- return a.x === b.x && a.y === b.y && a.z === b.z && a.w === b.w;
80
+ // Identity first, as in `equalsVector2`: a vector is equal to itself even when a component is NaN,
81
+ // which a field-by-field comparison would deny.
82
+ return a === b || (a.x === b.x && a.y === b.y && a.z === b.z && a.w === b.w);
78
83
  }
79
84
  /**
80
85
  * Returns the angle in radians between two vectors. The returned angle is the
@@ -147,10 +152,11 @@ export function getVector4LengthSquared(source) {
147
152
  */
148
153
  export function interpolateVector4(out, a, b, t) {
149
154
  const ax = a.x, ay = a.y, az = a.z, aw = a.w;
150
- out.x = ax + t * (b.x - ax);
151
- out.y = ay + t * (b.y - ay);
152
- out.z = az + t * (b.z - az);
153
- out.w = aw + t * (b.w - aw);
155
+ const bx = b.x, by = b.y, bz = b.z, bw = b.w;
156
+ out.x = ax + t * (bx - ax);
157
+ out.y = ay + t * (by - ay);
158
+ out.z = az + t * (bz - az);
159
+ out.w = aw + t * (bw - aw);
154
160
  }
155
161
  /**
156
162
  * Writes the per-component maximum of two vectors.
@@ -158,10 +164,12 @@ export function interpolateVector4(out, a, b, t) {
158
164
  * Safe when `out` aliases `a` or `b`.
159
165
  */
160
166
  export function maxVector4(out, a, b) {
161
- out.x = a.x > b.x ? a.x : b.x;
162
- out.y = a.y > b.y ? a.y : b.y;
163
- out.z = a.z > b.z ? a.z : b.z;
164
- out.w = a.w > b.w ? a.w : b.w;
167
+ const ax = a.x, ay = a.y, az = a.z, aw = a.w;
168
+ const bx = b.x, by = b.y, bz = b.z, bw = b.w;
169
+ out.x = ax > bx ? ax : bx;
170
+ out.y = ay > by ? ay : by;
171
+ out.z = az > bz ? az : bz;
172
+ out.w = aw > bw ? aw : bw;
165
173
  }
166
174
  /**
167
175
  * Writes the per-component minimum of two vectors.
@@ -169,10 +177,12 @@ export function maxVector4(out, a, b) {
169
177
  * Safe when `out` aliases `a` or `b`.
170
178
  */
171
179
  export function minVector4(out, a, b) {
172
- out.x = a.x < b.x ? a.x : b.x;
173
- out.y = a.y < b.y ? a.y : b.y;
174
- out.z = a.z < b.z ? a.z : b.z;
175
- out.w = a.w < b.w ? a.w : b.w;
180
+ const ax = a.x, ay = a.y, az = a.z, aw = a.w;
181
+ const bx = b.x, by = b.y, bz = b.z, bw = b.w;
182
+ out.x = ax < bx ? ax : bx;
183
+ out.y = ay < by ? ay : by;
184
+ out.z = az < bz ? az : bz;
185
+ out.w = aw < bw ? aw : bw;
176
186
  }
177
187
  /**
178
188
  * Component-wise product of two vectors (Hadamard product).
@@ -180,10 +190,12 @@ export function minVector4(out, a, b) {
180
190
  * Safe when `out` aliases `a` or `b`.
181
191
  */
182
192
  export function multiplyVector4(out, a, b) {
183
- out.x = a.x * b.x;
184
- out.y = a.y * b.y;
185
- out.z = a.z * b.z;
186
- out.w = a.w * b.w;
193
+ const ax = a.x, ay = a.y, az = a.z, aw = a.w;
194
+ const bx = b.x, by = b.y, bz = b.z, bw = b.w;
195
+ out.x = ax * bx;
196
+ out.y = ay * by;
197
+ out.z = az * bz;
198
+ out.w = aw * bw;
187
199
  }
188
200
  /**
189
201
  * Compares the elements of the current Vector4Like object with the elements of a
@@ -204,10 +216,11 @@ export function nearEqualsVector4(a, b, tolerance = 1e-6) {
204
216
  * properties of the current Vector4Like object is changed to -x, -y, and -z.
205
217
  **/
206
218
  export function negateVector4(out, source) {
207
- out.x = source.x * -1;
208
- out.y = source.y * -1;
209
- out.z = source.z * -1;
210
- out.w = source.w * -1;
219
+ const x = source.x, y = source.y, z = source.z, w = source.w;
220
+ out.x = x * -1;
221
+ out.y = y * -1;
222
+ out.z = z * -1;
223
+ out.w = w * -1;
211
224
  }
212
225
  /**
213
226
  * Converts a Vector4Like object to a unit vector by dividing all elements
@@ -216,12 +229,13 @@ export function negateVector4(out, source) {
216
229
  * Returns the original length.
217
230
  **/
218
231
  export function normalizeVector4(out, source) {
219
- const l = getVector4Length(source);
232
+ const x = source.x, y = source.y, z = source.z, w = source.w;
233
+ const l = Math.sqrt(x ** 2 + y ** 2 + z ** 2 + w ** 2);
220
234
  if (l !== 0) {
221
- out.x = source.x / l;
222
- out.y = source.y / l;
223
- out.z = source.z / l;
224
- out.w = source.w / l;
235
+ out.x = x / l;
236
+ out.y = y / l;
237
+ out.z = z / l;
238
+ out.w = w / l;
225
239
  }
226
240
  else {
227
241
  out.x = 0;
@@ -235,10 +249,11 @@ export function normalizeVector4(out, source) {
235
249
  * Offsets each component of the current Vector4Like object by a scalar per axis.
236
250
  **/
237
251
  export function offsetVector4(out, source, dx, dy, dz, dw) {
238
- out.x = source.x + dx;
239
- out.y = source.y + dy;
240
- out.z = source.z + dz;
241
- out.w = source.w + dw;
252
+ const x = source.x, y = source.y, z = source.z, w = source.w;
253
+ out.x = x + dx;
254
+ out.y = y + dy;
255
+ out.z = z + dz;
256
+ out.w = w + dw;
242
257
  }
243
258
  /**
244
259
  * Divides the value of the `x`, `y`, and `z` properties of the current Vector4Like
@@ -271,10 +286,11 @@ export function reflectVector4(out, incident, normal) {
271
286
  * x, y, z and w elements are multiplied by the provided scalar number.
272
287
  **/
273
288
  export function scaleVector4(out, source, scalar) {
274
- out.x = source.x * scalar;
275
- out.y = source.y * scalar;
276
- out.z = source.z * scalar;
277
- out.w = source.w * scalar;
289
+ const x = source.x, y = source.y, z = source.z, w = source.w;
290
+ out.x = x * scalar;
291
+ out.y = y * scalar;
292
+ out.z = z * scalar;
293
+ out.w = w * scalar;
278
294
  }
279
295
  /**
280
296
  * Sets the members of Vector4Like to the specified values
@@ -286,7 +302,7 @@ export function setVector4(out, x, y, z, w) {
286
302
  out.w = w;
287
303
  }
288
304
  /**
289
- * Reads a Vector4Like from a Float32Array at a byte offset.
305
+ * Reads a Vector4Like from a Float32Array at an element offset.
290
306
  */
291
307
  export function setVector4FromFloat32Array(out, offset, source) {
292
308
  out.x = source[offset];
@@ -312,13 +328,15 @@ export function setVector4FromVector3(out, source, w = 0) {
312
328
  * from the values of the x, y, z and w elements of another Vector4Like object.
313
329
  **/
314
330
  export function subtractVector4(out, source, other) {
315
- out.x = source.x - other.x;
316
- out.y = source.y - other.y;
317
- out.z = source.z - other.z;
318
- out.w = source.w - other.w;
331
+ const sx = source.x, sy = source.y, sz = source.z, sw = source.w;
332
+ const ox = other.x, oy = other.y, oz = other.z, ow = other.w;
333
+ out.x = sx - ox;
334
+ out.y = sy - oy;
335
+ out.z = sz - oz;
336
+ out.w = sw - ow;
319
337
  }
320
338
  /**
321
- * Writes a Vector4Like into a Float32Array at a byte offset.
339
+ * Writes a Vector4Like into a Float32Array at an element offset.
322
340
  */
323
341
  export function writeVector4ToFloat32Array(out, offset, source) {
324
342
  out[offset] = source.x;
@@ -1 +1 @@
1
- {"version":3,"file":"vector4.js","sourceRoot":"","sources":["../src/vector4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector4.js","sourceRoot":"","sources":["../src/vector4.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vector4Pool.d.ts","sourceRoot":"","sources":["../src/vector4Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAIxD,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAG/C"}
1
+ {"version":3,"file":"vector4Pool.d.ts","sourceRoot":"","sources":["../src/vector4Pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMxD,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAGD,wBAAgB,cAAc,IAAI,OAAO,CAUxC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAK/C"}
@@ -1,3 +1,5 @@
1
+ import { EntityRuntimeKey } from '@flighthq/types/contract';
2
+ import { geometryPoolReleaseGuard } from './geometryPoolGuards';
1
3
  import { createVector4 } from './vector4';
2
4
  export function acquireEmptyVector4() {
3
5
  const v = acquireVector4();
@@ -7,6 +9,7 @@ export function acquireEmptyVector4() {
7
9
  v.w = 0;
8
10
  return v;
9
11
  }
12
+ // Acquires without initializing the components. Use acquireEmptyVector4 when a zero value is required.
10
13
  export function acquireVector4() {
11
14
  let v;
12
15
  if (pool.length > 0) {
@@ -23,6 +26,9 @@ export function clearVector4Pool() {
23
26
  export function releaseVector4(v) {
24
27
  if (!v)
25
28
  return;
29
+ if (geometryPoolReleaseGuard !== null && pool.includes(v))
30
+ geometryPoolReleaseGuard('releaseVector4');
31
+ v[EntityRuntimeKey] = undefined;
26
32
  pool.push(v);
27
33
  }
28
34
  const pool = [];
@@ -1 +1 @@
1
- {"version":3,"file":"vector4Pool.js","sourceRoot":"","sources":["../src/vector4Pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAU,CAAC;IAEf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAa,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"vector4Pool.js","sourceRoot":"","sources":["../src/vector4Pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,UAAU,mBAAmB;IACjC,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACR,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAU,CAAC;IAEf,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAa,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,CAAC,GAAG,aAAa,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO;IACf,IAAI,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IACtG,CAAC,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACf,CAAC;AAED,MAAM,IAAI,GAAc,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/geometry",
3
- "version": "0.3.0",
3
+ "version": "0.3.1-next.1041.35b950c",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,8 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.3.0",
42
- "@flighthq/types": "0.3.0"
41
+ "@flighthq/entity": "0.3.1-next.1041.35b950c",
42
+ "@flighthq/log": "0.3.1-next.1041.35b950c",
43
+ "@flighthq/types": "0.3.1-next.1041.35b950c"
43
44
  },
44
45
  "devDependencies": {
45
46
  "typescript": "^5.3.0"
package/src/aabb.test.ts CHANGED
@@ -225,6 +225,14 @@ describe('intersectAabb', () => {
225
225
  expect(a.min.x).toBe(2);
226
226
  expect(a.max.x).toBe(4);
227
227
  });
228
+
229
+ it('supports out === b', () => {
230
+ const a = createAabb(0, 0, 0, 4, 4, 4);
231
+ const b = createAabb(2, 2, 2, 6, 6, 6);
232
+ intersectAabb(b, a, b);
233
+ expect(b.min).toMatchObject({ x: 2, y: 2, z: 2 });
234
+ expect(b.max).toMatchObject({ x: 4, y: 4, z: 4 });
235
+ });
228
236
  });
229
237
 
230
238
  describe('isAabbIntersectingAabb', () => {
@@ -245,6 +253,16 @@ describe('isAabbIntersectingAabb', () => {
245
253
  const b = createAabb(5, 5, 5, 6, 6, 6);
246
254
  expect(isAabbIntersectingAabb(a, b)).toBe(false);
247
255
  });
256
+
257
+ it.each([
258
+ ['x', createAabb(1, 0, 0, 0, 1, 1)],
259
+ ['y', createAabb(0, 1, 0, 1, 0, 1)],
260
+ ['z', createAabb(0, 0, 1, 1, 1, 0)],
261
+ ])('returns false when either box is empty on %s', (_axis, empty) => {
262
+ const full = createAabb(-10, -10, -10, 10, 10, 10);
263
+ expect(isAabbIntersectingAabb(empty, full)).toBe(false);
264
+ expect(isAabbIntersectingAabb(full, empty)).toBe(false);
265
+ });
248
266
  });
249
267
 
250
268
  describe('setAabb', () => {
@@ -178,6 +178,34 @@ describe('mergeBoundingSphere', () => {
178
178
  expect(out.radius).toBeCloseTo(2, 5);
179
179
  });
180
180
 
181
+ it('if b contains a, result equals b', () => {
182
+ // The mirror of the case above. Each containment direction is written out separately in the
183
+ // source, so getting one right says nothing about the other.
184
+ const a = createBoundingSphere(1, 0, 0, 1);
185
+ const b = createBoundingSphere(0, 0, 0, 10);
186
+ const out = createBoundingSphere();
187
+ mergeBoundingSphere(out, a, b);
188
+ expect(out.center.x).toBeCloseTo(0, 5);
189
+ expect(out.radius).toBeCloseTo(10, 5);
190
+ });
191
+
192
+ it('an empty second sphere returns the first', () => {
193
+ const a = createBoundingSphere(3, 0, 0, 2);
194
+ const b = createBoundingSphere();
195
+ const out = createBoundingSphere();
196
+ mergeBoundingSphere(out, a, b);
197
+ expect(out.center.x).toBeCloseTo(3, 5);
198
+ expect(out.radius).toBeCloseTo(2, 5);
199
+ });
200
+
201
+ it('supports out === b', () => {
202
+ const a = createBoundingSphere(-1, 0, 0, 1);
203
+ const b = createBoundingSphere(1, 0, 0, 1);
204
+ mergeBoundingSphere(b, a, b);
205
+ expect(containsBoundingSpherePoint(b, createVector3(-2, 0, 0))).toBe(true);
206
+ expect(containsBoundingSpherePoint(b, createVector3(2, 0, 0))).toBe(true);
207
+ });
208
+
181
209
  it('supports out === a', () => {
182
210
  const a = createBoundingSphere(-1, 0, 0, 1);
183
211
  const b = createBoundingSphere(1, 0, 0, 1);
@@ -244,4 +272,15 @@ describe('transformBoundingSphereByMatrix4', () => {
244
272
  expect(s.center.y).toBeCloseTo(5, 6);
245
273
  expect(s.radius).toBeCloseTo(2, 6);
246
274
  });
275
+
276
+ it('leaves an empty sphere empty instead of scaling its negative radius', () => {
277
+ // The negative radius is a marker, not a length: multiplying it by the matrix scale would
278
+ // move it further from zero and, under a scale below 1, could carry it up past zero into a
279
+ // real sphere that was never there.
280
+ const empty = createBoundingSphere(0, 0, 0, -1);
281
+ const m = createMatrix4(3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1);
282
+ const out = createBoundingSphere();
283
+ transformBoundingSphereByMatrix4(out, empty, m);
284
+ expect(out.radius).toBe(-1);
285
+ });
247
286
  });