104 lines
2.0 KiB
C++
104 lines
2.0 KiB
C++
#pragma once
|
|
|
|
struct NVec2 {
|
|
// Init Funcs
|
|
NVec2() : x(0), y(0) {}
|
|
NVec2(float i0, float i1) : x(i0), y(i1) {}
|
|
NVec2(const NVec2 &i) {
|
|
x = i.x;
|
|
y = i.y;
|
|
}
|
|
|
|
// Operators
|
|
// Add
|
|
NVec2 &operator+=(const NVec2 &i) {
|
|
x += i.x;
|
|
y += i.y;
|
|
return *this;
|
|
}
|
|
|
|
NVec2 operator+(const NVec2 &i) const { return NVec2(x + i.x, y + i.y); }
|
|
|
|
// Sub
|
|
NVec2 &operator-=(const NVec2 &i) {
|
|
x -= i.x;
|
|
y -= i.y;
|
|
return *this;
|
|
}
|
|
|
|
NVec2 operator-(const NVec2 &i) const { return NVec2(x - i.x, y - i.y); }
|
|
|
|
// Compare
|
|
bool operator==(const NVec2 &in) const { return x == in.x && y == in.y; }
|
|
|
|
bool operator!=(const NVec2 &in) const {
|
|
// use the first comparefuncs result
|
|
// and swap it lol
|
|
return !(*this == in);
|
|
}
|
|
// Internal Values
|
|
float x;
|
|
float y;
|
|
};
|
|
|
|
struct NVec4 {
|
|
// Init Funcs
|
|
NVec4() : x(0), y(0), z(0), w(0) {}
|
|
NVec4(float i0, float i1, float i2, float i3) : x(i0), y(i1), z(i2), w(i3) {}
|
|
NVec4(const NVec4 &i) {
|
|
x = i.x;
|
|
y = i.y;
|
|
z = i.z;
|
|
w = i.w;
|
|
}
|
|
|
|
NVec4(const NVec2 &i0, const NVec2 &i1) {
|
|
x = i0.x;
|
|
y = i0.y;
|
|
z = i1.x;
|
|
w = i1.y;
|
|
}
|
|
|
|
// Operators
|
|
// Add
|
|
NVec4 &operator+=(const NVec4 &i) {
|
|
x += i.x;
|
|
y += i.y;
|
|
z += i.z;
|
|
w += i.w;
|
|
return *this;
|
|
}
|
|
|
|
NVec4 operator+(const NVec4 &i) const {
|
|
return NVec4(x + i.x, y + i.y, z + i.z, w + i.w);
|
|
}
|
|
|
|
// Sub
|
|
NVec4 &operator-=(const NVec4 &i) {
|
|
x -= i.x;
|
|
y -= i.y;
|
|
z -= i.z;
|
|
w -= i.w;
|
|
return *this;
|
|
}
|
|
|
|
NVec4 operator-(const NVec4 &i) const {
|
|
return NVec4(x - i.x, y - i.y, z - i.z, w - i.w);
|
|
}
|
|
|
|
// Compare
|
|
bool operator==(const NVec4 &in) const {
|
|
return x == in.x && y == in.y && z == in.z && w == in.w;
|
|
}
|
|
|
|
bool operator!=(const NVec4 &in) const {
|
|
// use the first comparefuncs result
|
|
// and swap it lol
|
|
return !(*this == in);
|
|
}
|
|
// Internal Values
|
|
float x;
|
|
float y;
|
|
float z;
|
|
float w;
|
|
}; |