description

# MutableRectangle<T extends num> constructor

MutableRectangle<T extends num>(

1. T left,
2. T top,
3. T width,
4. T height,

)

Create a mutable rectangle spanned by `(left, top)` and `(left+width, top+height)`.

The rectangle contains the points with x-coordinate between `left` and `left + width`, and with y-coordinate between `top` and `top + height`, both inclusive.

The `width` and `height` should be non-negative. If `width` or `height` are negative, they are clamped to zero.

If `width` and `height` are zero, the "rectangle" comprises only the single point `(left, top)`.

Example:

    var rectangle = MutableRectangle(20, 50, 300, 600);
    print(rectangle); // Rectangle (20, 50) 300 x 600
    print(rectangle.left); // 20
    print(rectangle.top); // 50
    print(rectangle.right); // 320
    print(rectangle.bottom); // 650

    // Change rectangle width and height.
    rectangle.width = 200;
    rectangle.height = 100;

    print(rectangle); // Rectangle (20, 50) 200 x 100
    print(rectangle.left); // 20
    print(rectangle.top); // 50
    print(rectangle.right); // 220
    print(rectangle.bottom); // 150

Legacy: New usages of MutableRectangle are discouraged. To learn more, check out the MutableRectangle class API docs.

## Implementation

    MutableRectangle(this.left, this.top, T width, T height)
      : this._width = (width < 0)
            ? _clampToZero<T>(width)
            : (width + 0 as dynamic),
        this._height = (height < 0)
            ? _clampToZero<T>(height)
            : (height + 0 as dynamic);