| Index: ui/gfx/transform_unittest.cc
|
| diff --git a/ui/gfx/transform_unittest.cc b/ui/gfx/transform_unittest.cc
|
| index eb0b2fdcc69980f4f704e84d3f2fc4fa1c2f3146..81333a39f6e62256b272fc49749f75e3bd690897 100644
|
| --- a/ui/gfx/transform_unittest.cc
|
| +++ b/ui/gfx/transform_unittest.cc
|
| @@ -777,12 +777,10 @@ TEST(XFormTest, BlendSkew) {
|
| Transform from;
|
| for (int i = 0; i < 2; ++i) {
|
| Transform to;
|
| - to.SkewX(10);
|
| - to.SkewY(5);
|
| + to.Skew(10, 5);
|
| double t = i;
|
| Transform expected;
|
| - expected.SkewX(t * 10);
|
| - expected.SkewY(t * 5);
|
| + expected.Skew(t * 10, t * 5);
|
| EXPECT_TRUE(to.Blend(from, t));
|
| EXPECT_TRUE(MatricesAreNearlyEqual(expected, to));
|
| }
|
| @@ -792,10 +790,10 @@ TEST(XFormTest, ExtrapolateSkew) {
|
| Transform from;
|
| for (int i = -1; i < 2; ++i) {
|
| Transform to;
|
| - to.SkewX(20);
|
| + to.Skew(20, 0);
|
| double t = i;
|
| Transform expected;
|
| - expected.SkewX(t * 20);
|
| + expected.Skew(t * 20, t * 0);
|
| EXPECT_TRUE(to.Blend(from, t));
|
| EXPECT_TRUE(MatricesAreNearlyEqual(expected, to));
|
| }
|
| @@ -906,18 +904,19 @@ TEST(XFormTest, VerifyBlendForScale) {
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
| }
|
|
|
| -TEST(XFormTest, VerifyBlendForSkewX) {
|
| +TEST(XFormTest, VerifyBlendForSkew) {
|
| + // Along X axis only
|
| Transform from;
|
| - from.SkewX(0.0);
|
| + from.Skew(0.0, 0.0);
|
|
|
| Transform to;
|
|
|
| - to.SkewX(45.0);
|
| + to.Skew(45.0, 0.0);
|
| to.Blend(from, 0.0);
|
| EXPECT_EQ(from, to);
|
|
|
| to = Transform();
|
| - to.SkewX(45.0);
|
| + to.Skew(45.0, 0.0);
|
| to.Blend(from, 0.5);
|
| EXPECT_ROW1_EQ(1.0f, 0.5f, 0.0f, 0.0f, to);
|
| EXPECT_ROW2_EQ(0.0f, 1.0f, 0.0f, 0.0f, to);
|
| @@ -925,7 +924,7 @@ TEST(XFormTest, VerifyBlendForSkewX) {
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
|
|
| to = Transform();
|
| - to.SkewX(45.0);
|
| + to.Skew(45.0, 0.0);
|
| to.Blend(from, 0.25);
|
| EXPECT_ROW1_EQ(1.0f, 0.25f, 0.0f, 0.0f, to);
|
| EXPECT_ROW2_EQ(0.0f, 1.0f, 0.0f, 0.0f, to);
|
| @@ -933,15 +932,13 @@ TEST(XFormTest, VerifyBlendForSkewX) {
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
|
|
| to = Transform();
|
| - to.SkewX(45.0);
|
| + to.Skew(45.0, 0.0);
|
| to.Blend(from, 1.0);
|
| EXPECT_ROW1_EQ(1.0f, 1.0f, 0.0f, 0.0f, to);
|
| EXPECT_ROW2_EQ(0.0f, 1.0f, 0.0f, 0.0f, to);
|
| EXPECT_ROW3_EQ(0.0f, 0.0f, 1.0f, 0.0f, to);
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
| -}
|
|
|
| -TEST(XFormTest, VerifyBlendForSkewY) {
|
| // NOTE CAREFULLY: Decomposition of skew and rotation terms of the matrix
|
| // is inherently underconstrained, and so it does not always compute the
|
| // originally intended skew parameters. The current implementation uses QR
|
| @@ -952,24 +949,24 @@ TEST(XFormTest, VerifyBlendForSkewY) {
|
| // very often, so to get any test coverage, the compromise is to verify the
|
| // exact matrix that the.Blend() operation produces.
|
| //
|
| - // This problem also potentially exists for skewX, but the current QR
|
| - // decomposition implementation just happens to decompose those test
|
| - // matrices intuitively.
|
| + // This problem also potentially exists for skew along the X axis, but the
|
| + // current QR decomposition implementation just happens to decompose those
|
| + // test matrices intuitively.
|
| //
|
| // Unfortunately, this case suffers from uncomfortably large precision
|
| // error.
|
|
|
| - Transform from;
|
| - from.SkewY(0.0);
|
| + from = Transform();
|
| + from.Skew(0.0, 0.0);
|
|
|
| - Transform to;
|
| + to = Transform();
|
|
|
| - to.SkewY(45.0);
|
| + to.Skew(0.0, 45.0);
|
| to.Blend(from, 0.0);
|
| EXPECT_EQ(from, to);
|
|
|
| to = Transform();
|
| - to.SkewY(45.0);
|
| + to.Skew(0.0, 45.0);
|
| to.Blend(from, 0.25);
|
| EXPECT_ROW1_NEAR(1.0823489449280947471976333,
|
| 0.0464370719145053845178239,
|
| @@ -987,7 +984,7 @@ TEST(XFormTest, VerifyBlendForSkewY) {
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
|
|
| to = Transform();
|
| - to.SkewY(45.0);
|
| + to.Skew(0.0, 45.0);
|
| to.Blend(from, 0.5);
|
| EXPECT_ROW1_NEAR(1.1152212925809066312865525,
|
| 0.0676495144007326631996335,
|
| @@ -1005,7 +1002,7 @@ TEST(XFormTest, VerifyBlendForSkewY) {
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, to);
|
|
|
| to = Transform();
|
| - to.SkewY(45.0);
|
| + to.Skew(0.0, 45.0);
|
| to.Blend(from, 1.0);
|
| EXPECT_ROW1_NEAR(1.0, 0.0, 0.0, 0.0, to, LOOSE_ERROR_THRESHOLD);
|
| EXPECT_ROW2_NEAR(1.0, 1.0, 0.0, 0.0, to, LOOSE_ERROR_THRESHOLD);
|
| @@ -1224,7 +1221,7 @@ TEST(XFormTest, VerifyBlendForCompositeTransform) {
|
| expectedEndOfAnimation.ApplyPerspectiveDepth(1.0);
|
| expectedEndOfAnimation.Translate3d(10.0, 20.0, 30.0);
|
| expectedEndOfAnimation.RotateAbout(Vector3dF(0.0, 0.0, 1.0), 25.0);
|
| - expectedEndOfAnimation.SkewY(45.0);
|
| + expectedEndOfAnimation.Skew(0.0, 45.0);
|
| expectedEndOfAnimation.Scale3d(6.0, 7.0, 8.0);
|
|
|
| to = expectedEndOfAnimation;
|
| @@ -1929,44 +1926,41 @@ TEST(XFormTest, verifyRotateAboutForDegenerateAxis) {
|
| EXPECT_ROW4_EQ(13.0f, 17.0f, 21.0f, 25.0f, A);
|
| }
|
|
|
| -TEST(XFormTest, verifySkewX) {
|
| +TEST(XFormTest, verifySkew) {
|
| + // Test a skew along X axis only
|
| Transform A;
|
| - A.SkewX(45.0);
|
| + A.Skew(45.0, 0.0);
|
| EXPECT_ROW1_EQ(1.0f, 1.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW2_EQ(0.0f, 1.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW3_EQ(0.0f, 0.0f, 1.0f, 0.0f, A);
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, A);
|
|
|
| - // Verify that skewX() post-multiplies the existing matrix. Row 1, column 2,
|
| + // Test a skew along Y axis only
|
| + A.MakeIdentity();
|
| + A.Skew(0.0, 45.0);
|
| + EXPECT_ROW1_EQ(1.0f, 0.0f, 0.0f, 0.0f, A);
|
| + EXPECT_ROW2_EQ(1.0f, 1.0f, 0.0f, 0.0f, A);
|
| + EXPECT_ROW3_EQ(0.0f, 0.0f, 1.0f, 0.0f, A);
|
| + EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, A);
|
| +
|
| + // Verify that skew() post-multiplies the existing matrix. Row 1, column 2,
|
| // would incorrectly have value "7" if the matrix is pre-multiplied instead
|
| // of post-multiplied.
|
| A.MakeIdentity();
|
| A.Scale3d(6.0, 7.0, 8.0);
|
| - A.SkewX(45.0);
|
| + A.Skew(45.0, 0.0);
|
| EXPECT_ROW1_EQ(6.0f, 6.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW2_EQ(0.0f, 7.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW3_EQ(0.0f, 0.0f, 8.0f, 0.0f, A);
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, A);
|
| -}
|
|
|
| -TEST(XFormTest, verifySkewY) {
|
| - Transform A;
|
| - A.SkewY(45.0);
|
| - EXPECT_ROW1_EQ(1.0f, 0.0f, 0.0f, 0.0f, A);
|
| + // Test a skew along X and Y axes both
|
| + A.MakeIdentity();
|
| + A.Skew(45.0, 45.0);
|
| + EXPECT_ROW1_EQ(1.0f, 1.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW2_EQ(1.0f, 1.0f, 0.0f, 0.0f, A);
|
| EXPECT_ROW3_EQ(0.0f, 0.0f, 1.0f, 0.0f, A);
|
| EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, A);
|
| -
|
| - // Verify that skewY() post-multiplies the existing matrix. Row 2, column 1 ,
|
| - // would incorrectly have value "6" if the matrix is pre-multiplied instead
|
| - // of post-multiplied.
|
| - A.MakeIdentity();
|
| - A.Scale3d(6.0, 7.0, 8.0);
|
| - A.SkewY(45.0);
|
| - EXPECT_ROW1_EQ(6.0f, 0.0f, 0.0f, 0.0f, A);
|
| - EXPECT_ROW2_EQ(7.0f, 7.0f, 0.0f, 0.0f, A);
|
| - EXPECT_ROW3_EQ(0.0f, 0.0f, 8.0f, 0.0f, A);
|
| - EXPECT_ROW4_EQ(0.0f, 0.0f, 0.0f, 1.0f, A);
|
| }
|
|
|
| TEST(XFormTest, verifyPerspectiveDepth) {
|
| @@ -2040,7 +2034,7 @@ TEST(XFormTest, verifyIsInvertible) {
|
| EXPECT_TRUE(A.IsInvertible());
|
|
|
| A.MakeIdentity();
|
| - A.SkewX(45.0);
|
| + A.Skew(45.0, 0.0);
|
| EXPECT_TRUE(A.IsInvertible());
|
|
|
| // A perspective matrix (projection plane at z=0) is invertible. The
|
|
|