X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg%2Fvg_m.h;h=577138fb12e575698d1c941e15958f05a898beeb;hb=aa435c13e7184bcd2034b8af1b20db1063baf9ec;hp=dd7f49b6d4cf7571862ee6c01df317701beda59f;hpb=32cb95b8c1548dccdf2b82d6ab56abb0bebf602b;p=fishladder.git diff --git a/vg/vg_m.h b/vg/vg_m.h index dd7f49b..577138f 100644 --- a/vg/vg_m.h +++ b/vg/vg_m.h @@ -55,11 +55,21 @@ static inline void v2i_copy( v2i a, v2i b ) b[0] = a[0]; b[1] = a[1]; } +static inline int v2i_eq( v2i a, v2i b ) +{ + return ((a[0] == b[0]) && (a[1] == b[1])); +} + static inline void v2i_add( v2i a, v2i b, v2i d ) { d[0] = a[0]+b[0]; d[1] = a[1]+b[1]; } +static inline void v2i_sub( v2i a, v2i b, v2i d ) +{ + d[0] = a[0]-b[0]; d[1] = a[1]-b[1]; +} + static inline void v2_minv( v2f a, v2f b, v2f dest ) { dest[0] = vg_minf(a[0], b[0]); @@ -100,7 +110,8 @@ static inline void v2_divs( v2f a, float s, v2f d ) static inline void v2_mul( v2f a, v2f b, v2f d ) { - d[0] = a[0]*b[0]; d[1] = a[1]*b[1]; + d[0] = a[0]*b[0]; + d[1] = a[1]*b[1]; } static inline void v2_div( v2f a, v2f b, v2f d ) @@ -108,9 +119,16 @@ static inline void v2_div( v2f a, v2f b, v2f d ) d[0] = a[0]/b[0]; d[1] = a[1]/b[1]; } +static inline void v2_muladd( v2f a, v2f b, v2f s, v2f d ) +{ + d[0] = a[0]+b[0]*s[0]; + d[1] = a[1]+b[1]*s[1]; +} + static inline void v2_muladds( v2f a, v2f b, float s, v2f d ) { - d[0] = a[0]+b[0]*s; d[1] = a[1]+b[1]*s; + d[0] = a[0]+b[0]*s; + d[1] = a[1]+b[1]*s; } static inline float v2_length2( v2f a ) @@ -135,6 +153,12 @@ static inline float v2_dist( v2f a, v2f b ) return sqrtf( v2_dist2( a, b ) ); } +static inline void v2_lerp( v2f a, v2f b, float t, v2f d ) +{ + d[0] = a[0] + t*(b[0]-a[0]); + d[1] = a[1] + t*(b[1]-a[1]); +} + // Vector 3 // ================================================================================================================== @@ -222,7 +246,7 @@ static inline void v3_normalize( v3f a ) v3_muls( a, 1.f / v3_length( a ), a ); } -static inline float csr_lerpf( float a, float b, float t ) +static inline float vg_lerpf( float a, float b, float t ) { return a + t*(b-a); }