@flighthq/geometry 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aabb.d.ts +88 -0
- package/dist/aabb.d.ts.map +1 -0
- package/dist/aabb.js +230 -0
- package/dist/aabb.js.map +1 -0
- package/dist/boundingSphere.d.ts +62 -0
- package/dist/boundingSphere.d.ts.map +1 -0
- package/dist/boundingSphere.js +188 -0
- package/dist/boundingSphere.js.map +1 -0
- package/dist/capsule.d.ts +38 -0
- package/dist/capsule.d.ts.map +1 -0
- package/dist/capsule.js +215 -0
- package/dist/capsule.js.map +1 -0
- package/dist/frustum.d.ts +49 -0
- package/dist/frustum.d.ts.map +1 -0
- package/dist/frustum.js +149 -0
- package/dist/frustum.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/matrix.d.ts +152 -0
- package/dist/matrix.d.ts.map +1 -0
- package/dist/matrix.js +488 -0
- package/dist/matrix.js.map +1 -0
- package/dist/matrix3.d.ts +63 -0
- package/dist/matrix3.d.ts.map +1 -0
- package/dist/matrix3.js +408 -0
- package/dist/matrix3.js.map +1 -0
- package/dist/matrix3Pool.d.ts +6 -0
- package/dist/matrix3Pool.d.ts.map +1 -0
- package/dist/matrix3Pool.js +26 -0
- package/dist/matrix3Pool.js.map +1 -0
- package/dist/matrix4.d.ts +238 -0
- package/dist/matrix4.d.ts.map +1 -0
- package/dist/matrix4.js +931 -0
- package/dist/matrix4.js.map +1 -0
- package/dist/matrix4Pool.d.ts +6 -0
- package/dist/matrix4Pool.d.ts.map +1 -0
- package/dist/matrix4Pool.js +26 -0
- package/dist/matrix4Pool.js.map +1 -0
- package/dist/matrixPool.d.ts +6 -0
- package/dist/matrixPool.d.ts.map +1 -0
- package/dist/matrixPool.js +26 -0
- package/dist/matrixPool.js.map +1 -0
- package/dist/obb.d.ts +44 -0
- package/dist/obb.d.ts.map +1 -0
- package/dist/obb.js +248 -0
- package/dist/obb.js.map +1 -0
- package/dist/plane.d.ts +66 -0
- package/dist/plane.d.ts.map +1 -0
- package/dist/plane.js +140 -0
- package/dist/plane.js.map +1 -0
- package/dist/quaternion.d.ts +128 -0
- package/dist/quaternion.d.ts.map +1 -0
- package/dist/quaternion.js +508 -0
- package/dist/quaternion.js.map +1 -0
- package/dist/quaternionPool.d.ts +6 -0
- package/dist/quaternionPool.d.ts.map +1 -0
- package/dist/quaternionPool.js +29 -0
- package/dist/quaternionPool.js.map +1 -0
- package/dist/ray3d.d.ts +69 -0
- package/dist/ray3d.d.ts.map +1 -0
- package/dist/ray3d.js +264 -0
- package/dist/ray3d.js.map +1 -0
- package/dist/rectangle.d.ts +56 -0
- package/dist/rectangle.d.ts.map +1 -0
- package/dist/rectangle.js +235 -0
- package/dist/rectangle.js.map +1 -0
- package/dist/rectanglePool.d.ts +6 -0
- package/dist/rectanglePool.d.ts.map +1 -0
- package/dist/rectanglePool.js +29 -0
- package/dist/rectanglePool.js.map +1 -0
- package/dist/typedarray.d.ts +4 -0
- package/dist/typedarray.d.ts.map +1 -0
- package/dist/typedarray.js +25 -0
- package/dist/typedarray.js.map +1 -0
- package/dist/vector2.d.ts +130 -0
- package/dist/vector2.d.ts.map +1 -0
- package/dist/vector2.js +250 -0
- package/dist/vector2.js.map +1 -0
- package/dist/vector2Pool.d.ts +6 -0
- package/dist/vector2Pool.d.ts.map +1 -0
- package/dist/vector2Pool.js +20 -0
- package/dist/vector2Pool.js.map +1 -0
- package/dist/vector3.d.ts +220 -0
- package/dist/vector3.d.ts.map +1 -0
- package/dist/vector3.js +380 -0
- package/dist/vector3.js.map +1 -0
- package/dist/vector3Pool.d.ts +6 -0
- package/dist/vector3Pool.d.ts.map +1 -0
- package/dist/vector3Pool.js +28 -0
- package/dist/vector3Pool.js.map +1 -0
- package/dist/vector4.d.ts +180 -0
- package/dist/vector4.d.ts.map +1 -0
- package/dist/vector4.js +333 -0
- package/dist/vector4.js.map +1 -0
- package/dist/vector4Pool.d.ts +6 -0
- package/dist/vector4Pool.d.ts.map +1 -0
- package/dist/vector4Pool.js +29 -0
- package/dist/vector4Pool.js.map +1 -0
- package/package.json +38 -0
- package/src/aabb.test.ts +341 -0
- package/src/boundingSphere.test.ts +247 -0
- package/src/capsule.test.ts +157 -0
- package/src/frustum.test.ts +160 -0
- package/src/matrix.test.ts +1111 -0
- package/src/matrix3.test.ts +752 -0
- package/src/matrix3Pool.test.ts +73 -0
- package/src/matrix4.test.ts +1627 -0
- package/src/matrix4Pool.test.ts +71 -0
- package/src/matrixPool.test.ts +69 -0
- package/src/obb.test.ts +183 -0
- package/src/plane.test.ts +225 -0
- package/src/quaternion.test.ts +531 -0
- package/src/quaternionPool.test.ts +64 -0
- package/src/ray3d.test.ts +297 -0
- package/src/rectangle.test.ts +982 -0
- package/src/rectanglePool.test.ts +71 -0
- package/src/typedarray.test.ts +118 -0
- package/src/vector2.test.ts +958 -0
- package/src/vector2Pool.test.ts +65 -0
- package/src/vector3.test.ts +749 -0
- package/src/vector3Pool.test.ts +68 -0
- package/src/vector4.test.ts +660 -0
- package/src/vector4Pool.test.ts +71 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Vector3 } from '@flighthq/types';
|
|
2
|
+
|
|
3
|
+
import { acquireEmptyVector3, acquireVector3, clearVector3Pool, releaseVector3 } from './vector3Pool';
|
|
4
|
+
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
clearVector3Pool();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
describe('acquireEmptyVector3', () => {
|
|
10
|
+
it('returns a vector with all components set to 0', () => {
|
|
11
|
+
const v = acquireEmptyVector3();
|
|
12
|
+
expect(v.x).toBe(0);
|
|
13
|
+
expect(v.y).toBe(0);
|
|
14
|
+
expect(v.z).toBe(0);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('resets a released vector to zero', () => {
|
|
18
|
+
const v1 = acquireVector3();
|
|
19
|
+
v1.x = 5;
|
|
20
|
+
v1.y = 10;
|
|
21
|
+
v1.z = 15;
|
|
22
|
+
releaseVector3(v1);
|
|
23
|
+
const v2 = acquireEmptyVector3();
|
|
24
|
+
expect(v2).toBe(v1);
|
|
25
|
+
expect(v2.x).toBe(0);
|
|
26
|
+
expect(v2.y).toBe(0);
|
|
27
|
+
expect(v2.z).toBe(0);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('acquireVector3', () => {
|
|
32
|
+
it('returns a new Vector3 when pool is empty', () => {
|
|
33
|
+
const v: Vector3 = acquireVector3();
|
|
34
|
+
expect(v).not.toBeNull();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('reuses released vectors', () => {
|
|
38
|
+
const v1 = acquireVector3();
|
|
39
|
+
releaseVector3(v1);
|
|
40
|
+
const v2 = acquireVector3();
|
|
41
|
+
expect(v2).toBe(v1);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('reuses released vectors in last-in-first-out order', () => {
|
|
45
|
+
const v1 = acquireVector3();
|
|
46
|
+
const v2 = acquireVector3();
|
|
47
|
+
releaseVector3(v1);
|
|
48
|
+
releaseVector3(v2);
|
|
49
|
+
expect(acquireVector3()).toBe(v2);
|
|
50
|
+
expect(acquireVector3()).toBe(v1);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe('clearVector3Pool', () => {
|
|
55
|
+
it('empties the pool so the next get allocates fresh', () => {
|
|
56
|
+
const v = acquireVector3();
|
|
57
|
+
releaseVector3(v);
|
|
58
|
+
clearVector3Pool();
|
|
59
|
+
const v2 = acquireVector3();
|
|
60
|
+
expect(v2).not.toBe(v);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
describe('releaseVector3', () => {
|
|
65
|
+
it('handles null safely', () => {
|
|
66
|
+
expect(() => releaseVector3(null as unknown as Vector3)).not.toThrow();
|
|
67
|
+
});
|
|
68
|
+
});
|