add helpers for isTranslate and isScaleTranslate
special-case determinant for isScaleTranslate



git-svn-id: http://skia.googlecode.com/svn/trunk@6725 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/utils/SkMatrix44.h b/include/utils/SkMatrix44.h
index 2e1872e..af61a11 100644
--- a/include/utils/SkMatrix44.h
+++ b/include/utils/SkMatrix44.h
@@ -150,8 +150,25 @@
         return (TypeMask)fTypeMask;
     }
 
+    /**
+     *  Return true if the matrix is identity.
+     */
     inline bool isIdentity() const {
-        return 0 == this->getType();
+        return kIdentity_Mask == this->getType();
+    }
+
+    /**
+     *  Return true if the matrix contains translate or is identity.
+     */
+    inline bool isTranslate() const {
+        return !(this->getType() & ~kTranslate_Mask);
+    }
+
+    /**
+     *  Return true if the matrix only contains scale or translate or is identity.
+     */
+    inline bool isScaleTranslate() const {
+        return !(this->getType() & ~(kScale_Mask | kTranslate_Mask));
     }
 
     void setIdentity();