Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/test/geometry_test_utils.h" | 5 #include "cc/test/geometry_test_utils.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "ui/gfx/transform.h" | 9 #include "ui/gfx/transform.h" |
| 10 | 10 |
| 11 namespace cc { | 11 namespace cc { |
| 12 | 12 |
| 13 // NOTE: even though transform data types use double precision, we only check | 13 // NOTE: even though transform data types use double precision, we only check |
| 14 // for equality within single-precision error bounds because many transforms | 14 // for equality within single-precision error bounds because many transforms |
| 15 // originate from single-precision data types such as quads/rects/etc. | 15 // originate from single-precision data types such as quads/rects/etc. |
| 16 | 16 |
| 17 void ExpectTransformationMatrixEq(const gfx::Transform& expected, | 17 void ExpectTransformationMatrixEq(const gfx::Transform& expected, |
| 18 const gfx::Transform& actual) { | 18 const gfx::Transform& actual) { |
| 19 EXPECT_FLOAT_EQ((expected).matrix().get(0, 0), (actual).matrix().get(0, 0)); | 19 for (int row = 0; row < 4; ++row) { |
| 20 EXPECT_FLOAT_EQ((expected).matrix().get(1, 0), (actual).matrix().get(1, 0)); | 20 for (int col = 0; col < 4; ++col) { |
| 21 EXPECT_FLOAT_EQ((expected).matrix().get(2, 0), (actual).matrix().get(2, 0)); | 21 EXPECT_FLOAT_EQ(expected.matrix().get(row, col), |
| 22 EXPECT_FLOAT_EQ((expected).matrix().get(3, 0), (actual).matrix().get(3, 0)); | 22 actual.matrix().get(row, col)); |
| 23 EXPECT_FLOAT_EQ((expected).matrix().get(0, 1), (actual).matrix().get(0, 1)); | 23 } |
| 24 EXPECT_FLOAT_EQ((expected).matrix().get(1, 1), (actual).matrix().get(1, 1)); | 24 } |
| 25 EXPECT_FLOAT_EQ((expected).matrix().get(2, 1), (actual).matrix().get(2, 1)); | 25 } |
| 26 EXPECT_FLOAT_EQ((expected).matrix().get(3, 1), (actual).matrix().get(3, 1)); | 26 |
| 27 EXPECT_FLOAT_EQ((expected).matrix().get(0, 2), (actual).matrix().get(0, 2)); | 27 void ExpectTransformationMatrixNear(const gfx::Transform& expected, |
| 28 EXPECT_FLOAT_EQ((expected).matrix().get(1, 2), (actual).matrix().get(1, 2)); | 28 const gfx::Transform& actual, |
| 29 EXPECT_FLOAT_EQ((expected).matrix().get(2, 2), (actual).matrix().get(2, 2)); | 29 float abs_error) { |
| 30 EXPECT_FLOAT_EQ((expected).matrix().get(3, 2), (actual).matrix().get(3, 2)); | 30 for (int row = 0; row < 4; ++row) { |
| 31 EXPECT_FLOAT_EQ((expected).matrix().get(0, 3), (actual).matrix().get(0, 3)); | 31 for (int col = 0; col < 4; ++col) { |
| 32 EXPECT_FLOAT_EQ((expected).matrix().get(1, 3), (actual).matrix().get(1, 3)); | 32 EXPECT_NEAR(expected.matrix().get(row, col), |
| 33 EXPECT_FLOAT_EQ((expected).matrix().get(2, 3), (actual).matrix().get(2, 3)); | 33 actual.matrix().get(row, col), abs_error); |
| 34 EXPECT_FLOAT_EQ((expected).matrix().get(3, 3), (actual).matrix().get(3, 3)); | 34 } |
|
ajuma
2017/07/04 14:50:56
Thanks for cleaning this up!
| |
| 35 } | |
| 35 } | 36 } |
| 36 | 37 |
| 37 gfx::Transform Inverse(const gfx::Transform& transform) { | 38 gfx::Transform Inverse(const gfx::Transform& transform) { |
| 38 gfx::Transform result(gfx::Transform::kSkipInitialization); | 39 gfx::Transform result(gfx::Transform::kSkipInitialization); |
| 39 bool inverted_successfully = transform.GetInverse(&result); | 40 bool inverted_successfully = transform.GetInverse(&result); |
| 40 DCHECK(inverted_successfully); | 41 DCHECK(inverted_successfully); |
| 41 return result; | 42 return result; |
| 42 } | 43 } |
| 43 | 44 |
| 44 } // namespace cc | 45 } // namespace cc |
| OLD | NEW |