@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,50 @@
1
+ import { FromSchema } from "../../schema/schema.js";
2
+ export type Box = FromSchema<typeof Box.schema>;
3
+ export declare namespace Box {
4
+ const schema: {
5
+ readonly type: "object";
6
+ readonly properties: {
7
+ readonly position: {
8
+ readonly type: "array";
9
+ readonly items: {
10
+ readonly type: "number";
11
+ readonly precision: 1;
12
+ readonly default: number;
13
+ };
14
+ readonly minItems: 3;
15
+ readonly maxItems: 3;
16
+ readonly default: readonly [0, 0, 0];
17
+ };
18
+ readonly rotation: {
19
+ readonly type: "array";
20
+ readonly items: {
21
+ readonly type: "number";
22
+ readonly precision: 1;
23
+ readonly default: number;
24
+ };
25
+ readonly minItems: 4;
26
+ readonly maxItems: 4;
27
+ readonly default: readonly [0, 0, 0, 1];
28
+ };
29
+ readonly scale: {
30
+ readonly type: "array";
31
+ readonly items: {
32
+ readonly type: "number";
33
+ readonly precision: 1;
34
+ readonly default: number;
35
+ };
36
+ readonly minItems: 3;
37
+ readonly maxItems: 3;
38
+ readonly default: readonly [0, 0, 0];
39
+ };
40
+ };
41
+ readonly required: readonly ["position", "rotation", "scale"];
42
+ readonly additionalProperties: false;
43
+ readonly default: {
44
+ readonly position: readonly [number, number, number];
45
+ readonly rotation: readonly [number, number, number, number];
46
+ readonly scale: readonly [number, number, number];
47
+ };
48
+ };
49
+ const layout: import("../../typed-buffer/index.js").StructLayout;
50
+ }
@@ -0,0 +1,23 @@
1
+ import { getStructLayout } from "../../typed-buffer/index.js";
2
+ import { Quat } from "../quat/quat.js";
3
+ import { Vec3 } from "../vec3/vec3.js";
4
+ export var Box;
5
+ (function (Box) {
6
+ Box.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
+ default: {
16
+ position: Vec3.zero,
17
+ rotation: Quat.identity,
18
+ scale: Vec3.one,
19
+ },
20
+ };
21
+ Box.layout = getStructLayout(Box.schema);
22
+ })(Box || (Box = {}));
23
+ //# sourceMappingURL=box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../../../src/math/box/box.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC,MAAM,KAAW,GAAG,CAkBnB;AAlBD,WAAiB,GAAG;IACH,UAAM,GAAG;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,MAAM;SACrB;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;QAC3C,oBAAoB,EAAE,KAAK;QAC3B,OAAO,EAAE;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,GAAG;SAClB;KACsB,CAAC;IAEf,UAAM,GAAG,eAAe,CAAC,IAAA,MAAM,CAAC,CAAC;AAClD,CAAC,EAlBgB,GAAG,KAAH,GAAG,QAkBnB"}
@@ -0,0 +1,51 @@
1
+ import { FromSchema } from "../../schema/index.js";
2
+ import { Vec3 } from "../index.js";
3
+ export declare const schema: {
4
+ readonly type: "number";
5
+ readonly minimum: 0;
6
+ readonly maximum: 5;
7
+ };
8
+ export type Type = FromSchema<typeof schema>;
9
+ type Face = Type;
10
+ /**
11
+ * Face direction constants for cube faces
12
+ */
13
+ export declare const POS_Z: 0;
14
+ export declare const POS_X: 1;
15
+ export declare const NEG_Z: 2;
16
+ export declare const NEG_X: 3;
17
+ export declare const POS_Y: 4;
18
+ export declare const NEG_Y: 5;
19
+ /**
20
+ * Array of all face directions
21
+ */
22
+ export declare const ALL_FACES: readonly [0, 1, 2, 3, 4, 5];
23
+ /**
24
+ * Face direction names for debugging/logging
25
+ */
26
+ export declare const FACE_NAMES: readonly ["POS_Z", "POS_X", "NEG_Z", "NEG_X", "POS_Y", "NEG_Y"];
27
+ /**
28
+ * Get the face name for debugging/logging
29
+ */
30
+ export declare const getName: (face: Face) => string;
31
+ /**
32
+ * Get the normal vector for a given face
33
+ */
34
+ export declare const getNormal: (face: Face) => Vec3;
35
+ /**
36
+ * Get the opposite face
37
+ */
38
+ export declare const getOpposite: (face: Face) => Face;
39
+ /**
40
+ * Check if two faces are opposite
41
+ */
42
+ export declare const isOpposite: (face1: Face, face2: Face) => boolean;
43
+ /**
44
+ * Get all faces adjacent to the given face (faces that share an edge)
45
+ */
46
+ export declare const getAdjacent: (face: Face) => readonly Face[];
47
+ /**
48
+ * Check if two faces are adjacent (share an edge)
49
+ */
50
+ export declare const isAdjacent: (face1: Face, face2: Face) => boolean;
51
+ export {};
@@ -0,0 +1,110 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ export const schema = {
23
+ type: 'number',
24
+ minimum: 0,
25
+ maximum: 5,
26
+ };
27
+ /**
28
+ * Face direction constants for cube faces
29
+ */
30
+ export const POS_Z = 0;
31
+ export const POS_X = 1;
32
+ export const NEG_Z = 2;
33
+ export const NEG_X = 3;
34
+ export const POS_Y = 4;
35
+ export const NEG_Y = 5;
36
+ /**
37
+ * Array of all face directions
38
+ */
39
+ export const ALL_FACES = [POS_Z, POS_X, NEG_Z, NEG_X, POS_Y, NEG_Y];
40
+ /**
41
+ * Face direction names for debugging/logging
42
+ */
43
+ export const FACE_NAMES = [
44
+ 'POS_Z', 'POS_X', 'NEG_Z', 'NEG_X', 'POS_Y', 'NEG_Y'
45
+ ];
46
+ /**
47
+ * Get the face name for debugging/logging
48
+ */
49
+ export const getName = (face) => {
50
+ return FACE_NAMES[face];
51
+ };
52
+ /**
53
+ * Get the normal vector for a given face
54
+ */
55
+ export const getNormal = (face) => {
56
+ switch (face) {
57
+ case POS_Z: return [0, 0, 1];
58
+ case NEG_Z: return [0, 0, -1];
59
+ case POS_X: return [1, 0, 0];
60
+ case NEG_X: return [-1, 0, 0];
61
+ case POS_Y: return [0, 1, 0];
62
+ case NEG_Y: return [0, -1, 0];
63
+ default: throw new Error(`Invalid face index: ${face}`);
64
+ }
65
+ };
66
+ /**
67
+ * Get the opposite face
68
+ */
69
+ export const getOpposite = (face) => {
70
+ switch (face) {
71
+ case POS_Z: return NEG_Z;
72
+ case NEG_Z: return POS_Z;
73
+ case POS_X: return NEG_X;
74
+ case NEG_X: return POS_X;
75
+ case POS_Y: return NEG_Y;
76
+ case NEG_Y: return POS_Y;
77
+ default: throw new Error(`Invalid face index: ${face}`);
78
+ }
79
+ };
80
+ /**
81
+ * Check if two faces are opposite
82
+ */
83
+ export const isOpposite = (face1, face2) => {
84
+ return getOpposite(face1) === face2;
85
+ };
86
+ /**
87
+ * Get all faces adjacent to the given face (faces that share an edge)
88
+ */
89
+ export const getAdjacent = (face) => {
90
+ switch (face) {
91
+ case POS_Z:
92
+ case NEG_Z:
93
+ return [POS_X, NEG_X, POS_Y, NEG_Y];
94
+ case POS_X:
95
+ case NEG_X:
96
+ return [POS_Z, NEG_Z, POS_Y, NEG_Y];
97
+ case POS_Y:
98
+ case NEG_Y:
99
+ return [POS_Z, NEG_Z, POS_X, NEG_X];
100
+ default:
101
+ throw new Error(`Invalid face index: ${face}`);
102
+ }
103
+ };
104
+ /**
105
+ * Check if two faces are adjacent (share an edge)
106
+ */
107
+ export const isAdjacent = (face1, face2) => {
108
+ return getAdjacent(face1).includes(face2);
109
+ };
110
+ //# sourceMappingURL=face.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face.js","sourceRoot":"","sources":["../../../src/math/face/face.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,94 @@
1
+ /*MIT License
2
+
3
+ © Copyright 2025 Adobe. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.*/
22
+ import { describe, it, expect } from 'vitest';
23
+ import * as Face from './face.js';
24
+ describe('Face', () => {
25
+ it('should have correct constants', () => {
26
+ expect(Face.POS_Z).toBe(0);
27
+ expect(Face.POS_X).toBe(1);
28
+ expect(Face.NEG_Z).toBe(2);
29
+ expect(Face.NEG_X).toBe(3);
30
+ expect(Face.POS_Y).toBe(4);
31
+ expect(Face.NEG_Y).toBe(5);
32
+ });
33
+ it('should get correct face names', () => {
34
+ expect(Face.getName(Face.POS_Z)).toBe('POS_Z');
35
+ expect(Face.getName(Face.POS_X)).toBe('POS_X');
36
+ expect(Face.getName(Face.NEG_Z)).toBe('NEG_Z');
37
+ expect(Face.getName(Face.NEG_X)).toBe('NEG_X');
38
+ expect(Face.getName(Face.POS_Y)).toBe('POS_Y');
39
+ expect(Face.getName(Face.NEG_Y)).toBe('NEG_Y');
40
+ });
41
+ it('should get correct normal vectors', () => {
42
+ expect(Face.getNormal(Face.POS_Z)).toEqual([0, 0, 1]);
43
+ expect(Face.getNormal(Face.NEG_Z)).toEqual([0, 0, -1]);
44
+ expect(Face.getNormal(Face.POS_X)).toEqual([1, 0, 0]);
45
+ expect(Face.getNormal(Face.NEG_X)).toEqual([-1, 0, 0]);
46
+ expect(Face.getNormal(Face.POS_Y)).toEqual([0, 1, 0]);
47
+ expect(Face.getNormal(Face.NEG_Y)).toEqual([0, -1, 0]);
48
+ });
49
+ it('should get correct opposite faces', () => {
50
+ expect(Face.getOpposite(Face.POS_Z)).toBe(Face.NEG_Z);
51
+ expect(Face.getOpposite(Face.NEG_Z)).toBe(Face.POS_Z);
52
+ expect(Face.getOpposite(Face.POS_X)).toBe(Face.NEG_X);
53
+ expect(Face.getOpposite(Face.NEG_X)).toBe(Face.POS_X);
54
+ expect(Face.getOpposite(Face.POS_Y)).toBe(Face.NEG_Y);
55
+ expect(Face.getOpposite(Face.NEG_Y)).toBe(Face.POS_Y);
56
+ });
57
+ it('should correctly identify opposite faces', () => {
58
+ expect(Face.isOpposite(Face.POS_Z, Face.NEG_Z)).toBe(true);
59
+ expect(Face.isOpposite(Face.POS_X, Face.NEG_X)).toBe(true);
60
+ expect(Face.isOpposite(Face.POS_Y, Face.NEG_Y)).toBe(true);
61
+ expect(Face.isOpposite(Face.POS_Z, Face.POS_X)).toBe(false);
62
+ expect(Face.isOpposite(Face.POS_Z, Face.POS_Z)).toBe(false);
63
+ });
64
+ it('should get correct adjacent faces', () => {
65
+ const posZAdjacent = Face.getAdjacent(Face.POS_Z);
66
+ expect(posZAdjacent).toContain(Face.POS_X);
67
+ expect(posZAdjacent).toContain(Face.NEG_X);
68
+ expect(posZAdjacent).toContain(Face.POS_Y);
69
+ expect(posZAdjacent).toContain(Face.NEG_Y);
70
+ expect(posZAdjacent).not.toContain(Face.NEG_Z);
71
+ expect(posZAdjacent).not.toContain(Face.POS_Z);
72
+ const posXAdjacent = Face.getAdjacent(Face.POS_X);
73
+ expect(posXAdjacent).toContain(Face.POS_Z);
74
+ expect(posXAdjacent).toContain(Face.NEG_Z);
75
+ expect(posXAdjacent).toContain(Face.POS_Y);
76
+ expect(posXAdjacent).toContain(Face.NEG_Y);
77
+ expect(posXAdjacent).not.toContain(Face.NEG_X);
78
+ expect(posXAdjacent).not.toContain(Face.POS_X);
79
+ });
80
+ it('should correctly identify adjacent faces', () => {
81
+ expect(Face.isAdjacent(Face.POS_Z, Face.POS_X)).toBe(true);
82
+ expect(Face.isAdjacent(Face.POS_Z, Face.NEG_X)).toBe(true);
83
+ expect(Face.isAdjacent(Face.POS_Z, Face.POS_Y)).toBe(true);
84
+ expect(Face.isAdjacent(Face.POS_Z, Face.NEG_Y)).toBe(true);
85
+ expect(Face.isAdjacent(Face.POS_Z, Face.NEG_Z)).toBe(false);
86
+ expect(Face.isAdjacent(Face.POS_Z, Face.POS_Z)).toBe(false);
87
+ });
88
+ it('should throw error for invalid face indices', () => {
89
+ expect(() => Face.getNormal(6)).toThrow('Invalid face index: 6');
90
+ expect(() => Face.getOpposite(6)).toThrow('Invalid face index: 6');
91
+ expect(() => Face.getAdjacent(6)).toThrow('Invalid face index: 6');
92
+ });
93
+ });
94
+ //# sourceMappingURL=face.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face.test.js","sourceRoot":"","sources":["../../../src/math/face/face.test.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,3 @@ export * from "./line2/line2.js";
12
12
  export * from "./line3/line3.js";
13
13
  export * from "./aabb-face/aabb-face.js";
14
14
  export * from "./plane/plane.js";
15
- export * from "./picking/index.js";
@@ -33,5 +33,4 @@ export * from "./line2/line2.js";
33
33
  export * from "./line3/line3.js";
34
34
  export * from "./aabb-face/aabb-face.js";
35
35
  export * from "./plane/plane.js";
36
- export * from "./picking/index.js";
37
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
@@ -1,6 +1,28 @@
1
1
  import { FromSchema } from "../../schema/index.js";
2
2
  import { Vec3, Vec4 } from "../index.js";
3
3
  export type Mat4x4 = FromSchema<typeof Mat4x4.schema>;
4
+ /**
5
+ * 4x4 Matrix operations using column-major order (WebGPU standard).
6
+ *
7
+ * Matrix Layout:
8
+ * Matrices are stored in column-major order as flat arrays of 16 elements.
9
+ * This matches WebGPU's memory layout and shader expectations.
10
+ *
11
+ * Layout: [m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15]
12
+ *
13
+ * Which represents:
14
+ * ┌ ┐
15
+ * │ m0 m4 m8 m12 │ (Column 0, 1, 2, 3)
16
+ * │ m1 m5 m9 m13 │
17
+ * │ m2 m6 m10 m14 │
18
+ * │ m3 m7 m11 m15 │
19
+ * └ ┘
20
+ *
21
+ * For transformation matrices (position, rotation, scale):
22
+ * - Columns 0-2 (m0-m2, m4-m6, m8-m10): Rotation/scale basis vectors (right, up, forward)
23
+ * - Column 3 (m12, m13, m14): Translation (x, y, z)
24
+ * - Row 3 (m3, m7, m11, m15): Perspective (usually 0, 0, 0, 1)
25
+ */
4
26
  export declare namespace Mat4x4 {
5
27
  const schema: {
6
28
  readonly type: "array";
@@ -22,6 +22,28 @@ 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
+ /**
26
+ * 4x4 Matrix operations using column-major order (WebGPU standard).
27
+ *
28
+ * Matrix Layout:
29
+ * Matrices are stored in column-major order as flat arrays of 16 elements.
30
+ * This matches WebGPU's memory layout and shader expectations.
31
+ *
32
+ * Layout: [m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13, m14, m15]
33
+ *
34
+ * Which represents:
35
+ * ┌ ┐
36
+ * │ m0 m4 m8 m12 │ (Column 0, 1, 2, 3)
37
+ * │ m1 m5 m9 m13 │
38
+ * │ m2 m6 m10 m14 │
39
+ * │ m3 m7 m11 m15 │
40
+ * └ ┘
41
+ *
42
+ * For transformation matrices (position, rotation, scale):
43
+ * - Columns 0-2 (m0-m2, m4-m6, m8-m10): Rotation/scale basis vectors (right, up, forward)
44
+ * - Column 3 (m12, m13, m14): Translation (x, y, z)
45
+ * - Row 3 (m3, m7, m11, m15): Perspective (usually 0, 0, 0, 1)
46
+ */
25
47
  export var Mat4x4;
26
48
  (function (Mat4x4) {
27
49
  Mat4x4.schema = {
@@ -1 +1 @@
1
- {"version":3,"file":"mat4x4.js","sourceRoot":"","sources":["../../../src/math/mat4x4/mat4x4.ts"],"names":[],"mappings":"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AG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAElC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;QACzB,OAAO;YACH,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,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"}
1
+ {"version":3,"file":"mat4x4.js","sourceRoot":"","sources":["../../../src/math/mat4x4/mat4x4.ts"],"names":[],"mappings":"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ClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClC,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAElC,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;QACzB,OAAO;YACH,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;YAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=face.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face.js","sourceRoot":"","sources":["../../../src/math/picking/face.ts"],"names":[],"mappings":""}
@@ -21,7 +21,7 @@ export function getClosestEntityToLine(rows, line) {
21
21
  return {
22
22
  entity: closestEntity,
23
23
  lineAlpha: closestAlpha,
24
- entityPosition: pickedPosition,
24
+ worldPosition: pickedPosition,
25
25
  // face: AabbFace.fromPosition(pickedPosition, rows.get(closestEntity)!),
26
26
  };
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-closest-entity-to-line.js","sourceRoot":"","sources":["../../../src/math/picking/get-closest-entity-to-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAW;IACvE,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,YAAY,GAAG,QAAQ,CAAC;IAC5B,IAAI,cAAc,GAAgB,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAChF,IAAI,WAAW,GAAG,sBAAsB;YACpC,CAAC,WAAW,KAAK,sBAAsB,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC;YACnE,sBAAsB,GAAG,WAAW,CAAC;YACrC,YAAY,GAAG,KAAK,CAAC;YACrB,aAAa,GAAG,EAAE,CAAC;YACnB,cAAc,GAAG,yBAAyB,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,IAAI,cAAc,EAAE,CAAC;QAC3C,OAAO;YACH,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,YAAY;YACvB,cAAc,EAAE,cAAc;YAC9B,yEAAyE;SAC5E,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"get-closest-entity-to-line.js","sourceRoot":"","sources":["../../../src/math/picking/get-closest-entity-to-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAW;IACvE,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,YAAY,GAAG,QAAQ,CAAC;IAC5B,IAAI,cAAc,GAAgB,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAChF,IAAI,WAAW,GAAG,sBAAsB;YACpC,CAAC,WAAW,KAAK,sBAAsB,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC;YACnE,sBAAsB,GAAG,WAAW,CAAC;YACrC,YAAY,GAAG,KAAK,CAAC;YACrB,aAAa,GAAG,EAAE,CAAC;YACnB,cAAc,GAAG,yBAAyB,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,IAAI,cAAc,EAAE,CAAC;QAC3C,OAAO;YACH,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,YAAY;YACvB,aAAa,EAAE,cAAc;YAC7B,yEAAyE;SAC5E,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -18,7 +18,7 @@ export function getClosestEntityToPoint(rows, point) {
18
18
  return {
19
19
  entity: closestRow,
20
20
  lineAlpha: 0,
21
- entityPosition: point,
21
+ worldPosition: point,
22
22
  // face: AabbFace.fromPosition(point, closestAabb),
23
23
  };
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-closest-entity-to-point.js","sourceRoot":"","sources":["../../../src/math/picking/get-closest-entity-to-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,uBAAuB,CAAC,IAAuB,EAAE,KAAW;IACxE,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,WAAW,GAAgB,IAAI,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,GAAG,sBAAsB,EAAE,CAAC;YACvC,sBAAsB,GAAG,WAAW,CAAC;YACrC,UAAU,GAAG,GAAG,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IACD,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QACnC,yEAAyE;QACzE,4DAA4D;QAC5D,yEAAyE;QACzE,OAAO;YACH,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,KAAK;YACrB,mDAAmD;SACtD,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"get-closest-entity-to-point.js","sourceRoot":"","sources":["../../../src/math/picking/get-closest-entity-to-point.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,uBAAuB,CAAC,IAAuB,EAAE,KAAW;IACxE,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,WAAW,GAAgB,IAAI,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,GAAG,sBAAsB,EAAE,CAAC;YACvC,sBAAsB,GAAG,WAAW,CAAC;YACrC,UAAU,GAAG,GAAG,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IACD,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QACnC,yEAAyE;QACzE,4DAA4D;QAC5D,yEAAyE;QACzE,OAAO;YACH,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,KAAK;YACpB,mDAAmD;SACtD,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Entity } from "../../ecs/index.js";
2
+ import { Aabb, Line3 } from "../index.js";
3
+ import { PickResult } from "./pick-result.js";
4
+ export declare function getClosestEntityToLine(rows: Map<Entity, Aabb>, line: Line3): PickResult | null;
@@ -0,0 +1,29 @@
1
+ import { Aabb, Line3, Vec3, AabbFace } from "../index.js";
2
+ export function getClosestEntityToLine(rows, line) {
3
+ let closestEntity = null;
4
+ let closestDistanceSquared = Infinity;
5
+ let closestAlpha = Infinity;
6
+ let pickedPosition = null;
7
+ for (const [id, aabb] of rows) {
8
+ const aabbCenter = Aabb.center(aabb);
9
+ const alpha = Line3.closestPointOnLine(line, aabbCenter);
10
+ const closestPointOnLineSegment = Line3.interpolate(line, alpha);
11
+ const distSquared = Vec3.distanceSquared(aabbCenter, closestPointOnLineSegment);
12
+ if (distSquared < closestDistanceSquared ||
13
+ (distSquared === closestDistanceSquared && alpha < closestAlpha)) {
14
+ closestDistanceSquared = distSquared;
15
+ closestAlpha = alpha;
16
+ closestEntity = id;
17
+ pickedPosition = closestPointOnLineSegment;
18
+ }
19
+ }
20
+ if (closestEntity !== null && pickedPosition) {
21
+ return {
22
+ entity: closestEntity,
23
+ position: pickedPosition,
24
+ face: AabbFace.fromPosition(pickedPosition, rows.get(closestEntity)),
25
+ };
26
+ }
27
+ return null;
28
+ }
29
+ //# sourceMappingURL=getClosestEntityToLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getClosestEntityToLine.js","sourceRoot":"","sources":["../../../src/math/picking/getClosestEntityToLine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,IAAW;IACvE,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,YAAY,GAAG,QAAQ,CAAC;IAC5B,IAAI,cAAc,GAAgB,IAAI,CAAC;IACvC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,MAAM,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QAChF,IAAI,WAAW,GAAG,sBAAsB;YACpC,CAAC,WAAW,KAAK,sBAAsB,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC;YACnE,sBAAsB,GAAG,WAAW,CAAC;YACrC,YAAY,GAAG,KAAK,CAAC;YACrB,aAAa,GAAG,EAAE,CAAC;YACnB,cAAc,GAAG,yBAAyB,CAAC;QAC/C,CAAC;IACL,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,IAAI,cAAc,EAAE,CAAC;QAC3C,OAAO;YACH,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;SACxE,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Entity } from "../../ecs/index.js";
2
+ import { Aabb, Vec3 } from "../index.js";
3
+ import { PickResult } from "./pick-result.js";
4
+ export declare function getClosestEntityToPoint(rows: Map<Entity, Aabb>, point: Vec3): PickResult | null;
@@ -0,0 +1,27 @@
1
+ import { Aabb, Vec3, AabbFace } from "../index.js";
2
+ export function getClosestEntityToPoint(rows, point) {
3
+ let closestRow = -1;
4
+ let closestDistanceSquared = Infinity;
5
+ let closestAabb = null;
6
+ for (const [row, aabb] of rows) {
7
+ const distSquared = Vec3.distanceSquared(point, Aabb.center(aabb));
8
+ if (distSquared < closestDistanceSquared) {
9
+ closestDistanceSquared = distSquared;
10
+ closestRow = row;
11
+ closestAabb = aabb;
12
+ }
13
+ }
14
+ if (closestRow !== -1 && closestAabb) {
15
+ // For direct intersection, use the intersection point if possible
16
+ // We'll use the intersection alpha from Aabb.lineIntersection
17
+ // If the line starts inside, alpha=0, so position is line.a
18
+ // Otherwise, Line3.interpolate at alpha
19
+ return {
20
+ entity: closestRow,
21
+ position: point,
22
+ face: AabbFace.fromPosition(point, closestAabb),
23
+ };
24
+ }
25
+ return null;
26
+ }
27
+ //# sourceMappingURL=getClosestEntityToPoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getClosestEntityToPoint.js","sourceRoot":"","sources":["../../../src/math/picking/getClosestEntityToPoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD,MAAM,UAAU,uBAAuB,CAAC,IAAuB,EAAE,KAAW;IACxE,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;IACpB,IAAI,sBAAsB,GAAG,QAAQ,CAAC;IACtC,IAAI,WAAW,GAAgB,IAAI,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,WAAW,GAAG,sBAAsB,EAAE,CAAC;YACvC,sBAAsB,GAAG,WAAW,CAAC;YACrC,UAAU,GAAG,GAAG,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC;QACvB,CAAC;IACL,CAAC;IACD,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QACnC,kEAAkE;QAClE,8DAA8D;QAC9D,4DAA4D;QAC5D,wCAAwC;QACxC,OAAO;YACH,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC;SAClD,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}