rayzor

diff src/vmath.h @ 17:79609d482762

the renderer renders, also fixed an unnoticed matrix conversion problem between scenegraph and min3d
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 14 Apr 2014 07:34:45 +0300
parents be616b58df99
children 252999cd1a3f
line diff
     1.1 --- a/src/vmath.h	Sun Apr 13 09:54:51 2014 +0300
     1.2 +++ b/src/vmath.h	Mon Apr 14 07:34:45 2014 +0300
     1.3 @@ -50,6 +50,11 @@
     1.4  	return Vector3(a.x - b.x, a.y - b.y, a.z - b.z);
     1.5  }
     1.6  
     1.7 +inline Vector3 operator -(const Vector3 &v)
     1.8 +{
     1.9 +	return Vector3(-v.x, -v.y, -v.z);
    1.10 +}
    1.11 +
    1.12  inline Vector3 operator *(const Vector3 &a, const Vector3 &b)
    1.13  {
    1.14  	return Vector3(a.x * b.x, a.y * b.y, a.z * b.z);
    1.15 @@ -85,6 +90,13 @@
    1.16  	return Vector3(x, y, z);
    1.17  }
    1.18  
    1.19 +inline Vector3 lerp(const Vector3 &a, const Vector3 &b, float t)
    1.20 +{
    1.21 +	return Vector3(a.x + (b.x - a.x) * t,
    1.22 +			a.y + (b.y - a.y) * t,
    1.23 +			a.z + (b.z - a.z) * t);
    1.24 +}
    1.25 +
    1.26  // ---- Vector4 ----
    1.27  
    1.28  class Vector4 {
    1.29 @@ -129,6 +141,11 @@
    1.30  	return Vector4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
    1.31  }
    1.32  
    1.33 +inline Vector4 operator -(const Vector4 &v)
    1.34 +{
    1.35 +	return Vector4(-v.x, -v.y, -v.z, -v.w);
    1.36 +}
    1.37 +
    1.38  inline Vector4 operator *(const Vector4 &v, float s)
    1.39  {
    1.40  	return Vector4(v.x * s, v.y * s, v.z * s, v.w * s);
    1.41 @@ -153,4 +170,13 @@
    1.42  	return Vector4(x, y, z, w);
    1.43  }
    1.44  
    1.45 +inline Vector4 lerp(const Vector4 &a, const Vector4 &b, float t)
    1.46 +{
    1.47 +	return Vector4(a.x + (b.x - a.x) * t,
    1.48 +			a.y + (b.y - a.y) * t,
    1.49 +			a.z + (b.z - a.z) * t,
    1.50 +			a.w + (b.w - a.w) * t);
    1.51 +}
    1.52 +
    1.53 +
    1.54  #endif	// VMATH_H_