| 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/math_util.h" | 5 #include "cc/math_util.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "ui/gfx/quad_f.h" | 10 #include "ui/gfx/quad_f.h" |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 MathUtil::rotateAxisAngle(&rotationAboutX, 1, 0, 0, eulerX); | 454 MathUtil::rotateAxisAngle(&rotationAboutX, 1, 0, 0, eulerX); |
| 455 MathUtil::rotateAxisAngle(&rotationAboutY, 0, 1, 0, eulerY); | 455 MathUtil::rotateAxisAngle(&rotationAboutY, 0, 1, 0, eulerY); |
| 456 MathUtil::rotateAxisAngle(&rotationAboutZ, 0, 0, 1, eulerZ); | 456 MathUtil::rotateAxisAngle(&rotationAboutZ, 0, 0, 1, eulerZ); |
| 457 | 457 |
| 458 gfx::Transform composite = rotationAboutZ * rotationAboutY * rotationAboutX; | 458 gfx::Transform composite = rotationAboutZ * rotationAboutY * rotationAboutX; |
| 459 transform->PreconcatTransform(composite); | 459 transform->PreconcatTransform(composite); |
| 460 } | 460 } |
| 461 | 461 |
| 462 void MathUtil::rotateAxisAngle(gfx::Transform* transform, double i, double j, do
uble k, double degrees) | 462 void MathUtil::rotateAxisAngle(gfx::Transform* transform, double i, double j, do
uble k, double degrees) |
| 463 { | 463 { |
| 464 // TODO (shawnsingh): fix gfx::Transform API to receive vector instead of | 464 gfx::Vector3dF axis(i, j, k); |
| 465 // point for the axis. | 465 transform->RotateAbout(axis, degrees); |
| 466 gfx::Point3F axis(i, j, k); | |
| 467 transform->PreconcatRotateAbout(axis, degrees); | |
| 468 } | 466 } |
| 469 | 467 |
| 470 gfx::Transform MathUtil::inverse(const gfx::Transform& transform) | 468 gfx::Transform MathUtil::inverse(const gfx::Transform& transform) |
| 471 { | 469 { |
| 472 gfx::Transform result; | 470 gfx::Transform result; |
| 473 bool invertedSuccessfully = transform.GetInverse(&result); | 471 bool invertedSuccessfully = transform.GetInverse(&result); |
| 474 | 472 |
| 475 if (invertedSuccessfully) | 473 if (invertedSuccessfully) |
| 476 return result; | 474 return result; |
| 477 | 475 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 matrix.setDouble(0, 0, a); | 536 matrix.setDouble(0, 0, a); |
| 539 matrix.setDouble(1, 0, b); | 537 matrix.setDouble(1, 0, b); |
| 540 matrix.setDouble(0, 1, c); | 538 matrix.setDouble(0, 1, c); |
| 541 matrix.setDouble(1, 1, d); | 539 matrix.setDouble(1, 1, d); |
| 542 matrix.setDouble(0, 3, e); | 540 matrix.setDouble(0, 3, e); |
| 543 matrix.setDouble(1, 3, f); | 541 matrix.setDouble(1, 3, f); |
| 544 | 542 |
| 545 return result; | 543 return result; |
| 546 } | 544 } |
| 547 | 545 |
| 548 gfx::Transform operator*(const gfx::Transform& A, const gfx::Transform& B) | |
| 549 { | |
| 550 // Compute A * B. | |
| 551 gfx::Transform result = A; | |
| 552 result.PreconcatTransform(B); | |
| 553 return result; | |
| 554 } | |
| 555 | |
| 556 } // namespace cc | 546 } // namespace cc |
| OLD | NEW |