| Index: cc/animation/transform_operations_unittest.cc
|
| diff --git a/cc/animation/transform_operations_unittest.cc b/cc/animation/transform_operations_unittest.cc
|
| index 7e344c706d42aea03249de075aec090b3448d780..8fc9b949d7421d38cb48ca26c50087c55f066cb1 100644
|
| --- a/cc/animation/transform_operations_unittest.cc
|
| +++ b/cc/animation/transform_operations_unittest.cc
|
| @@ -432,6 +432,22 @@ TEST(TransformOperationTest, BlendRotationFromIdentity) {
|
|
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = -0.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.RotateAbout(gfx::Vector3dF(0, 0, 1), -180);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = 1.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.RotateAbout(gfx::Vector3dF(0, 0, 1), 540);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| }
|
| }
|
|
|
| @@ -450,6 +466,22 @@ TEST(TransformOperationTest, BlendTranslationFromIdentity) {
|
|
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = -0.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.Translate3d(-1, -1, -1);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = 1.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.Translate3d(3, 3, 3);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| }
|
| }
|
|
|
| @@ -468,6 +500,22 @@ TEST(TransformOperationTest, BlendScaleFromIdentity) {
|
|
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = -0.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.Scale3d(0, 0, 0);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = 1.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.Scale3d(4, 4, 4);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| }
|
| }
|
|
|
| @@ -487,6 +535,24 @@ TEST(TransformOperationTest, BlendSkewFromIdentity) {
|
|
|
| EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = -0.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.SkewX(-1);
|
| + expected.SkewY(-1);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| +
|
| + progress = 1.5;
|
| +
|
| + expected.MakeIdentity();
|
| + expected.SkewX(3);
|
| + expected.SkewY(3);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations.Blend(*identity_operations[i], progress));
|
| }
|
| }
|
|
|
| @@ -601,5 +667,45 @@ TEST(TransformOperationTest, BlendPerspectiveToIdentity) {
|
| }
|
| }
|
|
|
| +TEST(TransformOperationTest, ExtrapolatePerspectiveBlending) {
|
| + TransformOperations operations1;
|
| + operations1.AppendPerspective(1000);
|
| +
|
| + TransformOperations operations2;
|
| + operations2.AppendPerspective(500);
|
| +
|
| + gfx::Transform expected;
|
| + expected.ApplyPerspectiveDepth(250);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations1.Blend(operations2, -0.5));
|
| +
|
| + expected.MakeIdentity();
|
| + expected.ApplyPerspectiveDepth(1250);
|
| +
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations1.Blend(operations2, 1.5));
|
| +}
|
| +
|
| +TEST(TransformOperationTest, ExtrapolateMatrixBlending) {
|
| + gfx::Transform transform1;
|
| + transform1.Translate3d(1, 1, 1);
|
| + TransformOperations operations1;
|
| + operations1.AppendMatrix(transform1);
|
| +
|
| + gfx::Transform transform2;
|
| + transform2.Translate3d(3, 3, 3);
|
| + TransformOperations operations2;
|
| + operations2.AppendMatrix(transform2);
|
| +
|
| + gfx::Transform expected;
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations1.Blend(operations2, 1.5));
|
| +
|
| + expected.Translate3d(4, 4, 4);
|
| + EXPECT_TRANSFORMATION_MATRIX_EQ(
|
| + expected, operations1.Blend(operations2, -0.5));
|
| +}
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|