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); |
| 11 const Size.fromWidth(this.width) : height = double.INFINITY; |
| 12 const Size.fromHeight(this.height) : width = double.INFINITY; |
| 13 |
10 final double width; | 14 final double width; |
11 final double height; | 15 final double height; |
12 | 16 |
13 const Size(this.width, this.height); | |
14 | |
15 const Size.fromWidth(this.width) : height = double.INFINITY; | |
16 const Size.fromHeight(this.height) : width = double.INFINITY; | |
17 | |
18 static const Size zero = const Size(0.0, 0.0); | 17 static const Size zero = const Size(0.0, 0.0); |
19 static const Size infinite = const Size(double.INFINITY, double.INFINITY); | 18 static const Size infinite = const Size(double.INFINITY, double.INFINITY); |
20 | 19 |
21 bool operator ==(other) => other is Size && width == other.width && height ==
other.height; | 20 bool operator ==(other) => other is Size && width == other.width && height ==
other.height; |
22 Size operator +(Size other) => new Size(width + other.width, height + other.he
ight); | 21 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); | 22 Size operator -(Size other) => new Size(width - other.width, height - other.he
ight); |
24 | 23 |
25 // does the equivalent of "return new Point(0,0) + this" | 24 // does the equivalent of "return new Point(0,0) + this" |
26 Point toPoint() => new Point(this.width, this.height); | 25 Point toPoint() => new Point(this.width, this.height); |
27 | 26 |
28 int get hashCode { | 27 int get hashCode { |
29 int result = 373; | 28 int result = 373; |
30 result = 37 * result + width.hashCode; | 29 result = 37 * result + width.hashCode; |
31 result = 37 * result + height.hashCode; | 30 result = 37 * result + height.hashCode; |
32 return result; | 31 return result; |
33 } | 32 } |
34 String toString() => "Size($width, $height)"; | 33 String toString() => "Size($width, $height)"; |
35 } | 34 } |
OLD | NEW |