diff options
Diffstat (limited to 'vector.h')
-rw-r--r-- | vector.h | 58 |
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 |