Index: cc/math_util.h |
diff --git a/cc/math_util.h b/cc/math_util.h |
index fe1780042800f53800b9e8b1a19f2b2daf782644..db43aed6ba9f4e547b1227b6d9085698e518fbb3 100644 |
--- a/cc/math_util.h |
+++ b/cc/math_util.h |
@@ -9,6 +9,7 @@ |
#include "cc/cc_export.h" |
#include "ui/gfx/point_f.h" |
#include "ui/gfx/point3_f.h" |
+#include "ui/gfx/transform.h" |
namespace WebKit { |
class WebTransformationMatrix; |
@@ -69,6 +70,7 @@ class CC_EXPORT MathUtil { |
public: |
static const double PI_DOUBLE; |
static const float PI_FLOAT; |
+ static const double EPSILON; |
static double Deg2Rad(double deg) { return deg * PI_DOUBLE / 180; } |
static double Rad2Deg(double rad) { return rad * 180 / PI_DOUBLE; } |
@@ -115,8 +117,36 @@ public: |
// Projects the |source| vector onto |destination|. Neither vector is assumed to be normalized. |
static gfx::Vector2dF projectVector(gfx::Vector2dF source, gfx::Vector2dF destination); |
+ |
+ // Temporary API to ease migration from WebKit::WebTransformationMatrix |
+ // to gfx::Transform. |
+ // |
+ // TODO(shawnsingh, vollick) we should phase out as much as possible of |
+ // these temporary functions, putting functionality into gfx::Transform. |
+ static bool isInvertible(const gfx::Transform&); |
+ static bool isBackFaceVisible(const gfx::Transform&); |
+ static bool isIdentity(const gfx::Transform&); |
+ static bool isIdentityOrTranslation(const gfx::Transform&); |
+ static bool hasPerspective(const gfx::Transform&); |
+ static void makeIdentity(gfx::Transform*); |
+ static void rotateEulerAngles(gfx::Transform*, double eulerX, double eulerY, double eulerZ); |
+ static void rotateAxisAngle(gfx::Transform*, double i, double j, double k, double degrees); |
+ static gfx::Transform inverse(const gfx::Transform&); |
+ static gfx::Transform to2dTransform(const gfx::Transform&); |
+ // Note carefully: the args here are labeled as per Webcore indexing conventions. |
+ static gfx::Transform createGfxTransform(double m11, double m12, double m13, double m14, |
+ double m21, double m22, double m23, double m24, |
+ double m31, double m32, double m33, double m34, |
+ double m41, double m42, double m43, double m44); |
+ |
+ static gfx::Transform createGfxTransform(double a, double b, double c, |
+ double d, double e, double f); |
}; |
+// TODO(shawnsingh, vollick) this is a temporary home, should eventually |
+// be phased out in favor of gfx::Transform API. |
+gfx::Transform CC_EXPORT operator*(const gfx::Transform&, const gfx::Transform&); |
+ |
} // namespace cc |
#endif // CC_MATH_UTIL_H_ |