@core-graphics/rect
Version:
JS utilities for managing rects
53 lines (43 loc) • 993 B
JavaScript
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";
}
}
export { getClosestSideToPoint, getClosestSideToRect, getOppositeSide };