Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(843)

Side by Side Diff: ui/gfx/point_f.h

Issue 11269022: Add Vector2d classes that represent offsets, instead of using Point. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: RenderText fixup Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #ifndef UI_GFX_POINT_F_H_ 5 #ifndef UI_GFX_POINT_F_H_
6 #define UI_GFX_POINT_F_H_ 6 #define UI_GFX_POINT_F_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "ui/base/ui_export.h" 10 #include "ui/base/ui_export.h"
11 #include "ui/gfx/point_base.h" 11 #include "ui/gfx/point_base.h"
12 #include "ui/gfx/vector2d_f.h"
12 13
13 namespace gfx { 14 namespace gfx {
14 15
15 // A floating version of gfx::Point. 16 // A floating version of gfx::Point.
16 class UI_EXPORT PointF : public PointBase<PointF, float> { 17 class UI_EXPORT PointF : public PointBase<PointF, float, Vector2dF> {
17 public: 18 public:
18 PointF(); 19 PointF();
19 PointF(float x, float y); 20 PointF(float x, float y);
20 ~PointF(); 21 ~PointF();
21 22
22 PointF Scale(float scale) const WARN_UNUSED_RESULT { 23 PointF Scale(float scale) const WARN_UNUSED_RESULT {
23 return Scale(scale, scale); 24 return Scale(scale, scale);
24 } 25 }
25 26
26 PointF Scale(float x_scale, float y_scale) const WARN_UNUSED_RESULT { 27 PointF Scale(float x_scale, float y_scale) const WARN_UNUSED_RESULT {
27 return PointF(x() * x_scale, y() * y_scale); 28 return PointF(x() * x_scale, y() * y_scale);
28 } 29 }
29 30
30 // Returns a string representation of point. 31 // Returns a string representation of point.
31 std::string ToString() const; 32 std::string ToString() const;
32 }; 33 };
33 34
34 inline bool operator==(const PointF& lhs, const PointF& rhs) { 35 inline bool operator==(const PointF& lhs, const PointF& rhs) {
35 return lhs.x() == rhs.x() && lhs.y() == rhs.y(); 36 return lhs.x() == rhs.x() && lhs.y() == rhs.y();
36 } 37 }
37 38
38 inline bool operator!=(const PointF& lhs, const PointF& rhs) { 39 inline bool operator!=(const PointF& lhs, const PointF& rhs) {
39 return !(lhs == rhs); 40 return !(lhs == rhs);
40 } 41 }
41 42
42 inline PointF operator+(PointF lhs, PointF rhs) { 43 inline PointF operator+(const PointF& lhs, const Vector2dF& rhs) {
43 return lhs.Add(rhs); 44 return lhs.Add(rhs);
44 } 45 }
45 46
46 inline PointF operator-(PointF lhs, PointF rhs) { 47 inline PointF operator-(const PointF& lhs, const Vector2dF& rhs) {
47 return lhs.Subtract(rhs); 48 return lhs.Subtract(rhs);
48 } 49 }
49 50
51 inline Vector2dF operator-(const PointF& lhs, const PointF& rhs) {
52 return lhs.OffsetFrom(rhs);
53 }
54
55 inline PointF PointAtOffsetFromOrigin(const Vector2dF& offset_from_origin) {
56 return PointF(offset_from_origin.x(), offset_from_origin.y());
57 }
58
50 #if !defined(COMPILER_MSVC) 59 #if !defined(COMPILER_MSVC)
51 extern template class PointBase<PointF, float>; 60 extern template class PointBase<PointF, float, Vector2dF>;
52 #endif 61 #endif
53 62
54 } // namespace gfx 63 } // namespace gfx
55 64
56 #endif // UI_GFX_POINT_F_H_ 65 #endif // UI_GFX_POINT_F_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698