malwoden
Version:
   
69 lines • 2.07 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRing4 = exports.getRing8 = void 0;
function getRing8(originX, originY, range) {
if (range === 0)
return [{ x: originX, y: originY }];
var ring = [];
var maxX = originX + range;
var minX = originX - range;
var maxY = originY + range;
var minY = originY - range;
//Start at the 3 o'clock, (0 degrees), rotate all the way around
// Top Right Side, no corner
for (var x = maxX, y = originY; y > minY; y--) {
ring.push({ x: x, y: y });
}
// Top Side, right to left. Include top corners
for (var x = maxX, y = minY; x >= minX; x--) {
ring.push({ x: x, y: y });
}
// Left side, no corners
for (var x = minX, y = minY + 1; y < maxY; y++) {
ring.push({ x: x, y: y });
}
// Bottom side, corners
for (var x = minX, y = maxY; x <= maxX; x++) {
ring.push({ x: x, y: y });
}
// Right side back to to 0 degrees, no corner
for (var x = maxX, y = maxY - 1; y > originY; y--) {
ring.push({ x: x, y: y });
}
return ring;
}
exports.getRing8 = getRing8;
function getRing4(originX, originY, range) {
if (range === 0) {
return [
{
x: originX,
y: originY,
},
];
}
var ring = [];
var maxX = originX + range;
var minX = originX - range;
var maxY = originY + range;
var minY = originY - range;
// Top right arc
for (var x = maxX, y = originY; x > originX; x--, y--) {
ring.push({ x: x, y: y });
}
// Top left arc
for (var x = originX, y = minY; x > minX; x--, y++) {
ring.push({ x: x, y: y });
}
// Bottom left arc
for (var x = minX, y = originY; x < originX; x++, y++) {
ring.push({ x: x, y: y });
}
// Bottom right arc
for (var x = originX, y = maxY; x < maxX; x++, y--) {
ring.push({ x: x, y: y });
}
return ring;
}
exports.getRing4 = getRing4;
//# sourceMappingURL=get-ring.js.map