Add vec_len2d and angle_delta_rad to util.c

This commit is contained in:
8dcc 2023-07-23 16:21:53 +02:00
parent 367a811667
commit 60847df031
2 changed files with 19 additions and 0 deletions

View File

@ -26,6 +26,8 @@ bool valid_client(cl_entity_t* ent);
char* get_name(int ent_idx);
vec3_t vec3(float x, float y, float z);
bool vec_is_zero(vec3_t v);
float vec_len2d(vec3_t v);
float angle_delta_rad(float a, float b);
bool world_to_screen(vec3_t vec, vec2_t screen);
void gl_drawbox(int x, int y, int w, int h, rgb_t c);
void gl_drawline(int x0, int y0, int x1, int y1, float w, rgb_t col);

View File

@ -1,8 +1,10 @@
#include "include/util.h"
#include "include/sdk.h"
#include "include/globals.h"
#include <math.h>
#include <GL/gl.h>
bool is_alive(cl_entity_t* ent) {
@ -34,6 +36,21 @@ bool vec_is_zero(vec3_t v) {
return v[0] == 0.0f && v[1] == 0.0f && v[2] == 0.0f;
}
float vec_len2d(vec3_t v) {
return sqrtf(v.x * v.x + v.y * v.y);
}
float angle_delta_rad(float a, float b) {
float delta = isfinite(a - b) ? remainder(a - b, 360) : 0;
if (a > b && delta >= M_PI)
delta -= M_PI * 2;
else if (delta <= -M_PI)
delta += M_PI * 2;
return delta;
}
bool world_to_screen(vec3_t vec, vec2_t screen) {
if (vec_is_zero(vec))
return false;