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

Unified Diff: third_party/WebKit/Source/platform/transforms/TransformationMatrix.cpp

Issue 2265453003: Add platform/transforms pretty printers for logging and testing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update per reviewer comments Created 4 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
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..db6e57b987a5ecb0d875a9cf3a461e129efcdad7 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 toString(true) + " (degenerate)";
+
+ 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

Powered by Google App Engine
This is Rietveld 408576698