46 lines
1007 B
C
46 lines
1007 B
C
#include "vec_utils.h"
|
|
|
|
|
|
bool vec2_is_null(Vector2 v) {
|
|
if (v.x == 0 && v.y == 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
Vector2 transform_to_center(Vector2 v) {
|
|
int width = GetRenderWidth();
|
|
int height = GetRenderHeight();
|
|
Vector2 result = {v.x + width / 2.0, v.y + height / 2.0};
|
|
return result;
|
|
}
|
|
|
|
Vector2 vec2_sum(const Vector2 a, const Vector2 b) {
|
|
Vector2 result = {a.x + b.x, a.y + b.y};
|
|
return result;
|
|
}
|
|
Vector2 vec2_diff(const Vector2 a, const Vector2 b) {
|
|
Vector2 result = {a.x - b.x, a.y - b.y};
|
|
return result;
|
|
}
|
|
|
|
float vec2_len(Vector2 v) { return sqrtf(v.x * v.x + v.y * v.y); }
|
|
|
|
Vector2 vec2_normalize(const Vector2 v) {
|
|
float len = vec2_len(v);
|
|
if (len == 0) {
|
|
return NULL_VEC2;
|
|
}
|
|
Vector2 result = {v.x / len, v.y / len};
|
|
return result;
|
|
}
|
|
|
|
Vector2 vec2_scale(const Vector2 normal, const float len) {
|
|
Vector2 result = {len * normal.x, len * normal.y};
|
|
return result;
|
|
}
|
|
|
|
float vec2_dot(const Vector2 a, const Vector2 b) {
|
|
return a.x * b.x + a.y * b.y;
|
|
}
|