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

Unified Diff: cc/base/math_util_unittest.cc

Issue 495873002: cc: Stop converting Rect to QuadF to map to an enclosed rect. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: enclosed: . Created 6 years, 4 months 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 | « cc/base/math_util.cc ('k') | cc/trees/occlusion_tracker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/base/math_util_unittest.cc
diff --git a/cc/base/math_util_unittest.cc b/cc/base/math_util_unittest.cc
index 6e276c25d64736057f975c17ce1b4ee6c08f7c46..fb8c27f1f67af3853bc0a0ab394bcaf420c26c33 100644
--- a/cc/base/math_util_unittest.cc
+++ b/cc/base/math_util_unittest.cc
@@ -120,5 +120,78 @@ TEST(MathUtilTest, VectorProjection) {
projected_vector.y() / target_vector.y());
}
+TEST(MathUtilTest, MapEnclosedRectWith2dAxisAlignedTransform) {
+ gfx::Rect input(1, 2, 3, 4);
+ gfx::Rect output;
+ gfx::Transform transform;
+
+ // Identity.
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(input, output);
+
+ // Integer translate.
+ transform.Translate(2.0, 3.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(3, 5, 3, 4), output);
+
+ // Non-integer translate.
+ transform.Translate(0.5, 0.5);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(4, 6, 2, 3), output);
+
+ // Scale.
+ transform = gfx::Transform();
+ transform.Scale(2.0, 3.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(2, 6, 6, 12), output);
+
+ // Rotate Z.
+ transform = gfx::Transform();
+ transform.Translate(1.0, 2.0);
+ transform.RotateAboutZAxis(90.0);
+ transform.Translate(-1.0, -2.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(-3, 2, 4, 3), output);
+
+ // Rotate X.
+ transform = gfx::Transform();
+ transform.RotateAboutXAxis(90.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_TRUE(output.IsEmpty());
+
+ transform = gfx::Transform();
+ transform.RotateAboutXAxis(180.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(1, -6, 3, 4), output);
+
+ // Rotate Y.
+ transform = gfx::Transform();
+ transform.RotateAboutYAxis(90.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_TRUE(output.IsEmpty());
+
+ transform = gfx::Transform();
+ transform.RotateAboutYAxis(180.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(-4, 2, 3, 4), output);
+
+ // Translate Z.
+ transform = gfx::Transform();
+ transform.ApplyPerspectiveDepth(10.0);
+ transform.Translate3d(0.0, 0.0, 5.0);
+ output =
+ MathUtil::MapEnclosedRectWith2dAxisAlignedTransform(transform, input);
+ EXPECT_EQ(gfx::Rect(2, 4, 6, 8), output);
+}
+
} // namespace
} // namespace cc
« no previous file with comments | « cc/base/math_util.cc ('k') | cc/trees/occlusion_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698