function Rectangle(x = 0, y = 0, w = 0, h = 0) constructor { self.x = x; self.y = y; self.w = w; self.h = h; static hashOrigin = function() { return "x" + string(x) + "y" + string(y); } static clone = function() { return new Rectangle(x, y, w, h); } } function rectangleOverlap(rect1, rect2) { return rect1.x < rect2.x + rect2.w && rect1.x + rect1.w > rect2.x && rect1.y < rect2.y + rect2.h && rect1.y + rect1.h > rect2.y; }