projects
/
vg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
perlin
[vg.git]
/
vg_m.h
diff --git
a/vg_m.h
b/vg_m.h
index 3c78466b68ca046f23890a14aaf033bf36f3be55..2a5082d9b813c53687fb60254b47b5c141836caa 100644
(file)
--- a/
vg_m.h
+++ b/
vg_m.h
@@
-269,6
+269,11
@@
static inline void v3_add( v3f a, v3f b, v3f d )
d[0] = a[0]+b[0]; d[1] = a[1]+b[1]; d[2] = a[2]+b[2];
}
d[0] = a[0]+b[0]; d[1] = a[1]+b[1]; d[2] = a[2]+b[2];
}
+static inline void v3i_add( v3i a, v3i b, v3i d )
+{
+ d[0] = a[0]+b[0]; d[1] = a[1]+b[1]; d[2] = a[2]+b[2];
+}
+
static inline void v4_add( v4f a, v4f b, v4f d )
{
d[0] = a[0]+b[0];
static inline void v4_add( v4f a, v4f b, v4f d )
{
d[0] = a[0]+b[0];
@@
-282,6
+287,11
@@
static inline void v3_sub( v3f a, v3f b, v3f d )
d[0] = a[0]-b[0]; d[1] = a[1]-b[1]; d[2] = a[2]-b[2];
}
d[0] = a[0]-b[0]; d[1] = a[1]-b[1]; d[2] = a[2]-b[2];
}
+static inline void v3i_sub( v3i a, v3i b, v3i d )
+{
+ d[0] = a[0]-b[0]; d[1] = a[1]-b[1]; d[2] = a[2]-b[2];
+}
+
static inline void v3_mul( v3f a, v3f b, v3f d )
{
d[0] = a[0]*b[0]; d[1] = a[1]*b[1]; d[2] = a[2]*b[2];
static inline void v3_mul( v3f a, v3f b, v3f d )
{
d[0] = a[0]*b[0]; d[1] = a[1]*b[1]; d[2] = a[2]*b[2];
@@
-1376,8
+1386,7
@@
static inline void q_inv( v4f q, v4f d )
static inline void q_nlerp( v4f a, v4f b, float t, v4f d )
{
static inline void q_nlerp( v4f a, v4f b, float t, v4f d )
{
- if( v4_dot(a,b) < 0.0f )
- {
+ if( v4_dot(a,b) < 0.0f ){
v4_muls( b, -1.0f, d );
v4_lerp( a, d, t, d );
}
v4_muls( b, -1.0f, d );
v4_lerp( a, d, t, d );
}
@@
-2036,6
+2045,7
@@
static int spherecast_triangle( v3f tri[3],
static inline float vg_randf(void)
{
static inline float vg_randf(void)
{
+ /* TODO: replace with our own rand */
return (float)rand()/(float)(RAND_MAX);
}
return (float)rand()/(float)(RAND_MAX);
}
@@
-2073,4
+2083,13
@@
static void eval_bezier_time( v3f p0, v3f p1, v3f h0, v3f h1, float t, v3f p )
v3_muladds( p, p0, 3.0f*tt -ttt -3.0f*t +1.0f, p );
}
v3_muladds( p, p0, 3.0f*tt -ttt -3.0f*t +1.0f, p );
}
+static void eval_bezier3( v3f p0, v3f p1, v3f p2, float t, v3f p )
+{
+ float u = 1.0f-t;
+
+ v3_muls( p0, u*u, p );
+ v3_muladds( p, p1, 2.0f*u*t, p );
+ v3_muladds( p, p2, t*t, p );
+}
+
#endif /* VG_M_H */
#endif /* VG_M_H */