@rickosborne/hexgrid 2025.5.31

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 (344) hide show
  1. package/README.md +2141 -0
  2. package/axial-add.cjs +30 -0
  3. package/axial-add.cjs.map +6 -0
  4. package/axial-add.d.ts +6 -0
  5. package/axial-add.d.ts.map +1 -0
  6. package/axial-add.mjs +11 -0
  7. package/axial-add.mjs.map +6 -0
  8. package/axial-from-cube.cjs +33 -0
  9. package/axial-from-cube.cjs.map +6 -0
  10. package/axial-from-cube.d.ts +7 -0
  11. package/axial-from-cube.d.ts.map +1 -0
  12. package/axial-from-cube.mjs +14 -0
  13. package/axial-from-cube.mjs.map +6 -0
  14. package/axial-from-double.cjs +30 -0
  15. package/axial-from-double.cjs.map +6 -0
  16. package/axial-from-double.d.ts +5 -0
  17. package/axial-from-double.d.ts.map +1 -0
  18. package/axial-from-double.mjs +11 -0
  19. package/axial-from-double.mjs.map +6 -0
  20. package/axial-from-offset.cjs +64 -0
  21. package/axial-from-offset.cjs.map +6 -0
  22. package/axial-from-offset.d.ts +4 -0
  23. package/axial-from-offset.d.ts.map +1 -0
  24. package/axial-from-offset.mjs +45 -0
  25. package/axial-from-offset.mjs.map +6 -0
  26. package/axial-intersection.cjs +28 -0
  27. package/axial-intersection.cjs.map +6 -0
  28. package/axial-intersection.d.ts +3 -0
  29. package/axial-intersection.d.ts.map +1 -0
  30. package/axial-intersection.mjs +9 -0
  31. package/axial-intersection.mjs.map +6 -0
  32. package/axial-lerp.cjs +32 -0
  33. package/axial-lerp.cjs.map +6 -0
  34. package/axial-lerp.d.ts +3 -0
  35. package/axial-lerp.d.ts.map +1 -0
  36. package/axial-lerp.mjs +13 -0
  37. package/axial-lerp.mjs.map +6 -0
  38. package/axial-line-draw.cjs +39 -0
  39. package/axial-line-draw.cjs.map +6 -0
  40. package/axial-line-draw.d.ts +3 -0
  41. package/axial-line-draw.d.ts.map +1 -0
  42. package/axial-line-draw.mjs +20 -0
  43. package/axial-line-draw.mjs.map +6 -0
  44. package/axial-neighbor.cjs +27 -0
  45. package/axial-neighbor.cjs.map +6 -0
  46. package/axial-neighbor.d.ts +3 -0
  47. package/axial-neighbor.d.ts.map +1 -0
  48. package/axial-neighbor.mjs +8 -0
  49. package/axial-neighbor.mjs.map +6 -0
  50. package/axial-range.cjs +29 -0
  51. package/axial-range.cjs.map +6 -0
  52. package/axial-range.d.ts +3 -0
  53. package/axial-range.d.ts.map +1 -0
  54. package/axial-range.mjs +10 -0
  55. package/axial-range.mjs.map +6 -0
  56. package/axial-round.cjs +31 -0
  57. package/axial-round.cjs.map +6 -0
  58. package/axial-round.d.ts +3 -0
  59. package/axial-round.d.ts.map +1 -0
  60. package/axial-round.mjs +12 -0
  61. package/axial-round.mjs.map +6 -0
  62. package/axial-subtract.cjs +28 -0
  63. package/axial-subtract.cjs.map +6 -0
  64. package/axial-subtract.d.ts +6 -0
  65. package/axial-subtract.d.ts.map +1 -0
  66. package/axial-subtract.mjs +9 -0
  67. package/axial-subtract.mjs.map +6 -0
  68. package/axial.cjs +66 -0
  69. package/axial.cjs.map +6 -0
  70. package/axial.d.ts +83 -0
  71. package/axial.d.ts.map +1 -0
  72. package/axial.mjs +47 -0
  73. package/axial.mjs.map +6 -0
  74. package/covering-grid.cjs +78 -0
  75. package/covering-grid.cjs.map +6 -0
  76. package/covering-grid.d.ts +20 -0
  77. package/covering-grid.d.ts.map +1 -0
  78. package/covering-grid.mjs +59 -0
  79. package/covering-grid.mjs.map +6 -0
  80. package/cube-add.cjs +32 -0
  81. package/cube-add.cjs.map +6 -0
  82. package/cube-add.d.ts +6 -0
  83. package/cube-add.d.ts.map +1 -0
  84. package/cube-add.mjs +13 -0
  85. package/cube-add.mjs.map +6 -0
  86. package/cube-distance.cjs +30 -0
  87. package/cube-distance.cjs.map +6 -0
  88. package/cube-distance.d.ts +6 -0
  89. package/cube-distance.d.ts.map +1 -0
  90. package/cube-distance.mjs +11 -0
  91. package/cube-distance.mjs.map +6 -0
  92. package/cube-from-axial.cjs +34 -0
  93. package/cube-from-axial.cjs.map +6 -0
  94. package/cube-from-axial.d.ts +7 -0
  95. package/cube-from-axial.d.ts.map +1 -0
  96. package/cube-from-axial.mjs +15 -0
  97. package/cube-from-axial.mjs.map +6 -0
  98. package/cube-from-double.cjs +30 -0
  99. package/cube-from-double.cjs.map +6 -0
  100. package/cube-from-double.d.ts +5 -0
  101. package/cube-from-double.d.ts.map +1 -0
  102. package/cube-from-double.mjs +11 -0
  103. package/cube-from-double.mjs.map +6 -0
  104. package/cube-heading.cjs +54 -0
  105. package/cube-heading.cjs.map +6 -0
  106. package/cube-heading.d.ts +3 -0
  107. package/cube-heading.d.ts.map +1 -0
  108. package/cube-heading.mjs +35 -0
  109. package/cube-heading.mjs.map +6 -0
  110. package/cube-intersection.cjs +28 -0
  111. package/cube-intersection.cjs.map +6 -0
  112. package/cube-intersection.d.ts +3 -0
  113. package/cube-intersection.d.ts.map +1 -0
  114. package/cube-intersection.mjs +9 -0
  115. package/cube-intersection.mjs.map +6 -0
  116. package/cube-lerp.cjs +34 -0
  117. package/cube-lerp.cjs.map +6 -0
  118. package/cube-lerp.d.ts +3 -0
  119. package/cube-lerp.d.ts.map +1 -0
  120. package/cube-lerp.mjs +15 -0
  121. package/cube-lerp.mjs.map +6 -0
  122. package/cube-line-draw.cjs +41 -0
  123. package/cube-line-draw.cjs.map +6 -0
  124. package/cube-line-draw.d.ts +3 -0
  125. package/cube-line-draw.d.ts.map +1 -0
  126. package/cube-line-draw.mjs +22 -0
  127. package/cube-line-draw.mjs.map +6 -0
  128. package/cube-neighbor.cjs +27 -0
  129. package/cube-neighbor.cjs.map +6 -0
  130. package/cube-neighbor.d.ts +6 -0
  131. package/cube-neighbor.d.ts.map +1 -0
  132. package/cube-neighbor.mjs +8 -0
  133. package/cube-neighbor.mjs.map +6 -0
  134. package/cube-range.cjs +29 -0
  135. package/cube-range.cjs.map +6 -0
  136. package/cube-range.d.ts +3 -0
  137. package/cube-range.d.ts.map +1 -0
  138. package/cube-range.mjs +10 -0
  139. package/cube-range.mjs.map +6 -0
  140. package/cube-rotate.cjs +40 -0
  141. package/cube-rotate.cjs.map +6 -0
  142. package/cube-rotate.d.ts +4 -0
  143. package/cube-rotate.d.ts.map +1 -0
  144. package/cube-rotate.mjs +21 -0
  145. package/cube-rotate.mjs.map +6 -0
  146. package/cube-round.cjs +46 -0
  147. package/cube-round.cjs.map +6 -0
  148. package/cube-round.d.ts +3 -0
  149. package/cube-round.d.ts.map +1 -0
  150. package/cube-round.mjs +27 -0
  151. package/cube-round.mjs.map +6 -0
  152. package/cube-subtract.cjs +33 -0
  153. package/cube-subtract.cjs.map +6 -0
  154. package/cube-subtract.d.ts +3 -0
  155. package/cube-subtract.d.ts.map +1 -0
  156. package/cube-subtract.mjs +14 -0
  157. package/cube-subtract.mjs.map +6 -0
  158. package/cube.cjs +82 -0
  159. package/cube.cjs.map +6 -0
  160. package/cube.d.ts +155 -0
  161. package/cube.d.ts.map +1 -0
  162. package/cube.mjs +63 -0
  163. package/cube.mjs.map +6 -0
  164. package/double-add.cjs +37 -0
  165. package/double-add.cjs.map +6 -0
  166. package/double-add.d.ts +4 -0
  167. package/double-add.d.ts.map +1 -0
  168. package/double-add.mjs +18 -0
  169. package/double-add.mjs.map +6 -0
  170. package/double-distance.cjs +36 -0
  171. package/double-distance.cjs.map +6 -0
  172. package/double-distance.d.ts +4 -0
  173. package/double-distance.d.ts.map +1 -0
  174. package/double-distance.mjs +17 -0
  175. package/double-distance.mjs.map +6 -0
  176. package/double-from-qrs.cjs +37 -0
  177. package/double-from-qrs.cjs.map +6 -0
  178. package/double-from-qrs.d.ts +5 -0
  179. package/double-from-qrs.d.ts.map +1 -0
  180. package/double-from-qrs.mjs +18 -0
  181. package/double-from-qrs.mjs.map +6 -0
  182. package/double-neighbor.cjs +29 -0
  183. package/double-neighbor.cjs.map +6 -0
  184. package/double-neighbor.d.ts +4 -0
  185. package/double-neighbor.d.ts.map +1 -0
  186. package/double-neighbor.mjs +10 -0
  187. package/double-neighbor.mjs.map +6 -0
  188. package/double.cjs +48 -0
  189. package/double.cjs.map +6 -0
  190. package/double.d.ts +77 -0
  191. package/double.d.ts.map +1 -0
  192. package/double.mjs +28 -0
  193. package/double.mjs.map +6 -0
  194. package/hex-contains-point.cjs +99 -0
  195. package/hex-contains-point.cjs.map +6 -0
  196. package/hex-contains-point.d.ts +16 -0
  197. package/hex-contains-point.d.ts.map +1 -0
  198. package/hex-contains-point.mjs +80 -0
  199. package/hex-contains-point.mjs.map +6 -0
  200. package/hex-distance.cjs +36 -0
  201. package/hex-distance.cjs.map +6 -0
  202. package/hex-distance.d.ts +11 -0
  203. package/hex-distance.d.ts.map +1 -0
  204. package/hex-distance.mjs +17 -0
  205. package/hex-distance.mjs.map +6 -0
  206. package/hex-reachable.cjs +55 -0
  207. package/hex-reachable.cjs.map +6 -0
  208. package/hex-reachable.d.ts +14 -0
  209. package/hex-reachable.d.ts.map +1 -0
  210. package/hex-reachable.mjs +36 -0
  211. package/hex-reachable.mjs.map +6 -0
  212. package/hex-system.cjs +78 -0
  213. package/hex-system.cjs.map +6 -0
  214. package/hex-system.d.ts +44 -0
  215. package/hex-system.d.ts.map +1 -0
  216. package/hex-system.mjs +58 -0
  217. package/hex-system.mjs.map +6 -0
  218. package/hexes-within.cjs +31 -0
  219. package/hexes-within.cjs.map +6 -0
  220. package/hexes-within.d.ts +6 -0
  221. package/hexes-within.d.ts.map +1 -0
  222. package/hexes-within.mjs +12 -0
  223. package/hexes-within.mjs.map +6 -0
  224. package/index.cjs +74 -0
  225. package/index.cjs.map +6 -0
  226. package/index.d.ts +57 -0
  227. package/index.d.ts.map +1 -0
  228. package/index.mjs +57 -0
  229. package/index.mjs.map +6 -0
  230. package/lerp.cjs +28 -0
  231. package/lerp.cjs.map +6 -0
  232. package/lerp.d.ts +5 -0
  233. package/lerp.d.ts.map +1 -0
  234. package/lerp.mjs +9 -0
  235. package/lerp.mjs.map +6 -0
  236. package/offset-distance.cjs +33 -0
  237. package/offset-distance.cjs.map +6 -0
  238. package/offset-distance.d.ts +3 -0
  239. package/offset-distance.d.ts.map +1 -0
  240. package/offset-distance.mjs +14 -0
  241. package/offset-distance.mjs.map +6 -0
  242. package/offset-from-qrs.cjs +70 -0
  243. package/offset-from-qrs.cjs.map +6 -0
  244. package/offset-from-qrs.d.ts +7 -0
  245. package/offset-from-qrs.d.ts.map +1 -0
  246. package/offset-from-qrs.mjs +51 -0
  247. package/offset-from-qrs.mjs.map +6 -0
  248. package/offset-neighbor.cjs +54 -0
  249. package/offset-neighbor.cjs.map +6 -0
  250. package/offset-neighbor.d.ts +3 -0
  251. package/offset-neighbor.d.ts.map +1 -0
  252. package/offset-neighbor.mjs +35 -0
  253. package/offset-neighbor.mjs.map +6 -0
  254. package/offset.cjs +61 -0
  255. package/offset.cjs.map +6 -0
  256. package/offset.d.ts +34 -0
  257. package/offset.d.ts.map +1 -0
  258. package/offset.mjs +42 -0
  259. package/offset.mjs.map +6 -0
  260. package/orientation.cjs +54 -0
  261. package/orientation.cjs.map +6 -0
  262. package/orientation.d.ts +36 -0
  263. package/orientation.d.ts.map +1 -0
  264. package/orientation.mjs +34 -0
  265. package/orientation.mjs.map +6 -0
  266. package/package.json +398 -0
  267. package/pixel-from-qrs.cjs +66 -0
  268. package/pixel-from-qrs.cjs.map +6 -0
  269. package/pixel-from-qrs.d.ts +10 -0
  270. package/pixel-from-qrs.d.ts.map +1 -0
  271. package/pixel-from-qrs.mjs +47 -0
  272. package/pixel-from-qrs.mjs.map +6 -0
  273. package/point.cjs +17 -0
  274. package/point.cjs.map +6 -0
  275. package/point.d.ts +5 -0
  276. package/point.d.ts.map +1 -0
  277. package/point.mjs +1 -0
  278. package/point.mjs.map +6 -0
  279. package/qrs-eq.cjs +26 -0
  280. package/qrs-eq.cjs.map +6 -0
  281. package/qrs-eq.d.ts +3 -0
  282. package/qrs-eq.d.ts.map +1 -0
  283. package/qrs-eq.mjs +7 -0
  284. package/qrs-eq.mjs.map +6 -0
  285. package/qrs-from-double.cjs +36 -0
  286. package/qrs-from-double.cjs.map +6 -0
  287. package/qrs-from-double.d.ts +5 -0
  288. package/qrs-from-double.d.ts.map +1 -0
  289. package/qrs-from-double.mjs +17 -0
  290. package/qrs-from-double.mjs.map +6 -0
  291. package/qrs-from-pixel.cjs +50 -0
  292. package/qrs-from-pixel.cjs.map +6 -0
  293. package/qrs-from-pixel.d.ts +12 -0
  294. package/qrs-from-pixel.d.ts.map +1 -0
  295. package/qrs-from-pixel.mjs +31 -0
  296. package/qrs-from-pixel.mjs.map +6 -0
  297. package/qrs-hash-code.cjs +41 -0
  298. package/qrs-hash-code.cjs.map +6 -0
  299. package/qrs-hash-code.d.ts +7 -0
  300. package/qrs-hash-code.d.ts.map +1 -0
  301. package/qrs-hash-code.mjs +22 -0
  302. package/qrs-hash-code.mjs.map +6 -0
  303. package/qrs-intersection.cjs +44 -0
  304. package/qrs-intersection.cjs.map +6 -0
  305. package/qrs-intersection.d.ts +3 -0
  306. package/qrs-intersection.d.ts.map +1 -0
  307. package/qrs-intersection.mjs +25 -0
  308. package/qrs-intersection.mjs.map +6 -0
  309. package/qrs-range.cjs +38 -0
  310. package/qrs-range.cjs.map +6 -0
  311. package/qrs-range.d.ts +6 -0
  312. package/qrs-range.d.ts.map +1 -0
  313. package/qrs-range.mjs +19 -0
  314. package/qrs-range.mjs.map +6 -0
  315. package/qrs-ring.cjs +50 -0
  316. package/qrs-ring.cjs.map +6 -0
  317. package/qrs-ring.d.ts +3 -0
  318. package/qrs-ring.d.ts.map +1 -0
  319. package/qrs-ring.mjs +31 -0
  320. package/qrs-ring.mjs.map +6 -0
  321. package/qrs-scale.cjs +30 -0
  322. package/qrs-scale.cjs.map +6 -0
  323. package/qrs-scale.d.ts +4 -0
  324. package/qrs-scale.d.ts.map +1 -0
  325. package/qrs-scale.mjs +11 -0
  326. package/qrs-scale.mjs.map +6 -0
  327. package/qrs-spiral.cjs +36 -0
  328. package/qrs-spiral.cjs.map +6 -0
  329. package/qrs-spiral.d.ts +3 -0
  330. package/qrs-spiral.d.ts.map +1 -0
  331. package/qrs-spiral.mjs +17 -0
  332. package/qrs-spiral.mjs.map +6 -0
  333. package/qrs-subtract.cjs +31 -0
  334. package/qrs-subtract.cjs.map +6 -0
  335. package/qrs-subtract.d.ts +4 -0
  336. package/qrs-subtract.d.ts.map +1 -0
  337. package/qrs-subtract.mjs +12 -0
  338. package/qrs-subtract.mjs.map +6 -0
  339. package/qrs.cjs +28 -0
  340. package/qrs.cjs.map +6 -0
  341. package/qrs.d.ts +36 -0
  342. package/qrs.d.ts.map +1 -0
  343. package/qrs.mjs +9 -0
  344. package/qrs.mjs.map +6 -0
@@ -0,0 +1,8 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { axialAdd } from "./axial-add.mjs";
4
+ const axialNeighbor = /* @__PURE__ */ __name((axial, direction) => axialAdd(axial, direction), "axialNeighbor");
5
+ export {
6
+ axialNeighbor
7
+ };
8
+ //# sourceMappingURL=axial-neighbor.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-neighbor.ts"],
4
+ "mappings": ";;AAAA,SAAS,gBAAgB;AAGlB,MAAM,gBAAgB,wBAAC,OAAmB,cAA0C,SAAS,OAAO,SAAS,GAAvF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var axial_range_exports = {};
21
+ __export(axial_range_exports, {
22
+ axialRange: () => axialRange
23
+ });
24
+ module.exports = __toCommonJS(axial_range_exports);
25
+ var import_axial_add = require("./axial-add.cjs");
26
+ var import_axial = require("./axial.cjs");
27
+ var import_qrs_range = require("./qrs-range.cjs");
28
+ const axialRange = /* @__PURE__ */ __name((center, radius) => (0, import_qrs_range.qrsRange)(import_axial_add.axialAdd, import_axial.axialFromQR, center, radius), "axialRange");
29
+ //# sourceMappingURL=axial-range.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-range.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAyB;AACzB,mBAA4B;AAE5B,uBAAyB;AAElB,MAAM,aAAa,wBACzB,QACA,eACkB,2BAAqB,2BAAU,0BAAa,QAAQ,MAAM,GAHnD;",
5
+ "names": []
6
+ }
@@ -0,0 +1,3 @@
1
+ import type { AxialPoint } from "./axial.js";
2
+ export declare const axialRange: (center: AxialPoint, radius: number) => AxialPoint[];
3
+ //# sourceMappingURL=axial-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axial-range.d.ts","sourceRoot":"","sources":["../../../src/packages/hexgrid/axial-range.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,eAAO,MAAM,UAAU,GACtB,QAAQ,UAAU,EAClB,QAAQ,MAAM,KACZ,UAAU,EAAiE,CAAC"}
@@ -0,0 +1,10 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { axialAdd } from "./axial-add.mjs";
4
+ import { axialFromQR } from "./axial.mjs";
5
+ import { qrsRange } from "./qrs-range.mjs";
6
+ const axialRange = /* @__PURE__ */ __name((center, radius) => qrsRange(axialAdd, axialFromQR, center, radius), "axialRange");
7
+ export {
8
+ axialRange
9
+ };
10
+ //# sourceMappingURL=axial-range.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-range.ts"],
4
+ "mappings": ";;AAAA,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAE5B,SAAS,gBAAgB;AAElB,MAAM,aAAa,wBACzB,QACA,WACkB,SAAqB,UAAU,aAAa,QAAQ,MAAM,GAHnD;",
5
+ "names": []
6
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var axial_round_exports = {};
21
+ __export(axial_round_exports, {
22
+ axialRound: () => axialRound
23
+ });
24
+ module.exports = __toCommonJS(axial_round_exports);
25
+ var import_axial_from_cube = require("./axial-from-cube.cjs");
26
+ var import_cube_from_axial = require("./cube-from-axial.cjs");
27
+ var import_cube_round = require("./cube-round.cjs");
28
+ const axialRound = /* @__PURE__ */ __name((axial) => {
29
+ return (0, import_axial_from_cube.axialFromCube)((0, import_cube_round.cubeRound)((0, import_cube_from_axial.cubeFromAxial)(axial)));
30
+ }, "axialRound");
31
+ //# sourceMappingURL=axial-round.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-round.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA8B;AAE9B,6BAA8B;AAC9B,wBAA0B;AAEnB,MAAM,aAAa,wBAAC,UAAkC;AAC5D,aAAO,0CAAc,iCAAU,sCAAc,KAAK,CAAC,CAAC;AACrD,GAF0B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,3 @@
1
+ import type { AxialPoint } from "./axial.js";
2
+ export declare const axialRound: (axial: AxialPoint) => AxialPoint;
3
+ //# sourceMappingURL=axial-round.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axial-round.d.ts","sourceRoot":"","sources":["../../../src/packages/hexgrid/axial-round.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,eAAO,MAAM,UAAU,GAAI,OAAO,UAAU,KAAG,UAE9C,CAAC"}
@@ -0,0 +1,12 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { axialFromCube } from "./axial-from-cube.mjs";
4
+ import { cubeFromAxial } from "./cube-from-axial.mjs";
5
+ import { cubeRound } from "./cube-round.mjs";
6
+ const axialRound = /* @__PURE__ */ __name((axial) => {
7
+ return axialFromCube(cubeRound(cubeFromAxial(axial)));
8
+ }, "axialRound");
9
+ export {
10
+ axialRound
11
+ };
12
+ //# sourceMappingURL=axial-round.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-round.ts"],
4
+ "mappings": ";;AAAA,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAEnB,MAAM,aAAa,wBAAC,UAAkC;AAC5D,SAAO,cAAc,UAAU,cAAc,KAAK,CAAC,CAAC;AACrD,GAF0B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var axial_subtract_exports = {};
21
+ __export(axial_subtract_exports, {
22
+ axialSubtract: () => axialSubtract
23
+ });
24
+ module.exports = __toCommonJS(axial_subtract_exports);
25
+ var import_axial = require("./axial.cjs");
26
+ var import_qrs_subtract = require("./qrs-subtract.cjs");
27
+ const axialSubtract = /* @__PURE__ */ __name((left, right) => (0, import_qrs_subtract.qrsSubtract)(left, right, import_axial.axialFromQR), "axialSubtract");
28
+ //# sourceMappingURL=axial-subtract.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-subtract.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,0BAA4B;AAKrB,MAAM,gBAAgB,wBAAC,MAAkB,cAAkC,iCAAY,MAAM,OAAO,wBAAW,GAAzF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,6 @@
1
+ import { type AxialPoint } from "./axial.js";
2
+ /**
3
+ * Subtract one axial point from another.
4
+ */
5
+ export declare const axialSubtract: (left: AxialPoint, right: AxialPoint) => AxialPoint;
6
+ //# sourceMappingURL=axial-subtract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axial-subtract.d.ts","sourceRoot":"","sources":["../../../src/packages/hexgrid/axial-subtract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAAmD,CAAC"}
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { axialFromQR } from "./axial.mjs";
4
+ import { qrsSubtract } from "./qrs-subtract.mjs";
5
+ const axialSubtract = /* @__PURE__ */ __name((left, right) => qrsSubtract(left, right, axialFromQR), "axialSubtract");
6
+ export {
7
+ axialSubtract
8
+ };
9
+ //# sourceMappingURL=axial-subtract.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial-subtract.ts"],
4
+ "mappings": ";;AAAA,SAAS,mBAAoC;AAC7C,SAAS,mBAAmB;AAKrB,MAAM,gBAAgB,wBAAC,MAAkB,UAAkC,YAAY,MAAM,OAAO,WAAW,GAAzF;",
5
+ "names": []
6
+ }
package/axial.cjs ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var axial_exports = {};
21
+ __export(axial_exports, {
22
+ AXIAL_DIRECTIONS: () => AXIAL_DIRECTIONS,
23
+ AXIAL_EPSILON: () => AXIAL_EPSILON,
24
+ AXIAL_FLAT_N: () => AXIAL_FLAT_N,
25
+ AXIAL_FLAT_NE: () => AXIAL_FLAT_NE,
26
+ AXIAL_FLAT_NW: () => AXIAL_FLAT_NW,
27
+ AXIAL_FLAT_S: () => AXIAL_FLAT_S,
28
+ AXIAL_FLAT_SE: () => AXIAL_FLAT_SE,
29
+ AXIAL_FLAT_SW: () => AXIAL_FLAT_SW,
30
+ AXIAL_ORIGIN: () => AXIAL_ORIGIN,
31
+ AXIAL_POINTY_E: () => AXIAL_POINTY_E,
32
+ AXIAL_POINTY_NE: () => AXIAL_POINTY_NE,
33
+ AXIAL_POINTY_NW: () => AXIAL_POINTY_NW,
34
+ AXIAL_POINTY_SE: () => AXIAL_POINTY_SE,
35
+ AXIAL_POINTY_SW: () => AXIAL_POINTY_SW,
36
+ AXIAL_POINTY_W: () => AXIAL_POINTY_W,
37
+ axialFromQR: () => axialFromQR,
38
+ stringifyAxial: () => stringifyAxial
39
+ });
40
+ module.exports = __toCommonJS(axial_exports);
41
+ var import_hex_system = require("./hex-system.cjs");
42
+ const AXIAL_FLAT_SE = Object.freeze({ q: 1, r: 0, system: import_hex_system.AXIAL });
43
+ const AXIAL_FLAT_NE = Object.freeze({ q: 1, r: -1, system: import_hex_system.AXIAL });
44
+ const AXIAL_FLAT_N = Object.freeze({ q: 0, r: -1, system: import_hex_system.AXIAL });
45
+ const AXIAL_FLAT_NW = Object.freeze({ q: -1, r: 0, system: import_hex_system.AXIAL });
46
+ const AXIAL_FLAT_SW = Object.freeze({ q: -1, r: 1, system: import_hex_system.AXIAL });
47
+ const AXIAL_FLAT_S = Object.freeze({ q: 0, r: 1, system: import_hex_system.AXIAL });
48
+ const AXIAL_POINTY_E = AXIAL_FLAT_SE;
49
+ const AXIAL_POINTY_NE = AXIAL_FLAT_NE;
50
+ const AXIAL_POINTY_NW = AXIAL_FLAT_N;
51
+ const AXIAL_POINTY_W = AXIAL_FLAT_NW;
52
+ const AXIAL_POINTY_SW = AXIAL_FLAT_SW;
53
+ const AXIAL_POINTY_SE = AXIAL_FLAT_S;
54
+ const AXIAL_DIRECTIONS = Object.freeze([
55
+ AXIAL_FLAT_SE,
56
+ AXIAL_FLAT_NE,
57
+ AXIAL_FLAT_N,
58
+ AXIAL_FLAT_NW,
59
+ AXIAL_FLAT_SW,
60
+ AXIAL_FLAT_S
61
+ ]);
62
+ const axialFromQR = /* @__PURE__ */ __name((q, r) => ({ q, r, system: import_hex_system.AXIAL }), "axialFromQR");
63
+ const stringifyAxial = /* @__PURE__ */ __name(({ q, r }) => `Axial<${q},${r}>`, "stringifyAxial");
64
+ const AXIAL_ORIGIN = Object.freeze({ q: 0, r: 0, system: import_hex_system.AXIAL });
65
+ const AXIAL_EPSILON = Object.freeze({ q: 1e-6, r: 1e-6, system: import_hex_system.AXIAL });
66
+ //# sourceMappingURL=axial.cjs.map
package/axial.cjs.map ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AAUf,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,wBAAM,CAA+B;AAC/F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,wBAAM,CAA+B;AAChG,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,wBAAM,CAA+B;AAC/F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,wBAAM,CAA+B;AAChG,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,wBAAM,CAA+B;AAChG,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,wBAAM,CAA+B;AAE9F,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AAIxB,MAAM,mBAA+C,OAAO,OAAO;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,MAAM,cAAc,wBAAC,GAAW,OAA2B,EAAE,GAAG,GAAG,QAAQ,wBAAM,IAA7D;AAEpB,MAAM,iBAAiB,wBAAC,EAAE,GAAG,EAAE,MAAyC,SAAS,CAAC,IAAI,CAAC,KAAhE;AAIvB,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,wBAAM,CAA+B;AAC9F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,QAAQ,wBAAM,CAA+B;",
5
+ "names": []
6
+ }
package/axial.d.ts ADDED
@@ -0,0 +1,83 @@
1
+ import type { Axial } from "./hex-system.js";
2
+ import type { BareQRSPoint, QRSPoint } from "./qrs.js";
3
+ /**
4
+ * Axial coordinates don't store the `s` coordinate, as it
5
+ * can always be calculated via `q + r + s = 0`.
6
+ */
7
+ export type AxialPoint = QRSPoint<Axial>;
8
+ export declare const AXIAL_FLAT_SE: Readonly<{
9
+ readonly q: 1;
10
+ readonly r: 0;
11
+ readonly system: "axial";
12
+ }>;
13
+ export declare const AXIAL_FLAT_NE: Readonly<{
14
+ readonly q: 1;
15
+ readonly r: -1;
16
+ readonly system: "axial";
17
+ }>;
18
+ export declare const AXIAL_FLAT_N: Readonly<{
19
+ readonly q: 0;
20
+ readonly r: -1;
21
+ readonly system: "axial";
22
+ }>;
23
+ export declare const AXIAL_FLAT_NW: Readonly<{
24
+ readonly q: -1;
25
+ readonly r: 0;
26
+ readonly system: "axial";
27
+ }>;
28
+ export declare const AXIAL_FLAT_SW: Readonly<{
29
+ readonly q: -1;
30
+ readonly r: 1;
31
+ readonly system: "axial";
32
+ }>;
33
+ export declare const AXIAL_FLAT_S: Readonly<{
34
+ readonly q: 0;
35
+ readonly r: 1;
36
+ readonly system: "axial";
37
+ }>;
38
+ export declare const AXIAL_POINTY_E: Readonly<{
39
+ readonly q: 1;
40
+ readonly r: 0;
41
+ readonly system: "axial";
42
+ }>;
43
+ export declare const AXIAL_POINTY_NE: Readonly<{
44
+ readonly q: 1;
45
+ readonly r: -1;
46
+ readonly system: "axial";
47
+ }>;
48
+ export declare const AXIAL_POINTY_NW: Readonly<{
49
+ readonly q: 0;
50
+ readonly r: -1;
51
+ readonly system: "axial";
52
+ }>;
53
+ export declare const AXIAL_POINTY_W: Readonly<{
54
+ readonly q: -1;
55
+ readonly r: 0;
56
+ readonly system: "axial";
57
+ }>;
58
+ export declare const AXIAL_POINTY_SW: Readonly<{
59
+ readonly q: -1;
60
+ readonly r: 1;
61
+ readonly system: "axial";
62
+ }>;
63
+ export declare const AXIAL_POINTY_SE: Readonly<{
64
+ readonly q: 0;
65
+ readonly r: 1;
66
+ readonly system: "axial";
67
+ }>;
68
+ export type AxialDirection = typeof AXIAL_POINTY_E | typeof AXIAL_POINTY_NE | typeof AXIAL_POINTY_NW | typeof AXIAL_POINTY_W | typeof AXIAL_POINTY_SW | typeof AXIAL_POINTY_SE;
69
+ export declare const AXIAL_DIRECTIONS: Readonly<AxialDirection[]>;
70
+ export declare const axialFromQR: (q: number, r: number) => AxialPoint;
71
+ export declare const stringifyAxial: ({ q, r }: AxialPoint | BareQRSPoint) => string;
72
+ export type AxialTuple = [q: number, r: number];
73
+ export declare const AXIAL_ORIGIN: Readonly<{
74
+ readonly q: 0;
75
+ readonly r: 0;
76
+ readonly system: "axial";
77
+ }>;
78
+ export declare const AXIAL_EPSILON: Readonly<{
79
+ readonly q: 0.000001;
80
+ readonly r: 0.000001;
81
+ readonly system: "axial";
82
+ }>;
83
+ //# sourceMappingURL=axial.d.ts.map
package/axial.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axial.d.ts","sourceRoot":"","sources":["../../../src/packages/hexgrid/axial.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEzC,eAAO,MAAM,aAAa;;;;EAA6E,CAAC;AACxG,eAAO,MAAM,aAAa;;;;EAA8E,CAAC;AACzG,eAAO,MAAM,YAAY;;;;EAA8E,CAAC;AACxG,eAAO,MAAM,aAAa;;;;EAA8E,CAAC;AACzG,eAAO,MAAM,aAAa;;;;EAA8E,CAAC;AACzG,eAAO,MAAM,YAAY;;;;EAA6E,CAAC;AAEvG,eAAO,MAAM,cAAc;;;;EAAgB,CAAC;AAC5C,eAAO,MAAM,eAAe;;;;EAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe;;;;EAAe,CAAC;AAC5C,eAAO,MAAM,cAAc;;;;EAAgB,CAAC;AAC5C,eAAO,MAAM,eAAe;;;;EAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe;;;;EAAe,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,GAAG,OAAO,eAAe,GAAG,OAAO,eAAe,GAAG,OAAO,cAAc,GAAG,OAAO,eAAe,GAAG,OAAO,eAAe,CAAC;AAE/K,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,cAAc,EAAE,CAOtD,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,UAAuC,CAAC;AAE3F,eAAO,MAAM,cAAc,GAAI,UAAU,UAAU,GAAG,YAAY,KAAG,MAA4B,CAAC;AAElG,MAAM,MAAM,UAAU,GAAG,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAE,CAAC;AAElD,eAAO,MAAM,YAAY;;;;EAA6E,CAAC;AACvG,eAAO,MAAM,aAAa;;;;EAAmF,CAAC"}
package/axial.mjs ADDED
@@ -0,0 +1,47 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { AXIAL } from "./hex-system.mjs";
4
+ const AXIAL_FLAT_SE = Object.freeze({ q: 1, r: 0, system: AXIAL });
5
+ const AXIAL_FLAT_NE = Object.freeze({ q: 1, r: -1, system: AXIAL });
6
+ const AXIAL_FLAT_N = Object.freeze({ q: 0, r: -1, system: AXIAL });
7
+ const AXIAL_FLAT_NW = Object.freeze({ q: -1, r: 0, system: AXIAL });
8
+ const AXIAL_FLAT_SW = Object.freeze({ q: -1, r: 1, system: AXIAL });
9
+ const AXIAL_FLAT_S = Object.freeze({ q: 0, r: 1, system: AXIAL });
10
+ const AXIAL_POINTY_E = AXIAL_FLAT_SE;
11
+ const AXIAL_POINTY_NE = AXIAL_FLAT_NE;
12
+ const AXIAL_POINTY_NW = AXIAL_FLAT_N;
13
+ const AXIAL_POINTY_W = AXIAL_FLAT_NW;
14
+ const AXIAL_POINTY_SW = AXIAL_FLAT_SW;
15
+ const AXIAL_POINTY_SE = AXIAL_FLAT_S;
16
+ const AXIAL_DIRECTIONS = Object.freeze([
17
+ AXIAL_FLAT_SE,
18
+ AXIAL_FLAT_NE,
19
+ AXIAL_FLAT_N,
20
+ AXIAL_FLAT_NW,
21
+ AXIAL_FLAT_SW,
22
+ AXIAL_FLAT_S
23
+ ]);
24
+ const axialFromQR = /* @__PURE__ */ __name((q, r) => ({ q, r, system: AXIAL }), "axialFromQR");
25
+ const stringifyAxial = /* @__PURE__ */ __name(({ q, r }) => `Axial<${q},${r}>`, "stringifyAxial");
26
+ const AXIAL_ORIGIN = Object.freeze({ q: 0, r: 0, system: AXIAL });
27
+ const AXIAL_EPSILON = Object.freeze({ q: 1e-6, r: 1e-6, system: AXIAL });
28
+ export {
29
+ AXIAL_DIRECTIONS,
30
+ AXIAL_EPSILON,
31
+ AXIAL_FLAT_N,
32
+ AXIAL_FLAT_NE,
33
+ AXIAL_FLAT_NW,
34
+ AXIAL_FLAT_S,
35
+ AXIAL_FLAT_SE,
36
+ AXIAL_FLAT_SW,
37
+ AXIAL_ORIGIN,
38
+ AXIAL_POINTY_E,
39
+ AXIAL_POINTY_NE,
40
+ AXIAL_POINTY_NW,
41
+ AXIAL_POINTY_SE,
42
+ AXIAL_POINTY_SW,
43
+ AXIAL_POINTY_W,
44
+ axialFromQR,
45
+ stringifyAxial
46
+ };
47
+ //# sourceMappingURL=axial.mjs.map
package/axial.mjs.map ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/axial.ts"],
4
+ "mappings": ";;AAAA,SAAS,aAAa;AAUf,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,MAAM,CAA+B;AAC/F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,MAAM,CAA+B;AAChG,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,QAAQ,MAAM,CAA+B;AAC/F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,MAAM,CAA+B;AAChG,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,MAAM,CAA+B;AAChG,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,MAAM,CAA+B;AAE9F,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AAIxB,MAAM,mBAA+C,OAAO,OAAO;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAEM,MAAM,cAAc,wBAAC,GAAW,OAA2B,EAAE,GAAG,GAAG,QAAQ,MAAM,IAA7D;AAEpB,MAAM,iBAAiB,wBAAC,EAAE,GAAG,EAAE,MAAyC,SAAS,CAAC,IAAI,CAAC,KAAhE;AAIvB,MAAM,eAAe,OAAO,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,QAAQ,MAAM,CAA+B;AAC9F,MAAM,gBAAgB,OAAO,OAAO,EAAE,GAAG,MAAM,GAAG,MAAM,QAAQ,MAAM,CAA+B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var covering_grid_exports = {};
21
+ __export(covering_grid_exports, {
22
+ coverRect: () => coverRect,
23
+ svgForHexGrid: () => svgForHexGrid
24
+ });
25
+ module.exports = __toCommonJS(covering_grid_exports);
26
+ var import_foundation = require("@rickosborne/foundation");
27
+ var import_cube_round = require("./cube-round.cjs");
28
+ var import_cube = require("./cube.cjs");
29
+ var import_hex_contains_point = require("./hex-contains-point.cjs");
30
+ var import_pixel_from_qrs = require("./pixel-from-qrs.cjs");
31
+ var import_qrs_from_pixel = require("./qrs-from-pixel.cjs");
32
+ const coverRect = /* @__PURE__ */ __name((width, height, layout) => {
33
+ const rectCorners = [
34
+ { x: 0, y: 0 },
35
+ { x: width, y: 0 },
36
+ { x: width, y: height },
37
+ { x: 0, y: height }
38
+ ];
39
+ const cubeCorners = rectCorners.map((xy) => (0, import_cube_round.cubeRound)((0, import_qrs_from_pixel.qrsFromPixel)(xy, layout, import_cube.cubeFromQR)));
40
+ const points = [];
41
+ const [rMin, rMax] = (0, import_foundation.minMax)(cubeCorners.map(({ r }) => r));
42
+ const [qMin, qMax] = (0, import_foundation.minMax)(cubeCorners.map(({ q }) => q));
43
+ const originCube = cubeCorners[0];
44
+ const hexContains = (0, import_hex_contains_point.hexContainsChecker)((0, import_pixel_from_qrs.hexCorners)(originCube, layout));
45
+ const inRect = /* @__PURE__ */ __name((p) => p.x >= 0 && p.x <= width && p.y >= 0 && p.y <= height, "inRect");
46
+ const rectIn = /* @__PURE__ */ __name(({ x: px, y: py }) => rectCorners.some(({ x: rcx, y: rcy }) => hexContains({ x: rcx - px, y: rcy - py })), "rectIn");
47
+ for (let q = qMin; q <= qMax; q++) {
48
+ for (let r = rMin; r <= rMax; r++) {
49
+ const px = (0, import_pixel_from_qrs.pixelFromQRS)({ q, r }, layout);
50
+ const corners = (0, import_pixel_from_qrs.hexCorners)({ q, r }, layout);
51
+ if (corners.some(inRect) || rectIn(px)) {
52
+ points.push({ corners, q, r, x: px.x, y: px.y });
53
+ }
54
+ }
55
+ }
56
+ return points;
57
+ }, "coverRect");
58
+ const svgForHexGrid = /* @__PURE__ */ __name((grid, layout) => {
59
+ const { height, hexes, width } = grid;
60
+ const { resolution } = layout;
61
+ const lines = [
62
+ `<svg width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" xmlns="http://www.w3.org/2000/svg">`,
63
+ `<style>path { fill: #FFFFFF; stroke: #000000; stroke-width: 1; }</style>`
64
+ ];
65
+ for (const hex of hexes) {
66
+ const path = [
67
+ "M",
68
+ (0, import_foundation.roundTo)(hex.corners[0].x, resolution),
69
+ (0, import_foundation.roundTo)(hex.corners[0].y, resolution),
70
+ ...hex.corners.slice(1).map(({ x, y }) => `L ${(0, import_foundation.roundTo)(x, resolution)},${(0, import_foundation.roundTo)(y, resolution)}`),
71
+ "Z"
72
+ ].join(" ");
73
+ lines.push(`<path d="${path}" id="q-${hex.q}-r-${hex.r}" />`);
74
+ }
75
+ lines.push("</svg>");
76
+ return lines.join("\n");
77
+ }, "svgForHexGrid");
78
+ //# sourceMappingURL=covering-grid.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/covering-grid.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAgC;AAChC,wBAA0B;AAC1B,kBAA2B;AAC3B,gCAAmC;AAEnC,4BAAyC;AACzC,4BAA6B;AAWtB,MAAM,YAAY,wBACxB,OACA,QACA,WACgB;AAChB,QAAM,cAAyB;AAAA,IAC9B,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,IACb,EAAE,GAAG,OAAO,GAAG,EAAE;AAAA,IACjB,EAAE,GAAG,OAAO,GAAG,OAAO;AAAA,IACtB,EAAE,GAAG,GAAG,GAAG,OAAO;AAAA,EACnB;AACA,QAAM,cAAc,YAAY,IAAI,CAAC,WAAO,iCAAU,oCAAa,IAAI,QAAQ,sBAAU,CAAC,CAAC;AAC3F,QAAM,SAAqB,CAAC;AAC5B,QAAM,CAAE,MAAM,IAAK,QAAI,0BAAO,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAM,CAAE,MAAM,IAAK,QAAI,0BAAO,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAM,aAAa,YAAa,CAAE;AAClC,QAAM,kBAAc,kDAAmB,kCAAW,YAAY,MAAM,CAAC;AACrE,QAAM,SAAS,wBAAC,MAAe,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,QAA/D;AACf,QAAM,SAAS,wBAAC,EAAE,GAAG,IAAI,GAAG,GAAG,MAAwB,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,MAAM,YAAY,EAAE,GAAG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,GAA1H;AACf,WAAS,IAAI,MAAM,KAAK,MAAM,KAAK;AAClC,aAAS,IAAI,MAAM,KAAK,MAAM,KAAK;AAClC,YAAM,SAAK,oCAAa,EAAE,GAAG,EAAE,GAAG,MAAM;AACxC,YAAM,cAAU,kCAAW,EAAE,GAAG,EAAE,GAAG,MAAM;AAC3C,UAAI,QAAQ,KAAK,MAAM,KAAK,OAAO,EAAE,GAAG;AACvC,eAAO,KAAK,EAAE,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,MAChD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR,GA7ByB;AAmClB,MAAM,gBAAgB,wBAAC,MAA4D,WAA8B;AACvH,QAAM,EAAE,QAAQ,OAAO,MAAM,IAAI;AACjC,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,QAAkB;AAAA,IACvB,eAAgB,KAAM,aAAc,MAAO,kBAAmB,KAAM,IAAK,MAAO;AAAA,IAChF;AAAA,EACD;AACA,aAAW,OAAO,OAAO;AACxB,UAAM,OAAO;AAAA,MACZ;AAAA,UACA,2BAAQ,IAAI,QAAS,CAAE,EAAG,GAAG,UAAU;AAAA,UACvC,2BAAQ,IAAI,QAAS,CAAE,EAAG,GAAG,UAAU;AAAA,MACvC,GAAG,IAAI,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,SAAM,2BAAQ,GAAG,UAAU,CAAE,QAAK,2BAAQ,GAAG,UAAU,CAAE,EAAE;AAAA,MACrG;AAAA,IACD,EAAE,KAAK,GAAG;AACV,UAAM,KAAK,YAAa,IAAK,WAAY,IAAI,CAAE,MAAO,IAAI,CAAE,MAAM;AAAA,EACnE;AACA,QAAM,KAAK,QAAQ;AACnB,SAAO,MAAM,KAAK,IAAI;AACvB,GAnB6B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,20 @@
1
+ import type { HexLayout, PointXY } from "./orientation";
2
+ import type { BareQRSPoint } from "./qrs.js";
3
+ export interface QRWithXY extends PointXY, BareQRSPoint {
4
+ corners: PointXY[];
5
+ }
6
+ /**
7
+ * Generate a hex grid which completely covers a rectangle of the
8
+ * given dimensions.
9
+ */
10
+ export declare const coverRect: (width: number, height: number, layout: HexLayout) => QRWithXY[];
11
+ /**
12
+ * Build a rudimentary SVG for the described grid. Intended more
13
+ * for testing and visual inspection than for anything significant.
14
+ */
15
+ export declare const svgForHexGrid: (grid: {
16
+ height: number;
17
+ hexes: QRWithXY[];
18
+ width: number;
19
+ }, layout: HexLayout) => string;
20
+ //# sourceMappingURL=covering-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"covering-grid.d.ts","sourceRoot":"","sources":["../../../src/packages/hexgrid/covering-grid.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,QAAS,SAAQ,OAAO,EAAE,YAAY;IACtD,OAAO,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GACrB,OAAO,MAAM,EACb,QAAQ,MAAM,EACd,QAAQ,SAAS,KACf,QAAQ,EAyBV,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,QAAQ,SAAS,KAAG,MAmB7G,CAAC"}
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { minMax, roundTo } from "@rickosborne/foundation";
4
+ import { cubeRound } from "./cube-round.mjs";
5
+ import { cubeFromQR } from "./cube.mjs";
6
+ import { hexContainsChecker } from "./hex-contains-point.mjs";
7
+ import { hexCorners, pixelFromQRS } from "./pixel-from-qrs.mjs";
8
+ import { qrsFromPixel } from "./qrs-from-pixel.mjs";
9
+ const coverRect = /* @__PURE__ */ __name((width, height, layout) => {
10
+ const rectCorners = [
11
+ { x: 0, y: 0 },
12
+ { x: width, y: 0 },
13
+ { x: width, y: height },
14
+ { x: 0, y: height }
15
+ ];
16
+ const cubeCorners = rectCorners.map((xy) => cubeRound(qrsFromPixel(xy, layout, cubeFromQR)));
17
+ const points = [];
18
+ const [rMin, rMax] = minMax(cubeCorners.map(({ r }) => r));
19
+ const [qMin, qMax] = minMax(cubeCorners.map(({ q }) => q));
20
+ const originCube = cubeCorners[0];
21
+ const hexContains = hexContainsChecker(hexCorners(originCube, layout));
22
+ const inRect = /* @__PURE__ */ __name((p) => p.x >= 0 && p.x <= width && p.y >= 0 && p.y <= height, "inRect");
23
+ const rectIn = /* @__PURE__ */ __name(({ x: px, y: py }) => rectCorners.some(({ x: rcx, y: rcy }) => hexContains({ x: rcx - px, y: rcy - py })), "rectIn");
24
+ for (let q = qMin; q <= qMax; q++) {
25
+ for (let r = rMin; r <= rMax; r++) {
26
+ const px = pixelFromQRS({ q, r }, layout);
27
+ const corners = hexCorners({ q, r }, layout);
28
+ if (corners.some(inRect) || rectIn(px)) {
29
+ points.push({ corners, q, r, x: px.x, y: px.y });
30
+ }
31
+ }
32
+ }
33
+ return points;
34
+ }, "coverRect");
35
+ const svgForHexGrid = /* @__PURE__ */ __name((grid, layout) => {
36
+ const { height, hexes, width } = grid;
37
+ const { resolution } = layout;
38
+ const lines = [
39
+ `<svg width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" xmlns="http://www.w3.org/2000/svg">`,
40
+ `<style>path { fill: #FFFFFF; stroke: #000000; stroke-width: 1; }</style>`
41
+ ];
42
+ for (const hex of hexes) {
43
+ const path = [
44
+ "M",
45
+ roundTo(hex.corners[0].x, resolution),
46
+ roundTo(hex.corners[0].y, resolution),
47
+ ...hex.corners.slice(1).map(({ x, y }) => `L ${roundTo(x, resolution)},${roundTo(y, resolution)}`),
48
+ "Z"
49
+ ].join(" ");
50
+ lines.push(`<path d="${path}" id="q-${hex.q}-r-${hex.r}" />`);
51
+ }
52
+ lines.push("</svg>");
53
+ return lines.join("\n");
54
+ }, "svgForHexGrid");
55
+ export {
56
+ coverRect,
57
+ svgForHexGrid
58
+ };
59
+ //# sourceMappingURL=covering-grid.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/packages/hexgrid/covering-grid.ts"],
4
+ "mappings": ";;AAAA,SAAS,QAAQ,eAAe;AAChC,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AAEnC,SAAS,YAAY,oBAAoB;AACzC,SAAS,oBAAoB;AAWtB,MAAM,YAAY,wBACxB,OACA,QACA,WACgB;AAChB,QAAM,cAAyB;AAAA,IAC9B,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,IACb,EAAE,GAAG,OAAO,GAAG,EAAE;AAAA,IACjB,EAAE,GAAG,OAAO,GAAG,OAAO;AAAA,IACtB,EAAE,GAAG,GAAG,GAAG,OAAO;AAAA,EACnB;AACA,QAAM,cAAc,YAAY,IAAI,CAAC,OAAO,UAAU,aAAa,IAAI,QAAQ,UAAU,CAAC,CAAC;AAC3F,QAAM,SAAqB,CAAC;AAC5B,QAAM,CAAE,MAAM,IAAK,IAAI,OAAO,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAM,CAAE,MAAM,IAAK,IAAI,OAAO,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3D,QAAM,aAAa,YAAa,CAAE;AAClC,QAAM,cAAc,mBAAmB,WAAW,YAAY,MAAM,CAAC;AACrE,QAAM,SAAS,wBAAC,MAAe,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,KAAK,QAA/D;AACf,QAAM,SAAS,wBAAC,EAAE,GAAG,IAAI,GAAG,GAAG,MAAwB,YAAY,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,MAAM,YAAY,EAAE,GAAG,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,GAA1H;AACf,WAAS,IAAI,MAAM,KAAK,MAAM,KAAK;AAClC,aAAS,IAAI,MAAM,KAAK,MAAM,KAAK;AAClC,YAAM,KAAK,aAAa,EAAE,GAAG,EAAE,GAAG,MAAM;AACxC,YAAM,UAAU,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM;AAC3C,UAAI,QAAQ,KAAK,MAAM,KAAK,OAAO,EAAE,GAAG;AACvC,eAAO,KAAK,EAAE,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,MAChD;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR,GA7ByB;AAmClB,MAAM,gBAAgB,wBAAC,MAA4D,WAA8B;AACvH,QAAM,EAAE,QAAQ,OAAO,MAAM,IAAI;AACjC,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,QAAkB;AAAA,IACvB,eAAgB,KAAM,aAAc,MAAO,kBAAmB,KAAM,IAAK,MAAO;AAAA,IAChF;AAAA,EACD;AACA,aAAW,OAAO,OAAO;AACxB,UAAM,OAAO;AAAA,MACZ;AAAA,MACA,QAAQ,IAAI,QAAS,CAAE,EAAG,GAAG,UAAU;AAAA,MACvC,QAAQ,IAAI,QAAS,CAAE,EAAG,GAAG,UAAU;AAAA,MACvC,GAAG,IAAI,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,KAAM,QAAQ,GAAG,UAAU,CAAE,IAAK,QAAQ,GAAG,UAAU,CAAE,EAAE;AAAA,MACrG;AAAA,IACD,EAAE,KAAK,GAAG;AACV,UAAM,KAAK,YAAa,IAAK,WAAY,IAAI,CAAE,MAAO,IAAI,CAAE,MAAM;AAAA,EACnE;AACA,QAAM,KAAK,QAAQ;AACnB,SAAO,MAAM,KAAK,IAAI;AACvB,GAnB6B;",
5
+ "names": []
6
+ }