UNPKG

node-libpng

Version:

Unofficial bindings for node to libpng.

64 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRect = exports.rect = void 0; const xy_1 = require("./xy"); function rect(arg1, arg2, arg3, arg4) { let x, y, width, height; if (xy_1.isXY(arg1) && xy_1.isXY(arg2)) { x = arg1.x; y = arg1.y; width = arg2.x; height = arg2.y; } else { x = arg1; y = arg2; width = arg3; height = arg4; } const newRect = [x, y, width, height]; Object.defineProperty(newRect, "x", { get() { return this[0]; } }); Object.defineProperty(newRect, "y", { get() { return this[1]; } }); Object.defineProperty(newRect, "width", { get() { return this[2]; } }); Object.defineProperty(newRect, "height", { get() { return this[3]; } }); Object.defineProperty(newRect, "offset", { get() { return xy_1.xy(this[0], this[1]); } }); Object.defineProperty(newRect, "dimensions", { get() { return xy_1.xy(this[2], this[3]); } }); return newRect; } exports.rect = rect; /** * Checks if the given parameter is a rectangle. * * @param toCheck Parameter to check. * * @return `true` if the given parameter was a rectangle and `false` otherwise. */ function isRect(toCheck) { if (typeof toCheck !== "object" || !Array.isArray(toCheck)) { return false; } if (toCheck.length !== 4) { return false; } if (typeof toCheck.x !== "number") { return false; } if (typeof toCheck.y !== "number") { return false; } if (typeof toCheck.width !== "number") { return false; } if (typeof toCheck.height !== "number") { return false; } if (!xy_1.isXY(toCheck.offset)) { return false; } if (!xy_1.isXY(toCheck.dimensions)) { return false; } return true; } exports.isRect = isRect; //# sourceMappingURL=rect.js.map