internal bool IntersectsWith(Rect rect) { if (Width < 0 || rect.Width < 0) { return false; } return (rect.X <= X + Width) && (rect.X + rect.Width >= X) && (rect.Y <= Y + Height) && (rect.Y + rect.Height >= Y); }