blob: 1707336a4c6b4b5f926786b2dd17045eebe87a88 [file] [log] [blame]
// 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 <ostream> // 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