summaryrefslogtreecommitdiff
path: root/vector.h
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2011-06-01 19:02:52 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2011-06-01 19:02:52 +0200
commitdc104e37842049e040f7e39f4e1aab56cde1488c (patch)
tree7a2b98b1007fe7325752ae5a8e728d1410072dfb /vector.h
Moved common files here.
Diffstat (limited to 'vector.h')
-rw-r--r--vector.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/vector.h b/vector.h
new file mode 100644
index 0000000..a2a3192
--- /dev/null
+++ b/vector.h
@@ -0,0 +1,50 @@
+#ifndef VECTOR_H
+#define VECTOR_H
+
+#include <boost/shared_ptr.hpp>
+
+#include <string>
+
+class Vector2 {
+ public:
+ float x, y;
+
+ Vector2();
+ Vector2(const Vector2& v);
+ Vector2(float x, float y);
+ bool operator==(const Vector2& v) const;
+ Vector2& operator+=(const Vector2& v);
+ Vector2 operator+(const Vector2& v);
+ Vector2& operator-=(const Vector2& v);
+ Vector2 operator-(const Vector2& v);
+ Vector2& operator*=(const float f);
+ Vector2& operator/=(const float f);
+ float length();
+ std::string str();
+};
+
+class Vector3 : public Vector2 {
+ public:
+ typedef boost::shared_ptr<Vector3> p;
+ float z;
+
+ Vector3();
+ Vector3(const Vector3& v);
+ Vector3(float x, float y, float z);
+ bool operator==(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 float f);
+ Vector3 operator*(const float f);
+ Vector3& operator/=(const float f);
+ Vector3 operator/(const float f);
+ Vector3 cross(const Vector3& v);
+ float dot(const Vector3& v);
+ Vector2 xz();
+ float length();
+ std::string str();
+};
+
+#endif