Chromium Code Reviews| Index: third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp |
| diff --git a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp |
| index a0815f8d667b3957f105e1b412a81ec3d419a0cc..3a804e1e13469a5407fe393a9f0e5fa677bf25d8 100644 |
| --- a/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp |
| +++ b/third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp |
| @@ -37,6 +37,7 @@ |
| #include "wtf/Assertions.h" |
| #include "wtf/MathExtras.h" |
| +#include "wtf/text/WTFString.h" |
| #include <cmath> |
| #include <cstdlib> |
| @@ -1598,4 +1599,33 @@ SkMatrix44 TransformationMatrix::toSkMatrix44(const TransformationMatrix& matrix |
| return ret; |
| } |
| +String TransformationMatrix::toString(bool asMatrix) const |
| +{ |
| + if (asMatrix) { |
| + // Return as a matrix in row-major order. |
| + return String::format("[%lg,%lg,%lg,%lg,\n%lg,%lg,%lg,%lg,\n%lg,%lg,%lg,%lg,\n%lg,%lg,%lg,%lg]", |
| + m11(), m21(), m31(), m41(), |
| + m12(), m22(), m32(), m42(), |
| + m13(), m23(), m33(), m43(), |
| + m14(), m24(), m34(), m44()); |
| + } |
| + |
| + TransformationMatrix::DecomposedType decomposition; |
| + if (!decompose(decomposition)) |
| + return "degenerate"; |
|
jbroman
2016/08/21 16:21:07
nit: maybe the matrix representation above would b
pdr.
2016/08/22 17:27:35
Good idea, done.
|
| + |
| + if (isIdentityOrTranslation()) { |
| + if (decomposition.translateX == 0 && decomposition.translateY == 0 && decomposition.translateZ == 0) |
| + return "identity"; |
| + return String::format("translation(%lg,%lg,%lg)", decomposition.translateX, decomposition.translateY, decomposition.translateZ); |
| + } |
| + |
| + return String::format("translation(%lg,%lg,%lg), scale(%lg,%lg,%lg), skew(%lg,%lg,%lg), quaternion(%lg,%lg,%lg,%lg), perspective(%lg,%lg,%lg,%lg)", |
| + decomposition.translateX, decomposition.translateY, decomposition.translateZ, |
| + decomposition.scaleX, decomposition.scaleY, decomposition.scaleZ, |
| + decomposition.skewXY, decomposition.skewXZ, decomposition.skewYZ, |
| + decomposition.quaternionX, decomposition.quaternionY, decomposition.quaternionZ, decomposition.quaternionW, |
| + decomposition.perspectiveX, decomposition.perspectiveY, decomposition.perspectiveZ, decomposition.perspectiveW); |
| +} |
| + |
| } // namespace blink |