@core-graphics/rect
Version:
JS utilities for managing rects
59 lines (47 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function getClosestSideToRect(ref, rect) {
if (rect.maxX <= ref.minX) return "left";
if (rect.minX >= ref.maxX) return "right";
if (rect.maxY <= ref.minY) return "top";
if (rect.minY >= ref.maxY) return "bottom";
return "left";
}
function getClosestSideToPoint(ref, point) {
var _point$clone = point.clone(),
x = _point$clone.x,
y = _point$clone.y;
var dl = x - ref.x;
var dr = ref.maxX - x;
var dt = y - ref.y;
var db = ref.maxY - y;
var closest = dl;
var side = "left";
if (dr < closest) {
closest = dr;
side = "right";
}
if (dt < closest) {
closest = dt;
side = "top";
}
if (db < closest) {
side = "bottom";
}
return side;
}
function getOppositeSide(side) {
switch (side) {
case "left":
return "right";
case "right":
return "left";
case "top":
return "bottom";
case "bottom":
return "top";
}
}
exports.getClosestSideToPoint = getClosestSideToPoint;
exports.getClosestSideToRect = getClosestSideToRect;
exports.getOppositeSide = getOppositeSide;