summaryrefslogtreecommitdiff
path: root/vector.h
diff options
context:
space:
mode:
Diffstat (limited to 'vector.h')
-rw-r--r--vector.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/vector.h b/vector.h
new file mode 100644
index 0000000..8d85684
--- /dev/null
+++ b/vector.h
@@ -0,0 +1,58 @@
+#ifndef _VECTOR_H_
+#define _VECTOR_H_
+
+class Vector2 {
+ public:
+ union {
+ float x, r;
+ };
+ union {
+ float y, g;
+ };
+
+ Vector2();
+ Vector2(float p1, float p2);
+ Vector2(const Vector2& v);
+
+ Vector2& operator=(const Vector2& v);
+ Vector2& operator+=(const Vector2& v);
+ Vector2& operator+(const Vector2& v);
+ Vector2& operator-=(const Vector2& v);
+ Vector2& operator-(const Vector2& v);
+};
+
+class Vector3 : public Vector2 {
+ public:
+ union {
+ float z, b;
+ };
+
+ Vector3();
+ Vector3(float p1, float p2, float p3);
+ Vector3(const Vector3& v);
+
+ Vector3& operator=(const Vector3& v);
+ Vector3& operator+=(const Vector3& v);
+ Vector3& operator+(const Vector3& v);
+ Vector3& operator-=(const Vector3& v);
+ Vector3& operator-(const Vector3& v);
+};
+
+class Vector4 : public Vector3 {
+ public:
+ union {
+ float w, a;
+ };
+
+ Vector4();
+ Vector4(float p1, float p2, float p3, float p4);
+ Vector4(const Vector4& v);
+
+ Vector4& operator=(const Vector4& v);
+ Vector4& operator+=(const Vector4& v);
+ Vector4& operator+(const Vector4& v);
+ Vector4& operator-=(const Vector4& v);
+ Vector4& operator-(const Vector4& v);
+};
+
+#endif