vec3.h (701B)
1 #ifndef VEC3_H 2 #define VEC3_H 3 4 #include <stdio.h> 5 6 typedef struct { 7 double x, y, z; 8 } vec3; 9 10 typedef vec3 point3; 11 12 double vec3_getx(vec3); 13 double vec3_gety(vec3); 14 double vec3_getz(vec3); 15 void vec3_set(vec3 *, double, double, double); 16 17 vec3 vec3_neg(vec3); 18 vec3 vec3_acc_add(vec3, vec3); 19 vec3 vec3_acc_mul(vec3, double); 20 vec3 vec3_acc_div(vec3, double); 21 22 double vec3_length(vec3); 23 double vec3_length_squared(vec3); 24 25 /* utilities */ 26 void vec3_print(FILE *, vec3); 27 vec3 vec3_add(vec3, vec3); 28 vec3 vec3_sub(vec3, vec3); 29 vec3 vec3_mul_vec(vec3, vec3); 30 vec3 vec3_mul(double, vec3); 31 vec3 vec3_div(vec3, double); 32 double vec3_dot(vec3, vec3); 33 vec3 vec3_cross(vec3, vec3); 34 vec3 vec3_unit_vector(vec3); 35 36 #endif