Index: client/base/Size.dart |
=================================================================== |
--- client/base/Size.dart (revision 4144) |
+++ client/base/Size.dart (working copy) |
@@ -1,138 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-/** |
- * A utility class for representing two-dimensional sizes. |
- */ |
-class Size { |
- num width; |
- num height; |
- |
- Size(num this.width, num this.height) { |
- } |
- |
- bool operator ==(Size other) { |
- return other !== null && width == other.width && height == other.height; |
- } |
- |
- /** |
- * Returns the area of the size (width * height). |
- */ |
- num area() { |
- return width * height; |
- } |
- |
- /** |
- * Returns the ratio of the size's width to its height. |
- */ |
- num aspectRatio() { |
- return width / height; |
- } |
- |
- /** |
- * Clamps the width and height parameters upward to integer values. |
- * Returns this size with ceil'd components. |
- */ |
- Size ceil() { |
- width = width.ceil(); |
- height = height.ceil(); |
- return this; |
- } |
- |
- /** |
- * Returns a new copy of the Size. |
- */ |
- Size clone() { |
- return new Size(width, height); |
- } |
- |
- /** |
- * Returns true if this Size is the same size or smaller than the |
- * [target] size in both dimensions. |
- */ |
- bool fitsInside(Size target) { |
- return width <= target.width && height <= target.height; |
- } |
- |
- /** |
- * Clamps the width and height parameters downward to integer values. |
- * Returns this size with floored components. |
- */ |
- Size floor() { |
- width = width.floor(); |
- height = height.floor(); |
- return this; |
- } |
- |
- /** |
- * Returns the longer of the two dimensions in the size. |
- */ |
- num getLongest() { |
- return Math.max(width, height); |
- } |
- |
- /** |
- * Returns the shorter of the two dimensions in the size. |
- */ |
- num getShortest() { |
- return Math.min(width, height); |
- } |
- |
- /** |
- * Returns true if the size has zero area, false if both dimensions |
- * are non-zero numbers. |
- */ |
- bool isEmpty() { |
- return area() == 0; |
- } |
- |
- /** |
- * Returns the perimeter of the size (width + height) * 2. |
- */ |
- num perimeter() { |
- return (width + height) * 2; |
- } |
- |
- /** |
- * Rounds the width and height parameters to integer values. |
- * Returns this size with rounded components. |
- */ |
- Size round() { |
- width = width.round(); |
- height = height.round(); |
- return this; |
- } |
- |
- /** |
- * Scales the size uniformly by a factor. |
- * [s] The scale factor. |
- * Returns this Size object after scaling. |
- */ |
- Size scale(num s) { |
- width *= s; |
- height *= s; |
- return this; |
- } |
- |
- /** |
- * Uniformly scales the size to fit inside the dimensions of a given size. The |
- * original aspect ratio will be preserved. |
- * |
- * This function assumes that both Sizes contain strictly positive dimensions. |
- * Returns this Size object, after optional scaling. |
- */ |
- Size scaleToFit(Size target) { |
- num s = aspectRatio() > target.aspectRatio() ? |
- target.width / width : target.height / height; |
- return scale(s); |
- } |
- |
- /** |
- * Returns a nice string representing size. |
- * Returns in the form (50 x 73). |
- */ |
- String toString() { |
- return "(${width} x ${height})"; |
- } |
-} |