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

Unified Diff: ui/gfx/transform.h

Issue 11418040: gfx::Transform API clean-up (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/interpolated_transform_unittest.cc ('k') | ui/gfx/transform.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/transform.h
diff --git a/ui/gfx/transform.h b/ui/gfx/transform.h
index 64e5b83b7388e8edae4fd5f4be6f3ea5d41eb094..52d15cfb22fe54a4208e76828df69ac2f0078e12 100644
--- a/ui/gfx/transform.h
+++ b/ui/gfx/transform.h
@@ -14,6 +14,7 @@ namespace gfx {
class RectF;
class Point;
class Point3F;
+class Vector3dF;
// 4x4 transformation matrix. Transform is cheap and explicitly allows
// copy/assign.
@@ -25,91 +26,35 @@ class UI_EXPORT Transform {
bool operator==(const Transform& rhs) const;
bool operator!=(const Transform& rhs) const;
- // NOTE: The 'Set' functions overwrite the previously set transformation
- // parameters. The 'Concat' functions apply a transformation (e.g. rotation,
- // scale, translate) on top of the existing transforms, instead of overwriting
- // them.
-
- // NOTE: The order of the 'Set' function calls do not matter. However, the
- // order of the 'Concat' function calls do matter, especially when combined
- // with the 'Set' functions.
-
- // Sets the rotation of the transformation.
- void SetRotate(double degree);
-
- // Sets the rotation of the transform (about a vector).
- void SetRotateAbout(const Point3F& point, double degree);
-
- // Sets the scaling parameters.
- void SetScaleX(double x);
- void SetScaleY(double y);
- void SetScaleZ(double z);
- void SetScale(double x, double y);
- void SetScale3d(double x, double y, double z);
-
- // Sets the translation parameters.
- void SetTranslateX(double x);
- void SetTranslateY(double y);
- void SetTranslateZ(double z);
- void SetTranslate(double x, double y);
- void SetTranslate3d(double x, double y, double z);
-
- // Sets the skew parameters.
- void SetSkewX(double angle);
- void SetSkewY(double angle);
-
- // Creates a perspective matrix.
- // Based on the 'perspective' operation from
- // http://www.w3.org/TR/css3-3d-transforms/#transform-functions
- void SetPerspectiveDepth(double depth);
-
- // Applies a rotation on the current transformation.
- void ConcatRotate(double degree);
-
- // Applies an axis-angle rotation on the current transformation.
- void ConcatRotateAbout(const Point3F& point, double degree);
-
- // Applies scaling on current transform.
- void ConcatScale(double x, double y);
- void ConcatScale3d(double x, double y, double z);
-
- // Applies translation on current transform.
- void ConcatTranslate(double x, double y);
- void ConcatTranslate3d(double x, double y, double z);
-
- // Applies a perspective on current transform.
- void ConcatPerspectiveDepth(double depth);
-
- // Applies a skew on the current transform.
- void ConcatSkewX(double angle_x);
- void ConcatSkewY(double angle_y);
+ // Resets this transform to the identity transform.
+ void MakeIdentity();
// Applies the current transformation on a rotation and assigns the result
// to |this|.
- void PreconcatRotate(double degree);
+ void Rotate(double degree);
// Applies the current transformation on an axis-angle rotation and assigns
// the result to |this|.
- void PreconcatRotateAbout(const Point3F& point, double degree);
+ void RotateAbout(const Vector3dF& point, double degree);
// Applies the current transformation on a scaling and assigns the result
// to |this|.
- void PreconcatScale(double x, double y);
- void PreconcatScale3d(double x, double y, double z);
+ void Scale(double x, double y);
+ void Scale3d(double x, double y, double z);
// Applies the current transformation on a translation and assigns the result
// to |this|.
- void PreconcatTranslate(double x, double y);
- void PreconcatTranslate3d(double x, double y, double z);
+ void Translate(double x, double y);
+ void Translate3d(double x, double y, double z);
// Applies the current transformation on a skew and assigns the result
// to |this|.
- void PreconcatSkewX(double angle_x);
- void PreconcatSkewY(double angle_y);
+ void SkewX(double angle_x);
+ void SkewY(double angle_y);
// Applies the current transformation on a perspective transform and assigns
// the result to |this|.
- void PreconcatPerspectiveDepth(double depth);
+ void ApplyPerspectiveDepth(double depth);
// Applies a transformation on the current transformation
// (i.e. 'this = this * transform;').
@@ -169,6 +114,12 @@ class UI_EXPORT Transform {
// DecomposedTransform.
bool Blend(const Transform& from, double progress);
+ // Returns |this| * |other|.
+ Transform operator*(const Transform& other) const;
+
+ // Sets |this| = |this| * |other|
+ Transform& operator*=(const Transform& other);
+
// Returns the underlying matrix.
const SkMatrix44& matrix() const { return matrix_; }
SkMatrix44& matrix() { return matrix_; }
« no previous file with comments | « ui/gfx/interpolated_transform_unittest.cc ('k') | ui/gfx/transform.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698