more vector4 methods
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 1 Mar 2010 01:10:10 +0000 (01:10 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 1 Mar 2010 01:10:10 +0000 (01:10 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@515 2bbb7eff-a529-9590-31e7-b0007b416f81

experimental/SkMatrix44.h

index 1fe46d49cf1f4f687a078723d2a390c2bf8ff687..f86559056abcb37f81550200e0482f3df3bc836c 100644 (file)
@@ -45,6 +45,36 @@ static const SkMScalar SK_MScalar1 = 1;
 struct SkVector4 {
        SkScalar fData[4];
 
+    SkVector4() {
+        this->set(0, 0, 0, 1);
+    }
+    SkVector4(const SkVector4& src) {
+        memcpy(fData, src.fData, sizeof(fData));
+    }
+    SkVector4(SkScalar x, SkScalar y, SkScalar z, SkScalar w = SK_Scalar1) {
+        fData[0] = x;
+        fData[1] = y;
+        fData[2] = z;
+        fData[3] = w;
+    }
+
+    SkVector4& operator=(const SkVector4& src) {
+        memcpy(fData, src.fData, sizeof(fData));
+        return *this;
+    }
+
+    bool operator==(const SkVector4& v) {
+        return fData[0] == v.fData[0] && fData[1] == v.fData[1] &&
+               fData[2] == v.fData[2] && fData[3] == v.fData[3];
+    }
+    bool operator!=(const SkVector4& v) {
+        return !(*this == v);
+    }
+    bool equals(SkScalar x, SkScalar y, SkScalar z, SkScalar w = SK_Scalar1) {
+        return fData[0] == x && fData[1] == y &&
+               fData[2] == z && fData[3] == w;
+    }
+    
     void set(SkScalar x, SkScalar y, SkScalar z, SkScalar w = SK_Scalar1) {
         fData[0] = x;
         fData[1] = y;