Files
Nuake-custom/Nuake/Vendors/libmap/h/vector.h
2025-01-30 22:41:17 -05:00

32 lines
751 B
C

#ifndef VECTOR_H
#define VECTOR_H
#include <stdbool.h>
typedef struct vec3
{
double x;
double y;
double z;
} vec3;
bool vec3_equals(vec3 lhs, vec3 rhs);
vec3 vec3_add(vec3 lhs, vec3 rhs);
vec3 vec3_sub(vec3 lhs, vec3 rhs);
vec3 vec3_mul(vec3 lhs, vec3 rhs);
vec3 vec3_div(vec3 lhs, vec3 rhs);
vec3 vec3_add_double(const vec3 lhs, const double rhs);
vec3 vec3_sub_double(const vec3 lhs, const double rhs);
vec3 vec3_mul_double(const vec3 lhs, const double rhs);
vec3 vec3_div_double(const vec3 lhs, const double rhs);
double vec3_dot(vec3 lhs, vec3 rhs);
vec3 vec3_cross(vec3 lhs, vec3 rhs);
double vec3_sqlen(vec3 v);
double vec3_length(vec3 v);
vec3 vec3_normalize(vec3 v);
vec3 vec3_rotate(vec3 v, vec3 axis, double angle);
#endif