Make use of the new SkMatrix44::transpose, ::getDouble, and ::setDouble funcs

We've been using macros and our own hand-rolled versions of these functions.
No need to continue doing this. There are a few other minor clean-ups rolled
into this change. Leaving the big API clean-up (Removing SetXXX and ConcatXXX,
and s/PreconcatXXX/XXX/) for another CL.

Note: div-by-zero checks are due to shawnsingh@. I couldn't muck with this file and leave them there after seeing his fix.

BUG=None


Review URL: https://chromiumcodereview.appspot.com/11348090

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168409 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ui/gfx/transform.h b/ui/gfx/transform.h
index 45bc4da..64e5b83 100644
--- a/ui/gfx/transform.h
+++ b/ui/gfx/transform.h
@@ -5,6 +5,7 @@
 #ifndef UI_GFX_TRANSFORM_H_
 #define UI_GFX_TRANSFORM_H_
 
+#include "base/compiler_specific.h"
 #include "third_party/skia/include/utils/SkMatrix44.h"
 #include "ui/base/ui_export.h"
 
@@ -118,11 +119,17 @@
   // (i.e. 'this = transform * this;').
   void ConcatTransform(const Transform& transform);
 
-  // Does the transformation change anything?
-  bool HasChange() const;
+  // Returns true if this is the identity matrix.
+  bool IsIdentity() const;
+
+  // Returns true if this transform is non-singular.
+  bool IsInvertible() const;
 
   // Inverts the transform which is passed in. Returns true if successful.
-  bool GetInverse(Transform* transform) const;
+  bool GetInverse(Transform* transform) const WARN_UNUSED_RESULT;
+
+  // Transposes this transform in place.
+  void Transpose();
 
   // Applies the transformation on the point. Returns true if the point is
   // transformed successfully.