@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.
- package/README.md +2141 -0
- package/axial-add.cjs +30 -0
- package/axial-add.cjs.map +6 -0
- package/axial-add.d.ts +6 -0
- package/axial-add.d.ts.map +1 -0
- package/axial-add.mjs +11 -0
- package/axial-add.mjs.map +6 -0
- package/axial-from-cube.cjs +33 -0
- package/axial-from-cube.cjs.map +6 -0
- package/axial-from-cube.d.ts +7 -0
- package/axial-from-cube.d.ts.map +1 -0
- package/axial-from-cube.mjs +14 -0
- package/axial-from-cube.mjs.map +6 -0
- package/axial-from-double.cjs +30 -0
- package/axial-from-double.cjs.map +6 -0
- package/axial-from-double.d.ts +5 -0
- package/axial-from-double.d.ts.map +1 -0
- package/axial-from-double.mjs +11 -0
- package/axial-from-double.mjs.map +6 -0
- package/axial-from-offset.cjs +64 -0
- package/axial-from-offset.cjs.map +6 -0
- package/axial-from-offset.d.ts +4 -0
- package/axial-from-offset.d.ts.map +1 -0
- package/axial-from-offset.mjs +45 -0
- package/axial-from-offset.mjs.map +6 -0
- package/axial-intersection.cjs +28 -0
- package/axial-intersection.cjs.map +6 -0
- package/axial-intersection.d.ts +3 -0
- package/axial-intersection.d.ts.map +1 -0
- package/axial-intersection.mjs +9 -0
- package/axial-intersection.mjs.map +6 -0
- package/axial-lerp.cjs +32 -0
- package/axial-lerp.cjs.map +6 -0
- package/axial-lerp.d.ts +3 -0
- package/axial-lerp.d.ts.map +1 -0
- package/axial-lerp.mjs +13 -0
- package/axial-lerp.mjs.map +6 -0
- package/axial-line-draw.cjs +39 -0
- package/axial-line-draw.cjs.map +6 -0
- package/axial-line-draw.d.ts +3 -0
- package/axial-line-draw.d.ts.map +1 -0
- package/axial-line-draw.mjs +20 -0
- package/axial-line-draw.mjs.map +6 -0
- package/axial-neighbor.cjs +27 -0
- package/axial-neighbor.cjs.map +6 -0
- package/axial-neighbor.d.ts +3 -0
- package/axial-neighbor.d.ts.map +1 -0
- package/axial-neighbor.mjs +8 -0
- package/axial-neighbor.mjs.map +6 -0
- package/axial-range.cjs +29 -0
- package/axial-range.cjs.map +6 -0
- package/axial-range.d.ts +3 -0
- package/axial-range.d.ts.map +1 -0
- package/axial-range.mjs +10 -0
- package/axial-range.mjs.map +6 -0
- package/axial-round.cjs +31 -0
- package/axial-round.cjs.map +6 -0
- package/axial-round.d.ts +3 -0
- package/axial-round.d.ts.map +1 -0
- package/axial-round.mjs +12 -0
- package/axial-round.mjs.map +6 -0
- package/axial-subtract.cjs +28 -0
- package/axial-subtract.cjs.map +6 -0
- package/axial-subtract.d.ts +6 -0
- package/axial-subtract.d.ts.map +1 -0
- package/axial-subtract.mjs +9 -0
- package/axial-subtract.mjs.map +6 -0
- package/axial.cjs +66 -0
- package/axial.cjs.map +6 -0
- package/axial.d.ts +83 -0
- package/axial.d.ts.map +1 -0
- package/axial.mjs +47 -0
- package/axial.mjs.map +6 -0
- package/covering-grid.cjs +78 -0
- package/covering-grid.cjs.map +6 -0
- package/covering-grid.d.ts +20 -0
- package/covering-grid.d.ts.map +1 -0
- package/covering-grid.mjs +59 -0
- package/covering-grid.mjs.map +6 -0
- package/cube-add.cjs +32 -0
- package/cube-add.cjs.map +6 -0
- package/cube-add.d.ts +6 -0
- package/cube-add.d.ts.map +1 -0
- package/cube-add.mjs +13 -0
- package/cube-add.mjs.map +6 -0
- package/cube-distance.cjs +30 -0
- package/cube-distance.cjs.map +6 -0
- package/cube-distance.d.ts +6 -0
- package/cube-distance.d.ts.map +1 -0
- package/cube-distance.mjs +11 -0
- package/cube-distance.mjs.map +6 -0
- package/cube-from-axial.cjs +34 -0
- package/cube-from-axial.cjs.map +6 -0
- package/cube-from-axial.d.ts +7 -0
- package/cube-from-axial.d.ts.map +1 -0
- package/cube-from-axial.mjs +15 -0
- package/cube-from-axial.mjs.map +6 -0
- package/cube-from-double.cjs +30 -0
- package/cube-from-double.cjs.map +6 -0
- package/cube-from-double.d.ts +5 -0
- package/cube-from-double.d.ts.map +1 -0
- package/cube-from-double.mjs +11 -0
- package/cube-from-double.mjs.map +6 -0
- package/cube-heading.cjs +54 -0
- package/cube-heading.cjs.map +6 -0
- package/cube-heading.d.ts +3 -0
- package/cube-heading.d.ts.map +1 -0
- package/cube-heading.mjs +35 -0
- package/cube-heading.mjs.map +6 -0
- package/cube-intersection.cjs +28 -0
- package/cube-intersection.cjs.map +6 -0
- package/cube-intersection.d.ts +3 -0
- package/cube-intersection.d.ts.map +1 -0
- package/cube-intersection.mjs +9 -0
- package/cube-intersection.mjs.map +6 -0
- package/cube-lerp.cjs +34 -0
- package/cube-lerp.cjs.map +6 -0
- package/cube-lerp.d.ts +3 -0
- package/cube-lerp.d.ts.map +1 -0
- package/cube-lerp.mjs +15 -0
- package/cube-lerp.mjs.map +6 -0
- package/cube-line-draw.cjs +41 -0
- package/cube-line-draw.cjs.map +6 -0
- package/cube-line-draw.d.ts +3 -0
- package/cube-line-draw.d.ts.map +1 -0
- package/cube-line-draw.mjs +22 -0
- package/cube-line-draw.mjs.map +6 -0
- package/cube-neighbor.cjs +27 -0
- package/cube-neighbor.cjs.map +6 -0
- package/cube-neighbor.d.ts +6 -0
- package/cube-neighbor.d.ts.map +1 -0
- package/cube-neighbor.mjs +8 -0
- package/cube-neighbor.mjs.map +6 -0
- package/cube-range.cjs +29 -0
- package/cube-range.cjs.map +6 -0
- package/cube-range.d.ts +3 -0
- package/cube-range.d.ts.map +1 -0
- package/cube-range.mjs +10 -0
- package/cube-range.mjs.map +6 -0
- package/cube-rotate.cjs +40 -0
- package/cube-rotate.cjs.map +6 -0
- package/cube-rotate.d.ts +4 -0
- package/cube-rotate.d.ts.map +1 -0
- package/cube-rotate.mjs +21 -0
- package/cube-rotate.mjs.map +6 -0
- package/cube-round.cjs +46 -0
- package/cube-round.cjs.map +6 -0
- package/cube-round.d.ts +3 -0
- package/cube-round.d.ts.map +1 -0
- package/cube-round.mjs +27 -0
- package/cube-round.mjs.map +6 -0
- package/cube-subtract.cjs +33 -0
- package/cube-subtract.cjs.map +6 -0
- package/cube-subtract.d.ts +3 -0
- package/cube-subtract.d.ts.map +1 -0
- package/cube-subtract.mjs +14 -0
- package/cube-subtract.mjs.map +6 -0
- package/cube.cjs +82 -0
- package/cube.cjs.map +6 -0
- package/cube.d.ts +155 -0
- package/cube.d.ts.map +1 -0
- package/cube.mjs +63 -0
- package/cube.mjs.map +6 -0
- package/double-add.cjs +37 -0
- package/double-add.cjs.map +6 -0
- package/double-add.d.ts +4 -0
- package/double-add.d.ts.map +1 -0
- package/double-add.mjs +18 -0
- package/double-add.mjs.map +6 -0
- package/double-distance.cjs +36 -0
- package/double-distance.cjs.map +6 -0
- package/double-distance.d.ts +4 -0
- package/double-distance.d.ts.map +1 -0
- package/double-distance.mjs +17 -0
- package/double-distance.mjs.map +6 -0
- package/double-from-qrs.cjs +37 -0
- package/double-from-qrs.cjs.map +6 -0
- package/double-from-qrs.d.ts +5 -0
- package/double-from-qrs.d.ts.map +1 -0
- package/double-from-qrs.mjs +18 -0
- package/double-from-qrs.mjs.map +6 -0
- package/double-neighbor.cjs +29 -0
- package/double-neighbor.cjs.map +6 -0
- package/double-neighbor.d.ts +4 -0
- package/double-neighbor.d.ts.map +1 -0
- package/double-neighbor.mjs +10 -0
- package/double-neighbor.mjs.map +6 -0
- package/double.cjs +48 -0
- package/double.cjs.map +6 -0
- package/double.d.ts +77 -0
- package/double.d.ts.map +1 -0
- package/double.mjs +28 -0
- package/double.mjs.map +6 -0
- package/hex-contains-point.cjs +99 -0
- package/hex-contains-point.cjs.map +6 -0
- package/hex-contains-point.d.ts +16 -0
- package/hex-contains-point.d.ts.map +1 -0
- package/hex-contains-point.mjs +80 -0
- package/hex-contains-point.mjs.map +6 -0
- package/hex-distance.cjs +36 -0
- package/hex-distance.cjs.map +6 -0
- package/hex-distance.d.ts +11 -0
- package/hex-distance.d.ts.map +1 -0
- package/hex-distance.mjs +17 -0
- package/hex-distance.mjs.map +6 -0
- package/hex-reachable.cjs +55 -0
- package/hex-reachable.cjs.map +6 -0
- package/hex-reachable.d.ts +14 -0
- package/hex-reachable.d.ts.map +1 -0
- package/hex-reachable.mjs +36 -0
- package/hex-reachable.mjs.map +6 -0
- package/hex-system.cjs +78 -0
- package/hex-system.cjs.map +6 -0
- package/hex-system.d.ts +44 -0
- package/hex-system.d.ts.map +1 -0
- package/hex-system.mjs +58 -0
- package/hex-system.mjs.map +6 -0
- package/hexes-within.cjs +31 -0
- package/hexes-within.cjs.map +6 -0
- package/hexes-within.d.ts +6 -0
- package/hexes-within.d.ts.map +1 -0
- package/hexes-within.mjs +12 -0
- package/hexes-within.mjs.map +6 -0
- package/index.cjs +74 -0
- package/index.cjs.map +6 -0
- package/index.d.ts +57 -0
- package/index.d.ts.map +1 -0
- package/index.mjs +57 -0
- package/index.mjs.map +6 -0
- package/lerp.cjs +28 -0
- package/lerp.cjs.map +6 -0
- package/lerp.d.ts +5 -0
- package/lerp.d.ts.map +1 -0
- package/lerp.mjs +9 -0
- package/lerp.mjs.map +6 -0
- package/offset-distance.cjs +33 -0
- package/offset-distance.cjs.map +6 -0
- package/offset-distance.d.ts +3 -0
- package/offset-distance.d.ts.map +1 -0
- package/offset-distance.mjs +14 -0
- package/offset-distance.mjs.map +6 -0
- package/offset-from-qrs.cjs +70 -0
- package/offset-from-qrs.cjs.map +6 -0
- package/offset-from-qrs.d.ts +7 -0
- package/offset-from-qrs.d.ts.map +1 -0
- package/offset-from-qrs.mjs +51 -0
- package/offset-from-qrs.mjs.map +6 -0
- package/offset-neighbor.cjs +54 -0
- package/offset-neighbor.cjs.map +6 -0
- package/offset-neighbor.d.ts +3 -0
- package/offset-neighbor.d.ts.map +1 -0
- package/offset-neighbor.mjs +35 -0
- package/offset-neighbor.mjs.map +6 -0
- package/offset.cjs +61 -0
- package/offset.cjs.map +6 -0
- package/offset.d.ts +34 -0
- package/offset.d.ts.map +1 -0
- package/offset.mjs +42 -0
- package/offset.mjs.map +6 -0
- package/orientation.cjs +54 -0
- package/orientation.cjs.map +6 -0
- package/orientation.d.ts +36 -0
- package/orientation.d.ts.map +1 -0
- package/orientation.mjs +34 -0
- package/orientation.mjs.map +6 -0
- package/package.json +398 -0
- package/pixel-from-qrs.cjs +66 -0
- package/pixel-from-qrs.cjs.map +6 -0
- package/pixel-from-qrs.d.ts +10 -0
- package/pixel-from-qrs.d.ts.map +1 -0
- package/pixel-from-qrs.mjs +47 -0
- package/pixel-from-qrs.mjs.map +6 -0
- package/point.cjs +17 -0
- package/point.cjs.map +6 -0
- package/point.d.ts +5 -0
- package/point.d.ts.map +1 -0
- package/point.mjs +1 -0
- package/point.mjs.map +6 -0
- package/qrs-eq.cjs +26 -0
- package/qrs-eq.cjs.map +6 -0
- package/qrs-eq.d.ts +3 -0
- package/qrs-eq.d.ts.map +1 -0
- package/qrs-eq.mjs +7 -0
- package/qrs-eq.mjs.map +6 -0
- package/qrs-from-double.cjs +36 -0
- package/qrs-from-double.cjs.map +6 -0
- package/qrs-from-double.d.ts +5 -0
- package/qrs-from-double.d.ts.map +1 -0
- package/qrs-from-double.mjs +17 -0
- package/qrs-from-double.mjs.map +6 -0
- package/qrs-from-pixel.cjs +50 -0
- package/qrs-from-pixel.cjs.map +6 -0
- package/qrs-from-pixel.d.ts +12 -0
- package/qrs-from-pixel.d.ts.map +1 -0
- package/qrs-from-pixel.mjs +31 -0
- package/qrs-from-pixel.mjs.map +6 -0
- package/qrs-hash-code.cjs +41 -0
- package/qrs-hash-code.cjs.map +6 -0
- package/qrs-hash-code.d.ts +7 -0
- package/qrs-hash-code.d.ts.map +1 -0
- package/qrs-hash-code.mjs +22 -0
- package/qrs-hash-code.mjs.map +6 -0
- package/qrs-intersection.cjs +44 -0
- package/qrs-intersection.cjs.map +6 -0
- package/qrs-intersection.d.ts +3 -0
- package/qrs-intersection.d.ts.map +1 -0
- package/qrs-intersection.mjs +25 -0
- package/qrs-intersection.mjs.map +6 -0
- package/qrs-range.cjs +38 -0
- package/qrs-range.cjs.map +6 -0
- package/qrs-range.d.ts +6 -0
- package/qrs-range.d.ts.map +1 -0
- package/qrs-range.mjs +19 -0
- package/qrs-range.mjs.map +6 -0
- package/qrs-ring.cjs +50 -0
- package/qrs-ring.cjs.map +6 -0
- package/qrs-ring.d.ts +3 -0
- package/qrs-ring.d.ts.map +1 -0
- package/qrs-ring.mjs +31 -0
- package/qrs-ring.mjs.map +6 -0
- package/qrs-scale.cjs +30 -0
- package/qrs-scale.cjs.map +6 -0
- package/qrs-scale.d.ts +4 -0
- package/qrs-scale.d.ts.map +1 -0
- package/qrs-scale.mjs +11 -0
- package/qrs-scale.mjs.map +6 -0
- package/qrs-spiral.cjs +36 -0
- package/qrs-spiral.cjs.map +6 -0
- package/qrs-spiral.d.ts +3 -0
- package/qrs-spiral.d.ts.map +1 -0
- package/qrs-spiral.mjs +17 -0
- package/qrs-spiral.mjs.map +6 -0
- package/qrs-subtract.cjs +31 -0
- package/qrs-subtract.cjs.map +6 -0
- package/qrs-subtract.d.ts +4 -0
- package/qrs-subtract.d.ts.map +1 -0
- package/qrs-subtract.mjs +12 -0
- package/qrs-subtract.mjs.map +6 -0
- package/qrs.cjs +28 -0
- package/qrs.cjs.map +6 -0
- package/qrs.d.ts +36 -0
- package/qrs.d.ts.map +1 -0
- package/qrs.mjs +9 -0
- 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
|
package/axial-range.cjs
ADDED
|
@@ -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
|
package/axial-range.d.ts
ADDED
|
@@ -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"}
|
package/axial-range.mjs
ADDED
|
@@ -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
|
package/axial-round.cjs
ADDED
|
@@ -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
|
+
}
|
package/axial-round.d.ts
ADDED
|
@@ -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"}
|
package/axial-round.mjs
ADDED
|
@@ -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,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 @@
|
|
|
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
|
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
|
+
}
|