Rectangle<num> bounds

Source

@override
Rectangle<num> get bounds {

  if (_children.length == 0) return super.bounds;

  num left = double.INFINITY;
  num top = double.INFINITY;
  num right = double.NEGATIVE_INFINITY;
  num bottom = double.NEGATIVE_INFINITY;

  for (int i = 0; i < _children.length; i++) {
    var rectangle = _children[i].boundsTransformed;

    if (rectangle.left < left) left = rectangle.left;
    if (rectangle.top < top) top = rectangle.top;
    if (rectangle.right > right) right = rectangle.right;
    if (rectangle.bottom > bottom) bottom = rectangle.bottom;
  }

  return new Rectangle<num>(left, top, right - left, bottom - top);
}