@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,73 @@
|
|
|
1
|
+
import { getMatrix3Element } from '@flighthq/geometry';
|
|
2
|
+
import type { Matrix3 } from '@flighthq/types';
|
|
3
|
+
|
|
4
|
+
import { acquireIdentityMatrix3, acquireMatrix3, clearMatrix3Pool, releaseMatrix3 } from './matrix3Pool';
|
|
5
|
+
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
clearMatrix3Pool();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
describe('acquireIdentityMatrix3', () => {
|
|
11
|
+
it('returns a matrix set to identity', () => {
|
|
12
|
+
const m = acquireIdentityMatrix3();
|
|
13
|
+
expect(getMatrix3Element(m, 0, 0)).toBe(1);
|
|
14
|
+
expect(getMatrix3Element(m, 0, 1)).toBe(0);
|
|
15
|
+
expect(getMatrix3Element(m, 0, 2)).toBe(0);
|
|
16
|
+
expect(getMatrix3Element(m, 1, 0)).toBe(0);
|
|
17
|
+
expect(getMatrix3Element(m, 1, 1)).toBe(1);
|
|
18
|
+
expect(getMatrix3Element(m, 1, 2)).toBe(0);
|
|
19
|
+
expect(getMatrix3Element(m, 2, 0)).toBe(0);
|
|
20
|
+
expect(getMatrix3Element(m, 2, 1)).toBe(0);
|
|
21
|
+
expect(getMatrix3Element(m, 2, 2)).toBe(1);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('resets a released matrix to identity', () => {
|
|
25
|
+
const m1 = acquireMatrix3();
|
|
26
|
+
m1.m[0] = 5;
|
|
27
|
+
m1.m[2] = 10;
|
|
28
|
+
releaseMatrix3(m1);
|
|
29
|
+
const m2 = acquireIdentityMatrix3();
|
|
30
|
+
expect(m2).toBe(m1);
|
|
31
|
+
expect(getMatrix3Element(m2, 0, 0)).toBe(1);
|
|
32
|
+
expect(getMatrix3Element(m2, 0, 2)).toBe(0);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe('acquireMatrix3', () => {
|
|
37
|
+
it('returns a new Matrix3 when pool is empty', () => {
|
|
38
|
+
const m: Matrix3 = acquireMatrix3();
|
|
39
|
+
expect(m).not.toBeNull();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('reuses released matrices', () => {
|
|
43
|
+
const m1 = acquireMatrix3();
|
|
44
|
+
releaseMatrix3(m1);
|
|
45
|
+
const m2 = acquireMatrix3();
|
|
46
|
+
expect(m2).toBe(m1);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('reuses released matrices in last-in-first-out order', () => {
|
|
50
|
+
const m1 = acquireMatrix3();
|
|
51
|
+
const m2 = acquireMatrix3();
|
|
52
|
+
releaseMatrix3(m1);
|
|
53
|
+
releaseMatrix3(m2);
|
|
54
|
+
expect(acquireMatrix3()).toBe(m2);
|
|
55
|
+
expect(acquireMatrix3()).toBe(m1);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
describe('clearMatrix3Pool', () => {
|
|
60
|
+
it('empties the pool so the next get allocates fresh', () => {
|
|
61
|
+
const m = acquireMatrix3();
|
|
62
|
+
releaseMatrix3(m);
|
|
63
|
+
clearMatrix3Pool();
|
|
64
|
+
const m2 = acquireMatrix3();
|
|
65
|
+
expect(m2).not.toBe(m);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
describe('releaseMatrix3', () => {
|
|
70
|
+
it('handles null safely', () => {
|
|
71
|
+
expect(() => releaseMatrix3(null as unknown as Matrix3)).not.toThrow();
|
|
72
|
+
});
|
|
73
|
+
});
|