function rectMaxY(rect) { return rect.height + rect.y; } function rectMaxX(rect) { return rect.width + rect.x; } function isEmptyRect(rect) { return !rect.width || !rect.height; } // Returns true if the given rectangles intersect. function rects_intersect(rect1, rect2) { if (isEmptyRect(rect1) || isEmptyRect(rect2)) return false; return rect1.x < rectMaxX(rect2) && rect2.x < rectMaxX(rect1) && rect1.y < rectMaxY(rect2) && rect2.y < rectMaxY(rect1); } function rectToString(rect) { return `Location: (${rect.x}, ${rect.y}) Size: (${rect.width}, ${rect.height})`; }