@override Point<T> get topLeft => new Point<T>(left, top);
set topLeft(Point<T> point) { width = width + left - point.x; height = height + top - point.y; left = point.x; top = point.y; }