OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Defines a simple integer vector class. This class is used to indicate a | 5 // Defines a simple integer vector class. This class is used to indicate a |
6 // distance in two dimensions between two points. Subtracting two points should | 6 // distance in two dimensions between two points. Subtracting two points should |
7 // produce a vector, and adding a vector to a point produces the point at the | 7 // produce a vector, and adding a vector to a point produces the point at the |
8 // vector's distance from the original point. | 8 // vector's distance from the original point. |
9 | 9 |
10 #ifndef UI_GFX_GEOMETRY_VECTOR2D_H_ | 10 #ifndef UI_GFX_GEOMETRY_VECTOR2D_H_ |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 | 53 |
54 // Gives the square of the diagonal length of the vector. Since this is | 54 // Gives the square of the diagonal length of the vector. Since this is |
55 // cheaper to compute than Length(), it is useful when you want to compare | 55 // cheaper to compute than Length(), it is useful when you want to compare |
56 // relative lengths of different vectors without needing the actual lengths. | 56 // relative lengths of different vectors without needing the actual lengths. |
57 int64 LengthSquared() const; | 57 int64 LengthSquared() const; |
58 // Gives the diagonal length of the vector. | 58 // Gives the diagonal length of the vector. |
59 float Length() const; | 59 float Length() const; |
60 | 60 |
61 std::string ToString() const; | 61 std::string ToString() const; |
62 | 62 |
63 operator Vector2dF() const { return Vector2dF(x_, y_); } | 63 operator Vector2dF() const { |
| 64 return Vector2dF(static_cast<float>(x()), static_cast<float>(y())); |
| 65 } |
64 | 66 |
65 private: | 67 private: |
66 int x_; | 68 int x_; |
67 int y_; | 69 int y_; |
68 }; | 70 }; |
69 | 71 |
70 inline bool operator==(const Vector2d& lhs, const Vector2d& rhs) { | 72 inline bool operator==(const Vector2d& lhs, const Vector2d& rhs) { |
71 return lhs.x() == rhs.x() && lhs.y() == rhs.y(); | 73 return lhs.x() == rhs.x() && lhs.y() == rhs.y(); |
72 } | 74 } |
73 | 75 |
(...skipping 14 matching lines...) Expand all Loading... |
88 } | 90 } |
89 | 91 |
90 // This is declared here for use in gtest-based unit tests but is defined in | 92 // This is declared here for use in gtest-based unit tests but is defined in |
91 // the gfx_test_support target. Depend on that to use this in your unit test. | 93 // the gfx_test_support target. Depend on that to use this in your unit test. |
92 // This should not be used in production code - call ToString() instead. | 94 // This should not be used in production code - call ToString() instead. |
93 void PrintTo(const Vector2d& vector, ::std::ostream* os); | 95 void PrintTo(const Vector2d& vector, ::std::ostream* os); |
94 | 96 |
95 } // namespace gfx | 97 } // namespace gfx |
96 | 98 |
97 #endif // UI_GFX_GEOMETRY_VECTOR2D_H_ | 99 #endif // UI_GFX_GEOMETRY_VECTOR2D_H_ |
OLD | NEW |