return a > b? a: b;
}
+static inline float vg_clampf( float a, float min, float max )
+{
+ return vg_minf( max, vg_maxf( a, min ) );
+}
+
#define VG_MIN( A, B ) ((A)<(B)?(A):(B))
#define VG_MAX( A, B ) ((A)>(B)?(A):(B))
b[0] = a[0]; b[1] = a[1];
}
+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]);
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 )
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 )
+{
+ return a[0]*a[0] + a[1]*a[1];
+}
+
+static inline float v2_length( v2f a )
+{
+ return sqrtf( v2_length2( a ) );
+}
+
+static inline float v2_dist2( v2f a, v2f b )
+{
+ v2f delta;
+ v2_sub( a, b, delta );
+ return v2_length2( delta );
+}
+
+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
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);
}