41 lines
No EOL
953 B
C++
41 lines
No EOL
953 B
C++
#include "vector.hpp"
|
|
#include <cmath>
|
|
#include <math.h>
|
|
|
|
float vector3f::length() { return sqrtf(pow(x, 2) + pow(y, 2) + pow(z, 2)); }
|
|
|
|
void vector3f::normalise() {
|
|
float len = length();
|
|
x /= len;
|
|
y /= len;
|
|
z /= len;
|
|
}
|
|
|
|
vector3f vector3f::operator*(vector3f o) {
|
|
return vector3f(x * o.x, y * o.y, z * o.z);
|
|
}
|
|
|
|
vector3f vector3f::operator-(vector3f o) {
|
|
return vector3f(x - o.x, y - o.y, z - o.z);
|
|
}
|
|
|
|
vector3f vector3f::operator*(float o) { return vector3f(x * o, y * o, z * o); }
|
|
|
|
vector3f vector3f::operator*(double o) { return vector3f(x * o, y * o, z * o); }
|
|
vector3f vector3f::operator-(double o) { return vector3f(x - o, y - o, z - o); }
|
|
|
|
vector3f::vector3f(float x, float y, float z) {
|
|
this->x = x;
|
|
this->y = y;
|
|
this->z = z;
|
|
}
|
|
|
|
vector3f::vector3f(){}
|
|
|
|
vector3f vector3f::lerp(vector3f b, float t) {
|
|
float rx = x + (b.x - x) * t;
|
|
float ry = y + (b.y - y) * t;
|
|
float rz = z + (b.z - z) * t;
|
|
|
|
return vector3f(rx, ry, rz);
|
|
} |