add tests for translate, concat, scale
git-svn-id: http://skia.googlecode.com/svn/trunk@510 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/SkMatrix44.cpp b/experimental/SkMatrix44.cpp
index 9ee746a..1b1b93b 100644
--- a/experimental/SkMatrix44.cpp
+++ b/experimental/SkMatrix44.cpp
@@ -14,13 +14,21 @@
///////////////////////////////////////////////////////////////////////////////
+static const SkMatrix44 gIdentity44;
+
+bool SkMatrix44::isIdentity() const {
+ return *this == gIdentity44;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
void SkMatrix44::setIdentity() {
sk_bzero(fMat, sizeof(fMat));
fMat[0][0] = fMat[1][1] = fMat[2][2] = fMat[3][3] = SK_MScalar1;
}
void SkMatrix44::setTranslate(SkMScalar tx, SkMScalar ty, SkMScalar tz) {
- sk_bzero(fMat, sizeof(fMat));
+ this->setIdentity();
fMat[3][0] = tx;
fMat[3][1] = ty;
fMat[3][2] = tz;
@@ -71,7 +79,7 @@
for (int j = 0; j < 4; j++) {
double value = 0;
for (int k = 0; k < 4; k++) {
- value += (double)a.fMat[k][j] * b.fMat[i][k];
+ value += SkMScalarToDouble(a.fMat[k][i]) * b.fMat[j][k];
}
result[j][i] = SkDoubleToMScalar(value);
}
@@ -198,11 +206,17 @@
void SkMatrix44::dump() const {
SkDebugf("[%g %g %g %g][%g %g %g %g][%g %g %g %g][%g %g %g %g]\n",
+#if 0
fMat[0][0], fMat[0][1], fMat[0][2], fMat[0][3],
fMat[1][0], fMat[1][1], fMat[1][2], fMat[1][3],
fMat[2][0], fMat[2][1], fMat[2][2], fMat[2][3],
fMat[3][0], fMat[3][1], fMat[3][2], fMat[3][3]);
+#else
+ fMat[0][0], fMat[1][0], fMat[2][0], fMat[3][0],
+ fMat[0][1], fMat[1][1], fMat[2][1], fMat[3][1],
+ fMat[0][2], fMat[1][2], fMat[2][2], fMat[3][2],
+ fMat[0][3], fMat[1][3], fMat[2][3], fMat[3][3]);
+#endif
}
-