@rickosborne/hexgrid
Version:
Rick Osborne's collection of hexagonal grid-related code.
51 lines (50 loc) • 1.67 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var qrs_ring_exports = {};
__export(qrs_ring_exports, {
qrsRing: () => qrsRing
});
module.exports = __toCommonJS(qrs_ring_exports);
const RING_DIRECTIONS = Object.freeze([
{ q: 1, r: 0 },
{ q: 1, r: -1 },
{ q: 0, r: -1 },
{ q: -1, r: 0 },
{ q: -1, r: 1 },
{ q: 0, r: 1 }
]);
const qrsRing = /* @__PURE__ */ __name((center, radius, builder) => {
if (radius < 1) {
return [];
}
const points = [];
let q = -radius + center.q;
let r = radius + center.q;
for (let i = 0; i < 6; i++) {
const neighborDirection = RING_DIRECTIONS[i];
for (let j = 0; j < radius; j++) {
points.push(builder(q, r));
q += neighborDirection.q;
r += neighborDirection.r;
}
}
return points;
}, "qrsRing");
//# sourceMappingURL=qrs-ring.cjs.map