OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 part of dart.sky; | 5 part of dart.sky; |
6 | 6 |
7 /// Holds a 2D floating-point size. | 7 /// Holds a 2D floating-point size. |
8 /// Think of this as a vector from Point(0,0) to Point(size.width, size.height) | 8 /// Think of this as a vector from Point(0,0) to Point(size.width, size.height) |
9 class Size { | 9 class Size { |
10 const Size(this.width, this.height); | 10 const Size(this.width, this.height); |
| 11 Size.copy(Size source) : width = source.width, height = source.height; |
11 const Size.fromWidth(this.width) : height = double.INFINITY; | 12 const Size.fromWidth(this.width) : height = double.INFINITY; |
12 const Size.fromHeight(this.height) : width = double.INFINITY; | 13 const Size.fromHeight(this.height) : width = double.INFINITY; |
13 | 14 |
14 final double width; | 15 final double width; |
15 final double height; | 16 final double height; |
16 | 17 |
17 static const Size zero = const Size(0.0, 0.0); | 18 static const Size zero = const Size(0.0, 0.0); |
18 static const Size infinite = const Size(double.INFINITY, double.INFINITY); | 19 static const Size infinite = const Size(double.INFINITY, double.INFINITY); |
19 | 20 |
20 bool operator ==(other) => other is Size && width == other.width && height ==
other.height; | 21 bool operator ==(other) => other is Size && width == other.width && height ==
other.height; |
21 Size operator +(Size other) => new Size(width + other.width, height + other.he
ight); | 22 Size operator +(Size other) => new Size(width + other.width, height + other.he
ight); |
22 Size operator -(Size other) => new Size(width - other.width, height - other.he
ight); | 23 Size operator -(Size other) => new Size(width - other.width, height - other.he
ight); |
23 | 24 |
24 // does the equivalent of "return new Point(0,0) + this" | 25 // does the equivalent of "return new Point(0,0) + this" |
25 Point toPoint() => new Point(this.width, this.height); | 26 Point toPoint() => new Point(this.width, this.height); |
26 | 27 |
27 int get hashCode { | 28 int get hashCode { |
28 int result = 373; | 29 int result = 373; |
29 result = 37 * result + width.hashCode; | 30 result = 37 * result + width.hashCode; |
30 result = 37 * result + height.hashCode; | 31 result = 37 * result + height.hashCode; |
31 return result; | 32 return result; |
32 } | 33 } |
33 String toString() => "Size($width, $height)"; | 34 String toString() => "Size($width, $height)"; |
34 } | 35 } |
OLD | NEW |