bool overlaps(Rect other) { if (right <= other.left || other.right <= left) return false; if (bottom <= other.top || other.bottom <= top) return false; return true; }