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

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

Issue 11418197: Move temporary MathUtil wrappers to permanent home in gfx::Transform (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebased and addressed reviewer feedback Created 8 years 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
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_TRANSFORM_H_ 5 #ifndef UI_GFX_TRANSFORM_H_
6 #define UI_GFX_TRANSFORM_H_ 6 #define UI_GFX_TRANSFORM_H_
7 7
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "third_party/skia/include/utils/SkMatrix44.h" 9 #include "third_party/skia/include/utils/SkMatrix44.h"
10 #include "ui/base/ui_export.h" 10 #include "ui/base/ui_export.h"
(...skipping 11 matching lines...) Expand all
22 public: 22 public:
23 Transform(); 23 Transform();
24 ~Transform(); 24 ~Transform();
25 25
26 bool operator==(const Transform& rhs) const; 26 bool operator==(const Transform& rhs) const;
27 bool operator!=(const Transform& rhs) const; 27 bool operator!=(const Transform& rhs) const;
28 28
29 // Resets this transform to the identity transform. 29 // Resets this transform to the identity transform.
30 void MakeIdentity(); 30 void MakeIdentity();
31 31
32 // Applies the current transformation on a rotation and assigns the result 32 // Applies the current transformation on a 2d rotation and assigns the result
33 // to |this|. 33 // to |this|.
34 void Rotate(double degree); 34 void Rotate(double degrees) { RotateAboutZAxis(degrees); }
35 35
36 // Applies the current transformation on an axis-angle rotation and assigns 36 // Applies the current transformation on an axis-angle rotation and assigns
37 // the result to |this|. 37 // the result to |this|.
38 void RotateAbout(const Vector3dF& point, double degree); 38 void RotateAboutXAxis(double degrees);
39 void RotateAboutYAxis(double degrees);
40 void RotateAboutZAxis(double degrees);
41 void RotateAbout(const Vector3dF& axis, double degrees);
39 42
40 // Applies the current transformation on a scaling and assigns the result 43 // Applies the current transformation on a scaling and assigns the result
41 // to |this|. 44 // to |this|.
42 void Scale(double x, double y); 45 void Scale(double x, double y);
43 void Scale3d(double x, double y, double z); 46 void Scale3d(double x, double y, double z);
44 47
45 // Applies the current transformation on a translation and assigns the result 48 // Applies the current transformation on a translation and assigns the result
46 // to |this|. 49 // to |this|.
47 void Translate(double x, double y); 50 void Translate(double x, double y);
48 void Translate3d(double x, double y, double z); 51 void Translate3d(double x, double y, double z);
(...skipping 11 matching lines...) Expand all
60 // (i.e. 'this = this * transform;'). 63 // (i.e. 'this = this * transform;').
61 void PreconcatTransform(const Transform& transform); 64 void PreconcatTransform(const Transform& transform);
62 65
63 // Applies a transformation on the current transformation 66 // Applies a transformation on the current transformation
64 // (i.e. 'this = transform * this;'). 67 // (i.e. 'this = transform * this;').
65 void ConcatTransform(const Transform& transform); 68 void ConcatTransform(const Transform& transform);
66 69
67 // Returns true if this is the identity matrix. 70 // Returns true if this is the identity matrix.
68 bool IsIdentity() const; 71 bool IsIdentity() const;
69 72
73 // Returns true if the matrix is either identity or pure translation.
74 bool IsIdentityOrTranslation() const;
75
76 // Returns true if the matrix is has only scaling and translation components.
77 bool IsScaleOrTranslation() const;
78
79 // Returns true if the matrix has any perspective component that would
80 // change the w-component of a homogeneous point.
81 bool HasPerspective() const;
82
70 // Returns true if this transform is non-singular. 83 // Returns true if this transform is non-singular.
71 bool IsInvertible() const; 84 bool IsInvertible() const;
72 85
86 // Returns true if a layer with a forward-facing normal of (0, 0, 1) would
87 // have its back side facing frontwards after applying the transform.
88 bool IsBackFaceVisible() const;
89
73 // Inverts the transform which is passed in. Returns true if successful. 90 // Inverts the transform which is passed in. Returns true if successful.
74 bool GetInverse(Transform* transform) const WARN_UNUSED_RESULT; 91 bool GetInverse(Transform* transform) const WARN_UNUSED_RESULT;
75 92
76 // Transposes this transform in place. 93 // Transposes this transform in place.
77 void Transpose(); 94 void Transpose();
78 95
79 // Applies the transformation on the point. Returns true if the point is 96 // Applies the transformation on the point. Returns true if the point is
80 // transformed successfully. 97 // transformed successfully.
81 void TransformPoint(Point3F& point) const; 98 void TransformPoint(Point3F& point) const;
82 99
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 Point3F& point) const; 149 Point3F& point) const;
133 150
134 SkMatrix44 matrix_; 151 SkMatrix44 matrix_;
135 152
136 // copy/assign are allowed. 153 // copy/assign are allowed.
137 }; 154 };
138 155
139 } // namespace gfx 156 } // namespace gfx
140 157
141 #endif // UI_GFX_TRANSFORM_H_ 158 #endif // UI_GFX_TRANSFORM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698