nuclear@15: #ifndef VMATH_H_ nuclear@15: #define VMATH_H_ nuclear@15: nuclear@21: #include nuclear@26: #include "fixedp.h" nuclear@21: nuclear@21: #ifndef M_PI nuclear@21: #define M_PI 3.1415926536 nuclear@21: #endif nuclear@21: nuclear@15: typedef struct { nuclear@15: float x, y, z, w; nuclear@15: } vec4_t; nuclear@15: nuclear@15: typedef struct { nuclear@15: float x, y, z; nuclear@15: } vec3_t; nuclear@15: nuclear@15: typedef struct { nuclear@15: float x, y; nuclear@15: } vec2_t; nuclear@15: nuclear@25: typedef struct { nuclear@25: fixed x, y, z, w; nuclear@25: } vec4x_t; nuclear@25: nuclear@25: typedef struct { nuclear@25: fixed x, y, z; nuclear@25: } vec3x_t; nuclear@25: nuclear@25: typedef struct { nuclear@25: fixed x, y; nuclear@25: } vec2x_t; nuclear@25: nuclear@25: nuclear@25: #define vec2_to_fixed2(v, f) \ nuclear@25: do { \ nuclear@25: f.x = fixedf(v.x); \ nuclear@25: f.y = fixedf(v.y); \ nuclear@25: } while(0) nuclear@25: nuclear@25: #define vec3_to_fixed3(v, f) \ nuclear@25: do { \ nuclear@25: f.x = fixedf(v.x); \ nuclear@25: f.y = fixedf(v.y); \ nuclear@25: f.z = fixedf(v.z); \ nuclear@25: } while(0) nuclear@25: nuclear@25: #define vec4_to_fixed4(v, f) \ nuclear@25: do { \ nuclear@25: f.x = fixedf(v.x); \ nuclear@25: f.y = fixedf(v.y); \ nuclear@25: f.z = fixedf(v.z); \ nuclear@25: f.w = fixedf(v.w); \ nuclear@25: } while(0) nuclear@25: nuclear@25: nuclear@25: #define fixed2_to_vec2(f, v) \ nuclear@25: do { \ nuclear@25: v.x = fixed_float(f.x); \ nuclear@25: v.y = fixed_float(f.y); \ nuclear@25: } while(0) nuclear@25: nuclear@25: #define fixed3_to_vec3(f, v) \ nuclear@25: do { \ nuclear@25: v.x = fixed_float(f.x); \ nuclear@25: v.y = fixed_float(f.y); \ nuclear@25: v.z = fixed_float(f.z); \ nuclear@25: } while(0) nuclear@25: nuclear@25: #define fixed4_to_vec4(f, v) \ nuclear@25: do { \ nuclear@25: v.x = fixed_float(f.x); \ nuclear@25: v.y = fixed_float(f.y); \ nuclear@25: v.z = fixed_float(f.z); \ nuclear@25: v.w = fixed_float(f.w); \ nuclear@25: } while(0) nuclear@25: nuclear@15: nuclear@15: #endif /* VMATH_H_ */