// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "platform/testing/TransformPrinters.h" #include "platform/transforms/AffineTransform.h" #include "platform/transforms/TransformationMatrix.h" #include // NOLINT namespace blink { void PrintTo(const AffineTransform& transform, std::ostream* os) { AffineTransform::DecomposedType decomposition; if (!transform.decompose(decomposition)) { *os << "AffineTransform(degenerate)"; return; } if (transform.isIdentityOrTranslation()) { *os << "AffineTransform(translation=(" << decomposition.translateX << "," << decomposition.translateY << "))"; return; } *os << "AffineTransform(" << "translation=(" << decomposition.translateX << "," << decomposition.translateY << ")" << ", scale=(" << decomposition.scaleX << "," << decomposition.scaleY << ")" << ", angle=(" << decomposition.angle << ")" << ", remainder=(" << decomposition.remainderA << "," << decomposition.remainderB << "," << decomposition.remainderC << "," << decomposition.remainderD << ")" << ", translate=(" << decomposition.translateX << "," << decomposition.translateY << ")" << ")"; } void PrintTo(const TransformationMatrix& matrix, std::ostream* os) { TransformationMatrix::DecomposedType decomposition; if (!matrix.decompose(decomposition)) { *os << "TransformationMatrix(degenerate)"; return; } if (matrix.isIdentityOrTranslation()) { *os << "TransformationMatrix(translation=(" << decomposition.translateX << "," << decomposition.translateY << "," << decomposition.translateZ << "))"; return; } *os << "TransformationMatrix(" << "translation=(" << decomposition.translateX << "," << decomposition.translateY << "," << decomposition.translateZ << ")" << ", scale=(" << decomposition.scaleX << "," << decomposition.scaleY << "," << decomposition.scaleZ << ")" << ", skew=(" << decomposition.skewXY << "," << decomposition.skewXZ << "," << decomposition.skewYZ << ")" << ", quaternion=(" << decomposition.quaternionX << "," << decomposition.quaternionY << "," << decomposition.quaternionZ << "," << decomposition.quaternionW << ")" << ", perspective=(" << decomposition.perspectiveX << "," << decomposition.perspectiveY << "," << decomposition.perspectiveZ << "," << decomposition.perspectiveW << ")" << ")"; } } // namespace blink