summaryrefslogtreecommitdiff
path: root/vector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vector.cpp')
-rw-r--r--vector.cpp133
1 files changed, 133 insertions, 0 deletions
diff --git a/vector.cpp b/vector.cpp
new file mode 100644
index 0000000..6c71991
--- /dev/null
+++ b/vector.cpp
@@ -0,0 +1,133 @@
+#include "vector.h"
+
+Vector2::Vector2() {
+ x = y = 0;
+}
+
+Vector2::Vector2(float p1, float p2) {
+ x = p1;
+ y = p2;
+}
+
+Vector2::Vector2(const Vector2& v) {
+ x = v.x;
+ y = v.y;
+}
+
+Vector2& Vector2::operator=(const Vector2& v) {
+ x = v.x;
+ y = v.y;
+ return *this;
+}
+
+Vector2& Vector2::operator+=(const Vector2& v) {
+ x += v.x;
+ y += v.y;
+ return *this;
+}
+
+Vector2& Vector2::operator+(const Vector2& v) {
+ return Vector2(*this) += v;
+}
+
+Vector2& Vector2::operator-=(const Vector2& v) {
+ x -= v.x;
+ y -= v.y;
+ return *this;
+}
+
+Vector2& Vector2::operator-(const Vector2& v) {
+ return Vector2(*this) -= v;
+}
+
+Vector3::Vector3() : Vector2() {
+ z = 0;
+}
+
+Vector3::Vector3(float p1, float p2, float p3) {
+ x = p1;
+ y = p2;
+ z = p3;
+}
+
+Vector3::Vector3(const Vector3& v) {
+ x = v.x;
+ y = v.y;
+ z = v.z;
+}
+
+Vector3& Vector3::operator=(const Vector3& v) {
+ x = v.x;
+ y = v.y;
+ z = v.z;
+ return *this;
+}
+
+Vector3& Vector3::operator+=(const Vector3& v) {
+ x += v.x;
+ y += v.y;
+ z += v.z;
+ return *this;
+}
+
+Vector3& Vector3::operator+(const Vector3& v) {
+ return Vector3(*this) += v;
+}
+
+Vector3& Vector3::operator-=(const Vector3& v) {
+ x -= v.x;
+ y -= v.y;
+ z -= v.z;
+ return *this;
+}
+
+Vector3& Vector3::operator-(const Vector3& v) {
+ return Vector3(*this) -= v;
+}
+
+Vector4::Vector4() : Vector3() {
+ w = 0;
+}
+
+Vector4::Vector4(float p1, float p2, float p3, float p4) : Vector3(p1, p2, p3) {
+ w = p4;
+}
+
+Vector4::Vector4(const Vector4& v) {
+ x = v.x;
+ y = v.y;
+ z = v.z;
+ w = v.w;
+}
+
+Vector4& Vector4::operator=(const Vector4& v) {
+ x = v.x;
+ y = v.y;
+ z = v.z;
+ w = v.w;
+ return *this;
+}
+
+Vector4& Vector4::operator+=(const Vector4& v) {
+ x += v.x;
+ y += v.y;
+ z += v.z;
+ w += v.w;
+ return *this;
+}
+
+Vector4& Vector4::operator+(const Vector4& v) {
+ return Vector4(*this) += v;
+}
+
+Vector4& Vector4::operator-=(const Vector4& v) {
+ x -= v.x;
+ y -= v.y;
+ z -= v.z;
+ w -= v.w;
+ return *this;
+}
+
+Vector4& Vector4::operator-(const Vector4& v) {
+ return Vector4(*this) -= v;
+}