30 #include "engines/icb/gfx/psx_pcdefines.h" 31 #include "engines/icb/gfx/rlp_api.h" 48 #define DOT_PRODUCT(v0x, v0y, v0z, v1x, v1y, v1z) (((v0x) * (v1x)) + ((v0y) * (v1y)) + ((v0z) * (v1z))) 50 #define CROSS_PRODUCT(v0x, v0y, v0z, v1x, v1y, v1z, v2x, v2y, v2z) \ 52 v2x = ((v0y) * (v1z)) - ((v0z) * (v1y)); \ 53 v2y = ((v0z) * (v1x)) - ((v0x) * (v1z)); \ 54 v2z = ((v0x) * (v1y)) - ((v0y) * (v1x)); \ 57 #define VEC_SUB(v0x, v0y, v0z, v1x, v1y, v1z, v2x, v2y, v2z) \ 64 #define VEC_ADD(v0x, v0y, v0z, v1x, v1y, v1z, v2x, v2y, v2z) \ 71 #define DOT_PRODUCT(v0x, v0y, v0z, v1x, v1y, v1z) (((v0x) * (v1x)) + ((v0y) * (v1y)) + ((v0z) * (v1z))) 73 #define CROSS_PRODUCT(v0x, v0y, v0z, v1x, v1y, v1z, v2x, v2y, v2z) \ 75 v2x = ((v0y) * (v1z)) - ((v0z) * (v1y)); \ 76 v2y = ((v0z) * (v1x)) - ((v0x) * (v1z)); \ 77 v2z = ((v0x) * (v1y)) - ((v0y) * (v1x)); \ 80 #define NORMALISE(v0x, v0y, v0z) \ 82 double r = sqrt(DOT_PRODUCT(v0x, v0y, v0z, v0x, v0y, v0z)); \ 83 (v0x) = (float)((v0x) / r); \ 84 (v0y) = (float)((v0y) / r); \ 85 (v0z) = (float)((v0z) / r); \ 88 #define NORMALISE_VECTOR(v) NORMALISE((v).vx, (v).vy, (v).vz) 90 #define DOT_PRODUCT_VECTOR(v0, v1) DOT_PRODUCT(((v0).vx), ((v0).vy), ((v0).vz), ((v1).vx), ((v1).vy), ((v1).vz)) 92 #define CROSS_PRODUCT_VECTOR(v0, v1, v2) CROSS_PRODUCT(((v0).vx), ((v0).vy), ((v0).vz), ((v1).vx), ((v1).vy), ((v1).vz), ((v2).vx), ((v2).vy), ((v2).vz), ) 94 #define VEC_ADD_VECTOR(v0, v1, v2) VEC_ADD(((v0).vx), ((v0).vy), ((v0).vz), ((v1).vx), ((v1).vy), ((v1).vz), ((v2).vx), ((v2).vy), ((v2).vz), ) 96 #define VEC_SUB_VECTOR(v0, v1, v2) VEC_SUB(((v0).vx), ((v0).vy), ((v0).vz), ((v1).vx), ((v1).vy), ((v1).vz), ((v2).vx), ((v2).vy), ((v2).vz), ) 98 #define DOT_PRODUCT_SVECTOR(v0, v1) (DOT_PRODUCT((v0.vx), (v0.vy), (v0.vz), (v1.vx), (v1.vy), (v1.vz))) 102 #endif // #ifndef SHADE_H
Definition: rlp_api.h:136
Definition: rlp_api.h:152