# intersection method

Rectangle<T> intersection (Rectangle<T> other)
inherited

Computes the intersection of `this` and `other`.

The intersection of two axis-aligned rectangles, if any, is always another axis-aligned rectangle.

Returns the intersection of this and `other`, or `null` if they don't intersect.

## Implementation

    Rectangle<T> intersection(Rectangle<T> other) {
      var x0 = max(left, other.left);
      var x1 = min(left + width, other.left + other.width);

      if (x0 <= x1) {
        var y0 = max(top, other.top);
        var y1 = min(top + height, other.top + other.height);

        if (y0 <= y1) {
          return Rectangle<T>(x0, y0, x1 - x0, y1 - y0);
        }
      }
      return null;
    }