diff options
author | vimene <vincent.menegaux@gmail.com> | 2023-11-17 13:05:22 +0100 |
---|---|---|
committer | vimene <vincent.menegaux@gmail.com> | 2023-11-17 13:05:22 +0100 |
commit | 3dc7f970305480bf5c4f60c21416adfc0b8dc958 (patch) | |
tree | b48b3d4cc153f5c88c43194eaf62475e5afe7d00 /math_vector.h | |
download | engine-3dc7f970305480bf5c4f60c21416adfc0b8dc958.tar.gz |
initial commit
Diffstat (limited to 'math_vector.h')
-rw-r--r-- | math_vector.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/math_vector.h b/math_vector.h new file mode 100644 index 0000000..336c3fe --- /dev/null +++ b/math_vector.h @@ -0,0 +1,69 @@ +#ifndef MATH_VECTOR_H +#define MATH_VECTOR_H + +class MathVector2 { + public: + float x, y; + + MathVector2(); + MathVector2(float x, float y); + bool operator==(MathVector2 other) const; + bool operator!=(MathVector2 other) const; + MathVector2 operator+() const; + MathVector2 operator-() const; + MathVector2 operator+(MathVector2 other) const; + MathVector2 operator-(MathVector2 other) const; + float det(MathVector2 other) const; + MathVector2 round() const; +}; + +MathVector2 operator*(float n, MathVector2 other); +MathVector2 operator*(MathVector2 other, float n); +MathVector2 operator/(MathVector2 other, float n); + +class MathVector3 { + public: + float x, y, z; + + MathVector3(); + MathVector3(float x, float y, float z); + bool operator==(MathVector3 other) const; + bool operator!=(MathVector3 other) const; + MathVector3 operator+() const; + MathVector3 operator-() const; + MathVector3 operator+(MathVector3 other) const; + MathVector3 operator-(MathVector3 other) const; + MathVector3 round() const; + MathVector2 xy() const; + MathVector3 cross(MathVector3 other) const; +}; + +MathVector3 operator*(float n, MathVector3 other); +MathVector3 operator*(MathVector3 other, float n); +MathVector3 operator/(MathVector3 other, float n); + +class MathVector4 { + public: + float x, y, z, w; + + MathVector4(); + MathVector4(float x, float y, float z, float w); + MathVector4(float x, float y, float z); + MathVector4(MathVector3 v, float w); + MathVector4(MathVector3 v); + bool operator==(MathVector4 other) const; + bool operator!=(MathVector4 other) const; + MathVector4 operator+() const; + MathVector4 operator-() const; + MathVector4 operator+(MathVector4 other) const; + MathVector4 operator-(MathVector4 other) const; + MathVector4 round() const; + MathVector3 xyz() const; + MathVector3 div_by_w() const; +}; + +MathVector4 operator*(float n, MathVector4 other); +MathVector4 operator*(MathVector4 other, float n); +MathVector4 operator/(MathVector4 other, float n); + +#endif // MATH_VECTOR_H |