Files
fphysics/vec_util.h
T

43 lines
1003 B
C

#ifndef VEC_UTIL_H_
#define VEC_UTIL_H_
#include <raylib.h>
#include <math.h>
static const Vector2 NULL_VEC2 = {0, 0};
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);
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;
}
#endif // VEC_UTIL_H_