summaryrefslogtreecommitdiff
path: root/vector.h
diff options
context:
space:
mode:
Diffstat (limited to 'vector.h')
-rw-r--r--vector.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/vector.h b/vector.h
new file mode 100644
index 0000000..48deb87
--- /dev/null
+++ b/vector.h
@@ -0,0 +1,49 @@
+#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 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