From f1c0772af07f0339bda5a9abeaf4f869de9868e1 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Sun, 13 Jun 2010 16:02:07 +0200 Subject: Added vector- and matrix-classes. --- vector.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 vector.h (limited to 'vector.h') 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 -- cgit v1.2.3