| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef UI_GFX_POINT_F_H_ | 5 // TODO(beng): remove once callsites are patched. |
| 6 #define UI_GFX_POINT_F_H_ | 6 #include "ui/gfx/geometry/point_f.h" |
| 7 | 7 |
| 8 #include <string> | |
| 9 | |
| 10 #include "ui/gfx/gfx_export.h" | |
| 11 #include "ui/gfx/point_base.h" | |
| 12 #include "ui/gfx/vector2d_f.h" | |
| 13 | |
| 14 namespace gfx { | |
| 15 | |
| 16 // A floating version of gfx::Point. | |
| 17 class GFX_EXPORT PointF : public PointBase<PointF, float, Vector2dF> { | |
| 18 public: | |
| 19 PointF() : PointBase<PointF, float, Vector2dF>(0, 0) {} | |
| 20 PointF(float x, float y) : PointBase<PointF, float, Vector2dF>(x, y) {} | |
| 21 ~PointF() {} | |
| 22 | |
| 23 void Scale(float scale) { | |
| 24 Scale(scale, scale); | |
| 25 } | |
| 26 | |
| 27 void Scale(float x_scale, float y_scale) { | |
| 28 SetPoint(x() * x_scale, y() * y_scale); | |
| 29 } | |
| 30 | |
| 31 // Returns a string representation of point. | |
| 32 std::string ToString() const; | |
| 33 }; | |
| 34 | |
| 35 inline bool operator==(const PointF& lhs, const PointF& rhs) { | |
| 36 return lhs.x() == rhs.x() && lhs.y() == rhs.y(); | |
| 37 } | |
| 38 | |
| 39 inline bool operator!=(const PointF& lhs, const PointF& rhs) { | |
| 40 return !(lhs == rhs); | |
| 41 } | |
| 42 | |
| 43 inline PointF operator+(const PointF& lhs, const Vector2dF& rhs) { | |
| 44 PointF result(lhs); | |
| 45 result += rhs; | |
| 46 return result; | |
| 47 } | |
| 48 | |
| 49 inline PointF operator-(const PointF& lhs, const Vector2dF& rhs) { | |
| 50 PointF result(lhs); | |
| 51 result -= rhs; | |
| 52 return result; | |
| 53 } | |
| 54 | |
| 55 inline Vector2dF operator-(const PointF& lhs, const PointF& rhs) { | |
| 56 return Vector2dF(lhs.x() - rhs.x(), lhs.y() - rhs.y()); | |
| 57 } | |
| 58 | |
| 59 inline PointF PointAtOffsetFromOrigin(const Vector2dF& offset_from_origin) { | |
| 60 return PointF(offset_from_origin.x(), offset_from_origin.y()); | |
| 61 } | |
| 62 | |
| 63 GFX_EXPORT PointF ScalePoint(const PointF& p, float x_scale, float y_scale); | |
| 64 | |
| 65 inline PointF ScalePoint(const PointF& p, float scale) { | |
| 66 return ScalePoint(p, scale, scale); | |
| 67 } | |
| 68 | |
| 69 #if !defined(COMPILER_MSVC) | |
| 70 extern template class PointBase<PointF, float, Vector2dF>; | |
| 71 #endif | |
| 72 | |
| 73 } // namespace gfx | |
| 74 | |
| 75 #endif // UI_GFX_POINT_F_H_ | |
| OLD | NEW |