@buley/hexgrid-3d 3.1.0 → 3.2.1

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 (208) hide show
  1. package/dist/HexGridEnhanced.d.ts +15 -0
  2. package/dist/HexGridEnhanced.d.ts.map +1 -0
  3. package/dist/HexGridEnhanced.js +1 -0
  4. package/dist/Snapshot.d.ts +594 -0
  5. package/dist/Snapshot.d.ts.map +1 -0
  6. package/dist/Snapshot.js +757 -0
  7. package/dist/adapters/DashAdapter.d.ts +18 -0
  8. package/dist/adapters/DashAdapter.d.ts.map +1 -0
  9. package/dist/adapters/DashAdapter.js +42 -0
  10. package/dist/adapters.d.ts +53 -0
  11. package/dist/adapters.d.ts.map +1 -0
  12. package/dist/adapters.js +14 -0
  13. package/dist/algorithms/AdvancedStatistics.d.ts +52 -0
  14. package/dist/algorithms/AdvancedStatistics.d.ts.map +1 -0
  15. package/dist/algorithms/AdvancedStatistics.js +307 -0
  16. package/dist/algorithms/BayesianStatistics.d.ts +86 -0
  17. package/dist/algorithms/BayesianStatistics.d.ts.map +1 -0
  18. package/dist/algorithms/BayesianStatistics.js +263 -0
  19. package/dist/algorithms/FlowField.d.ts +55 -0
  20. package/dist/algorithms/FlowField.d.ts.map +1 -0
  21. package/dist/algorithms/FlowField.js +80 -0
  22. package/dist/algorithms/FlowField3D.d.ts +166 -0
  23. package/dist/algorithms/FlowField3D.d.ts.map +1 -0
  24. package/dist/algorithms/FlowField3D.js +327 -0
  25. package/dist/algorithms/FluidEngineFactory.d.ts +15 -0
  26. package/dist/algorithms/FluidEngineFactory.d.ts.map +1 -0
  27. package/dist/algorithms/FluidEngineFactory.js +41 -0
  28. package/dist/algorithms/FluidSimulation.d.ts +41 -0
  29. package/dist/algorithms/FluidSimulation.d.ts.map +1 -0
  30. package/dist/algorithms/FluidSimulation.js +74 -0
  31. package/dist/algorithms/FluidSimulation3D.d.ts +137 -0
  32. package/dist/algorithms/FluidSimulation3D.d.ts.map +1 -0
  33. package/dist/algorithms/FluidSimulation3D.js +464 -0
  34. package/dist/algorithms/FluidSimulation3DGPU.d.ts +41 -0
  35. package/dist/algorithms/FluidSimulation3DGPU.d.ts.map +1 -0
  36. package/dist/algorithms/FluidSimulation3DGPU.js +468 -0
  37. package/dist/algorithms/FluidSimulationWebNN.d.ts +56 -0
  38. package/dist/algorithms/FluidSimulationWebNN.d.ts.map +1 -0
  39. package/dist/algorithms/FluidSimulationWebNN.js +84 -0
  40. package/dist/algorithms/GraphAlgorithms.d.ts +48 -0
  41. package/dist/algorithms/GraphAlgorithms.d.ts.map +1 -0
  42. package/dist/algorithms/GraphAlgorithms.js +122 -0
  43. package/dist/algorithms/OutlierDetection.d.ts +49 -0
  44. package/dist/algorithms/OutlierDetection.d.ts.map +1 -0
  45. package/dist/algorithms/OutlierDetection.js +284 -0
  46. package/dist/algorithms/ParticleSystem.d.ts +36 -0
  47. package/dist/algorithms/ParticleSystem.d.ts.map +1 -0
  48. package/dist/algorithms/ParticleSystem.js +59 -0
  49. package/dist/algorithms/ParticleSystem3D.d.ts +206 -0
  50. package/dist/algorithms/ParticleSystem3D.d.ts.map +1 -0
  51. package/dist/algorithms/ParticleSystem3D.js +371 -0
  52. package/dist/algorithms/index.d.ts +19 -0
  53. package/dist/algorithms/index.d.ts.map +1 -0
  54. package/{src/algorithms/index.ts → dist/algorithms/index.js} +4 -2
  55. package/dist/compat.d.ts +24 -0
  56. package/dist/compat.d.ts.map +1 -0
  57. package/dist/compat.js +88 -0
  58. package/dist/components/HexGrid.d.ts +5 -0
  59. package/dist/components/HexGrid.d.ts.map +1 -0
  60. package/dist/components/HexGrid.js +39 -0
  61. package/dist/components/NarrationOverlay.d.ts +16 -0
  62. package/dist/components/NarrationOverlay.d.ts.map +1 -0
  63. package/dist/components/NarrationOverlay.js +132 -0
  64. package/{src/components/index.ts → dist/components/index.d.ts} +1 -0
  65. package/dist/components/index.d.ts.map +1 -0
  66. package/dist/components/index.js +1 -0
  67. package/dist/features.d.ts +54 -0
  68. package/dist/features.d.ts.map +1 -0
  69. package/dist/features.js +74 -0
  70. package/dist/index.d.ts +12 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/{src/index.ts → dist/index.js} +0 -9
  73. package/dist/lib/narration.d.ts +12 -0
  74. package/dist/lib/narration.d.ts.map +1 -0
  75. package/dist/lib/narration.js +8 -0
  76. package/dist/lib/stats-tracker.d.ts +7 -0
  77. package/dist/lib/stats-tracker.d.ts.map +1 -0
  78. package/dist/lib/stats-tracker.js +22 -0
  79. package/dist/lib/theme-colors.d.ts +7 -0
  80. package/dist/lib/theme-colors.d.ts.map +1 -0
  81. package/dist/lib/theme-colors.js +10 -0
  82. package/dist/math/HexCoordinates.d.ts +140 -0
  83. package/dist/math/HexCoordinates.d.ts.map +1 -0
  84. package/dist/math/HexCoordinates.js +741 -0
  85. package/dist/math/Matrix4.d.ts +9 -0
  86. package/dist/math/Matrix4.d.ts.map +1 -0
  87. package/dist/math/Matrix4.js +19 -0
  88. package/dist/math/Quaternion.d.ts +11 -0
  89. package/dist/math/Quaternion.d.ts.map +1 -0
  90. package/dist/math/Quaternion.js +23 -0
  91. package/dist/math/SpatialIndex.d.ts +34 -0
  92. package/dist/math/SpatialIndex.d.ts.map +1 -0
  93. package/dist/math/SpatialIndex.js +75 -0
  94. package/dist/math/Vector3.d.ts +110 -0
  95. package/dist/math/Vector3.d.ts.map +1 -0
  96. package/dist/math/Vector3.js +426 -0
  97. package/dist/math/index.d.ts +11 -0
  98. package/dist/math/index.d.ts.map +1 -0
  99. package/{src/math/index.ts → dist/math/index.js} +0 -1
  100. package/dist/note-adapter.d.ts +44 -0
  101. package/dist/note-adapter.d.ts.map +1 -0
  102. package/dist/note-adapter.js +86 -0
  103. package/dist/ontology-adapter.d.ts +13 -0
  104. package/dist/ontology-adapter.d.ts.map +1 -0
  105. package/dist/ontology-adapter.js +65 -0
  106. package/dist/stores/index.d.ts +2 -0
  107. package/dist/stores/index.d.ts.map +1 -0
  108. package/dist/stores/uiStore.d.ts +18 -0
  109. package/dist/stores/uiStore.d.ts.map +1 -0
  110. package/dist/stores/uiStore.js +77 -0
  111. package/dist/types/index.d.ts +4 -0
  112. package/dist/types/index.d.ts.map +1 -0
  113. package/dist/types/index.js +1 -0
  114. package/dist/types.d.ts +126 -0
  115. package/dist/types.d.ts.map +1 -0
  116. package/dist/types.js +4 -0
  117. package/dist/utils/image-utils.d.ts +13 -0
  118. package/dist/utils/image-utils.d.ts.map +1 -0
  119. package/dist/utils/image-utils.js +23 -0
  120. package/dist/wasm/HexGridWasmWrapper.d.ts +131 -0
  121. package/dist/wasm/HexGridWasmWrapper.d.ts.map +1 -0
  122. package/dist/wasm/HexGridWasmWrapper.js +610 -0
  123. package/dist/wasm/index.d.ts +7 -0
  124. package/dist/wasm/index.d.ts.map +1 -0
  125. package/{src/wasm/index.ts → dist/wasm/index.js} +0 -1
  126. package/dist/webgpu/WebGPUContext.d.ts +20 -0
  127. package/dist/webgpu/WebGPUContext.d.ts.map +1 -0
  128. package/dist/webgpu/WebGPUContext.js +60 -0
  129. package/dist/webnn/WebNNContext.d.ts +38 -0
  130. package/dist/webnn/WebNNContext.d.ts.map +1 -0
  131. package/dist/webnn/WebNNContext.js +66 -0
  132. package/dist/workers/hexgrid-math.d.ts +79 -0
  133. package/dist/workers/hexgrid-math.d.ts.map +1 -0
  134. package/dist/workers/hexgrid-math.js +136 -0
  135. package/dist/workers/hexgrid-worker.worker.d.ts +35 -0
  136. package/dist/workers/hexgrid-worker.worker.d.ts.map +1 -0
  137. package/dist/workers/hexgrid-worker.worker.js +2014 -0
  138. package/package.json +24 -7
  139. package/.eslintrc.json +0 -28
  140. package/build_log.txt +0 -500
  141. package/build_src_log.txt +0 -8
  142. package/examples/basic-usage.tsx +0 -52
  143. package/public/hexgrid-worker.js +0 -2475
  144. package/rust/Cargo.toml +0 -41
  145. package/rust/src/lib.rs +0 -740
  146. package/rust/src/math.rs +0 -574
  147. package/rust/src/spatial.rs +0 -245
  148. package/rust/src/statistics.rs +0 -496
  149. package/site/.eslintrc.json +0 -3
  150. package/site/DEPLOYMENT.md +0 -196
  151. package/site/INDEX.md +0 -127
  152. package/site/QUICK_START.md +0 -86
  153. package/site/README.md +0 -85
  154. package/site/SITE_SUMMARY.md +0 -180
  155. package/site/next.config.js +0 -12
  156. package/site/package.json +0 -26
  157. package/site/src/app/docs/page.tsx +0 -272
  158. package/site/src/app/examples/page.tsx +0 -151
  159. package/site/src/app/globals.css +0 -160
  160. package/site/src/app/layout.tsx +0 -39
  161. package/site/src/app/page.tsx +0 -235
  162. package/site/tsconfig.json +0 -29
  163. package/site/vercel.json +0 -6
  164. package/src/HexGridEnhanced.ts +0 -16
  165. package/src/Snapshot.ts +0 -1607
  166. package/src/adapters/DashAdapter.ts +0 -57
  167. package/src/adapters.ts +0 -63
  168. package/src/algorithms/AdvancedStatistics.ts +0 -362
  169. package/src/algorithms/BayesianStatistics.ts +0 -348
  170. package/src/algorithms/FlowField.ts +0 -150
  171. package/src/algorithms/FlowField3D.ts +0 -573
  172. package/src/algorithms/FluidEngineFactory.ts +0 -44
  173. package/src/algorithms/FluidSimulation.ts +0 -115
  174. package/src/algorithms/FluidSimulation3D.ts +0 -664
  175. package/src/algorithms/FluidSimulation3DGPU.ts +0 -408
  176. package/src/algorithms/FluidSimulationWebNN.ts +0 -141
  177. package/src/algorithms/GraphAlgorithms.ts +0 -191
  178. package/src/algorithms/OutlierDetection.ts +0 -425
  179. package/src/algorithms/ParticleSystem.ts +0 -95
  180. package/src/algorithms/ParticleSystem3D.ts +0 -567
  181. package/src/compat.ts +0 -96
  182. package/src/components/HexGrid.tsx +0 -61
  183. package/src/components/NarrationOverlay.tsx +0 -309
  184. package/src/features.ts +0 -125
  185. package/src/lib/narration.ts +0 -17
  186. package/src/lib/stats-tracker.ts +0 -25
  187. package/src/lib/theme-colors.ts +0 -12
  188. package/src/math/HexCoordinates.ts +0 -863
  189. package/src/math/Matrix4.ts +0 -25
  190. package/src/math/Quaternion.ts +0 -37
  191. package/src/math/SpatialIndex.ts +0 -114
  192. package/src/math/Vector3.ts +0 -540
  193. package/src/note-adapter.ts +0 -132
  194. package/src/ontology-adapter.ts +0 -84
  195. package/src/stores/uiStore.ts +0 -85
  196. package/src/types/index.ts +0 -3
  197. package/src/types/shared-utils.d.ts +0 -10
  198. package/src/types/wgsl.d.ts +0 -4
  199. package/src/types.ts +0 -164
  200. package/src/utils/image-utils.ts +0 -28
  201. package/src/wasm/HexGridWasmWrapper.ts +0 -801
  202. package/src/webgpu/WebGPUContext.ts +0 -71
  203. package/src/webgpu/shaders/fluid_sim.wgsl +0 -140
  204. package/src/webnn/WebNNContext.ts +0 -99
  205. package/src/workers/hexgrid-math.ts +0 -182
  206. package/src/workers/hexgrid-worker.worker.ts +0 -2781
  207. package/tsconfig.json +0 -26
  208. /package/{src/stores/index.ts → dist/stores/index.js} +0 -0
@@ -0,0 +1,9 @@
1
+ import { Vector3 } from './Vector3';
2
+ export declare class Matrix4 {
3
+ private elements;
4
+ constructor(elements?: number[]);
5
+ static identity(): Matrix4;
6
+ static translation(x: number, y: number, z: number): Matrix4;
7
+ transformPoint(point: Vector3): Vector3;
8
+ }
9
+ //# sourceMappingURL=Matrix4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Matrix4.d.ts","sourceRoot":"","sources":["../../src/math/Matrix4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,CAAC,EAAE,MAAM,EAAE;IAI/B,MAAM,CAAC,QAAQ,IAAI,OAAO;IAI1B,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAI5D,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;CAOxC"}
@@ -0,0 +1,19 @@
1
+ import { Vector3 } from './Vector3';
2
+ export class Matrix4 {
3
+ constructor(elements) {
4
+ this.elements = elements ?? Matrix4.identity().elements;
5
+ }
6
+ static identity() {
7
+ return new Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
8
+ }
9
+ static translation(x, y, z) {
10
+ return new Matrix4([1, 0, 0, x, 0, 1, 0, y, 0, 0, 1, z, 0, 0, 0, 1]);
11
+ }
12
+ transformPoint(point) {
13
+ const e = this.elements;
14
+ const x = point.x * e[0] + point.y * e[1] + point.z * e[2] + e[3];
15
+ const y = point.x * e[4] + point.y * e[5] + point.z * e[6] + e[7];
16
+ const z = point.x * e[8] + point.y * e[9] + point.z * e[10] + e[11];
17
+ return new Vector3(x, y, z);
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ import { Vector3 } from './Vector3';
2
+ export declare class Quaternion {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ w: number;
7
+ constructor(x?: number, y?: number, z?: number, w?: number);
8
+ static identity(): Quaternion;
9
+ rotateVector(vector: Vector3): Vector3;
10
+ }
11
+ //# sourceMappingURL=Quaternion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Quaternion.d.ts","sourceRoot":"","sources":["../../src/math/Quaternion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,UAAU;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;gBAEE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAOtE,MAAM,CAAC,QAAQ,IAAI,UAAU;IAI7B,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;CAiBvC"}
@@ -0,0 +1,23 @@
1
+ import { Vector3 } from './Vector3';
2
+ export class Quaternion {
3
+ constructor(x = 0, y = 0, z = 0, w = 1) {
4
+ this.x = x;
5
+ this.y = y;
6
+ this.z = z;
7
+ this.w = w;
8
+ }
9
+ static identity() {
10
+ return new Quaternion(0, 0, 0, 1);
11
+ }
12
+ rotateVector(vector) {
13
+ const qx = this.x;
14
+ const qy = this.y;
15
+ const qz = this.z;
16
+ const qw = this.w;
17
+ const ix = qw * vector.x + qy * vector.z - qz * vector.y;
18
+ const iy = qw * vector.y + qz * vector.x - qx * vector.z;
19
+ const iz = qw * vector.z + qx * vector.y - qy * vector.x;
20
+ const iw = -qx * vector.x - qy * vector.y - qz * vector.z;
21
+ return new Vector3(ix * qw + iw * -qx + iy * -qz - iz * -qy, iy * qw + iw * -qy + iz * -qx - ix * -qz, iz * qw + iw * -qz + ix * -qy - iy * -qx);
22
+ }
23
+ }
@@ -0,0 +1,34 @@
1
+ import { Vector2 } from './Vector3';
2
+ type Point = [number, number];
3
+ export interface KDTreeResult<T> {
4
+ data: T;
5
+ distance: number;
6
+ }
7
+ export declare class KDTree<T> {
8
+ private points;
9
+ private data;
10
+ private constructor();
11
+ static build<T>(points: Point[], data: T[], _dimensions: number): KDTree<T>;
12
+ kNearest(target: Point, k: number): Array<KDTreeResult<T>>;
13
+ rangeQuery(target: Point, radius: number): Array<KDTreeResult<T>>;
14
+ private static distance;
15
+ }
16
+ export interface SpatialHashEntry<T> {
17
+ data: T;
18
+ position: Point;
19
+ }
20
+ export declare class SpatialHashGrid<T> {
21
+ private cellSize;
22
+ private grid;
23
+ constructor(cellSize: number, _dimensions: number);
24
+ insert(position: Point, data: T): void;
25
+ query(position: Point, radius: number): Array<SpatialHashEntry<T>>;
26
+ private keyFor;
27
+ private nearbyKeys;
28
+ }
29
+ export interface SpatialNode {
30
+ position: Vector2;
31
+ data: unknown;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=SpatialIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpatialIndex.d.ts","sourceRoot":"","sources":["../../src/math/SpatialIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,IAAI,CAAM;IAElB,OAAO;IAKP,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAI3E,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAS1D,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IASjE,OAAO,CAAC,MAAM,CAAC,QAAQ;CAKxB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,qBAAa,eAAe,CAAC,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAiD;gBAEjD,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIjD,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAOtC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAqBlE,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,UAAU;CAcnB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf"}
@@ -0,0 +1,75 @@
1
+ export class KDTree {
2
+ constructor(points, data) {
3
+ this.points = points;
4
+ this.data = data;
5
+ }
6
+ static build(points, data, _dimensions) {
7
+ return new KDTree(points, data);
8
+ }
9
+ kNearest(target, k) {
10
+ const results = this.points.map((point, index) => ({
11
+ data: this.data[index],
12
+ distance: KDTree.distance(point, target),
13
+ }));
14
+ return results.sort((a, b) => a.distance - b.distance).slice(0, k);
15
+ }
16
+ rangeQuery(target, radius) {
17
+ return this.points
18
+ .map((point, index) => ({
19
+ data: this.data[index],
20
+ distance: KDTree.distance(point, target),
21
+ }))
22
+ .filter((result) => result.distance <= radius);
23
+ }
24
+ static distance(a, b) {
25
+ const dx = a[0] - b[0];
26
+ const dy = a[1] - b[1];
27
+ return Math.sqrt(dx * dx + dy * dy);
28
+ }
29
+ }
30
+ export class SpatialHashGrid {
31
+ constructor(cellSize, _dimensions) {
32
+ this.grid = new Map();
33
+ this.cellSize = cellSize;
34
+ }
35
+ insert(position, data) {
36
+ const key = this.keyFor(position);
37
+ const bucket = this.grid.get(key) ?? [];
38
+ bucket.push({ data, position });
39
+ this.grid.set(key, bucket);
40
+ }
41
+ query(position, radius) {
42
+ const cellsToCheck = this.nearbyKeys(position, radius);
43
+ const results = [];
44
+ for (const key of cellsToCheck) {
45
+ const bucket = this.grid.get(key);
46
+ if (!bucket)
47
+ continue;
48
+ for (const entry of bucket) {
49
+ const distance = Math.hypot(entry.position[0] - position[0], entry.position[1] - position[1]);
50
+ if (distance <= radius) {
51
+ results.push(entry);
52
+ }
53
+ }
54
+ }
55
+ return results;
56
+ }
57
+ keyFor(position) {
58
+ const x = Math.floor(position[0] / this.cellSize);
59
+ const y = Math.floor(position[1] / this.cellSize);
60
+ return `${x},${y}`;
61
+ }
62
+ nearbyKeys(position, radius) {
63
+ const minX = Math.floor((position[0] - radius) / this.cellSize);
64
+ const maxX = Math.floor((position[0] + radius) / this.cellSize);
65
+ const minY = Math.floor((position[1] - radius) / this.cellSize);
66
+ const maxY = Math.floor((position[1] + radius) / this.cellSize);
67
+ const keys = [];
68
+ for (let x = minX; x <= maxX; x++) {
69
+ for (let y = minY; y <= maxY; y++) {
70
+ keys.push(`${x},${y}`);
71
+ }
72
+ }
73
+ return keys;
74
+ }
75
+ }
@@ -0,0 +1,110 @@
1
+ export declare class Vector2 {
2
+ x: number;
3
+ y: number;
4
+ constructor(x?: number, y?: number);
5
+ static zero(): Vector2;
6
+ static one(): Vector2;
7
+ static fromAngle(angle: number, length?: number): Vector2;
8
+ clone(): Vector2;
9
+ add(other: Vector2): Vector2;
10
+ subtract(other: Vector2): Vector2;
11
+ scale(factor: number): Vector2;
12
+ dot(other: Vector2): number;
13
+ cross(other: Vector2): number;
14
+ magnitude(): number;
15
+ magnitudeSquared(): number;
16
+ normalize(): Vector2;
17
+ distanceTo(other: Vector2): number;
18
+ angle(): number;
19
+ angleTo(other: Vector2): number;
20
+ rotate(angle: number): Vector2;
21
+ perpendicular(): Vector2;
22
+ lerp(other: Vector2, t: number): Vector2;
23
+ toArray(): [number, number];
24
+ toVector3(z?: number): Vector3;
25
+ equals(other: Vector2, epsilon?: number): boolean;
26
+ toString(): string;
27
+ }
28
+ export declare class Vector3 {
29
+ x: number;
30
+ y: number;
31
+ z: number;
32
+ constructor(x?: number, y?: number, z?: number);
33
+ static zero(): Vector3;
34
+ static one(): Vector3;
35
+ static up(): Vector3;
36
+ static down(): Vector3;
37
+ static right(): Vector3;
38
+ static left(): Vector3;
39
+ static forward(): Vector3;
40
+ static back(): Vector3;
41
+ static fromArray(arr: number[]): Vector3;
42
+ static fromSpherical(phi: number, theta: number, radius: number): Vector3;
43
+ static fromLatLng(latitude: number, longitude: number, radius?: number): Vector3;
44
+ static random(): Vector3;
45
+ static randomInSphere(radius: number): Vector3;
46
+ static catmullRom(p0: Vector3, p1: Vector3, p2: Vector3, p3: Vector3, t: number): Vector3;
47
+ static bezier(points: Vector3[], t: number): Vector3;
48
+ clone(): Vector3;
49
+ add(other: Vector3): Vector3;
50
+ subtract(other: Vector3): Vector3;
51
+ scale(factor: number): Vector3;
52
+ multiply(other: Vector3): Vector3;
53
+ divide(other: Vector3): Vector3;
54
+ negate(): Vector3;
55
+ set(x: number, y: number, z: number): this;
56
+ copy(other: Vector3): this;
57
+ addInPlace(other: Vector3): this;
58
+ subtractInPlace(other: Vector3): this;
59
+ scaleInPlace(factor: number): this;
60
+ normalizeInPlace(): this;
61
+ dot(other: Vector3): number;
62
+ cross(other: Vector3): Vector3;
63
+ tripleProduct(b: Vector3, c: Vector3): number;
64
+ length(): number;
65
+ magnitude(): number;
66
+ magnitudeSquared(): number;
67
+ normalize(): Vector3;
68
+ distanceTo(other: Vector3): number;
69
+ distanceSquaredTo(other: Vector3): number;
70
+ lerp(other: Vector3, t: number): Vector3;
71
+ slerp(other: Vector3, t: number): Vector3;
72
+ nlerp(other: Vector3, t: number): Vector3;
73
+ hermite(t1: Vector3, p2: Vector3, t2: Vector3, t: number): Vector3;
74
+ toArray(): [number, number, number];
75
+ toFloat32Array(): Float32Array;
76
+ equals(other: Vector3, epsilon?: number): boolean;
77
+ isZero(): boolean;
78
+ abs(): Vector3;
79
+ floor(): Vector3;
80
+ ceil(): Vector3;
81
+ round(): Vector3;
82
+ min(other: Vector3): Vector3;
83
+ max(other: Vector3): Vector3;
84
+ clamp(min: Vector3, max: Vector3): Vector3;
85
+ clampMagnitude(max: number): Vector3;
86
+ setMagnitude(len: number): Vector3;
87
+ reflect(normal: Vector3): Vector3;
88
+ angleTo(other: Vector3): number;
89
+ signedAngleTo(other: Vector3, axis: Vector3): number;
90
+ toSpherical(): {
91
+ radius: number;
92
+ theta: number;
93
+ phi: number;
94
+ };
95
+ toLatLng(): {
96
+ lat: number;
97
+ lng: number;
98
+ };
99
+ greatCircleDistanceTo(other: Vector3): number;
100
+ greatCircleLerp(other: Vector3, t: number): Vector3;
101
+ rotateAround(axis: Vector3, angle: number): Vector3;
102
+ rotateX(angle: number): Vector3;
103
+ rotateY(angle: number): Vector3;
104
+ rotateZ(angle: number): Vector3;
105
+ projectOnto(other: Vector3): Vector3;
106
+ projectOntoPlane(normal: Vector3): Vector3;
107
+ refract(normal: Vector3, eta: number): Vector3;
108
+ toString(): string;
109
+ }
110
+ //# sourceMappingURL=Vector3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../src/math/Vector3.ts"],"names":[],"mappings":"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"}