mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-25 23:05:58 +01:00
added vector2d
This commit is contained in:
parent
ffd309ca2a
commit
52090853da
3 changed files with 51 additions and 1 deletions
19
src/helpers/Vector2D.cpp
Normal file
19
src/helpers/Vector2D.cpp
Normal file
|
@ -0,0 +1,19 @@
|
|||
#include "Vector2D.hpp"
|
||||
|
||||
Vector2D::Vector2D(double xx, double yy) {
|
||||
x = xx;
|
||||
y = yy;
|
||||
}
|
||||
|
||||
Vector2D::Vector2D() { x = 0; y = 0; }
|
||||
Vector2D::~Vector2D() {}
|
||||
|
||||
double Vector2D::normalize() {
|
||||
// get max abs
|
||||
const auto max = abs(x) > abs(y) ? abs(x) : abs(y);
|
||||
|
||||
x /= max;
|
||||
y /= max;
|
||||
|
||||
return max;
|
||||
}
|
29
src/helpers/Vector2D.hpp
Normal file
29
src/helpers/Vector2D.hpp
Normal file
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include <math.h>
|
||||
|
||||
class Vector2D {
|
||||
public:
|
||||
Vector2D(double, double);
|
||||
Vector2D();
|
||||
~Vector2D();
|
||||
|
||||
double x = 0;
|
||||
double y = 0;
|
||||
|
||||
// returns the scale
|
||||
double normalize();
|
||||
|
||||
Vector2D operator+(Vector2D a) {
|
||||
return Vector2D(this->x + a.x, this->y + a.y);
|
||||
}
|
||||
Vector2D operator-(Vector2D a) {
|
||||
return Vector2D(this->x - a.x, this->y - a.y);
|
||||
}
|
||||
Vector2D operator*(float a) {
|
||||
return Vector2D(this->x * a, this->y * a);
|
||||
}
|
||||
Vector2D operator/(float a) {
|
||||
return Vector2D(this->x / a, this->y / a);
|
||||
}
|
||||
};
|
|
@ -66,3 +66,5 @@ extern "C" {
|
|||
#undef static
|
||||
|
||||
#endif
|
||||
|
||||
#include "helpers/Vector2D.hpp"
|
||||
|
|
Loading…
Reference in a new issue