rayfract
diff src/vmath.cc @ 3:bf1d56975cc9
- added visual studio project
- removed vmath dependency
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 26 Oct 2010 09:52:57 +0300 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/vmath.cc Tue Oct 26 09:52:57 2010 +0300 1.3 @@ -0,0 +1,89 @@ 1.4 +#include "vmath.h" 1.5 + 1.6 +Vector2::Vector2() 1.7 +{ 1.8 + x = y = 0.0f; 1.9 +} 1.10 + 1.11 +Vector2::Vector2(float x, float y) 1.12 +{ 1.13 + this->x = x; 1.14 + this->y = y; 1.15 +} 1.16 + 1.17 +Vector2 operator +(const Vector2 &a, const Vector2 &b) 1.18 +{ 1.19 + return Vector2(a.x + b.x, a.y + b.y); 1.20 +} 1.21 + 1.22 +Vector2 operator *(const Vector2 &v, float s) 1.23 +{ 1.24 + return Vector2(v.x * s, v.y * s); 1.25 +} 1.26 + 1.27 +Vector3::Vector3() 1.28 +{ 1.29 + x = y = z = 0.0f; 1.30 +} 1.31 + 1.32 +Vector3::Vector3(float x, float y, float z) 1.33 +{ 1.34 + this->x = x; 1.35 + this->y = y; 1.36 + this->z = z; 1.37 +} 1.38 + 1.39 +Vector4::Vector4() 1.40 +{ 1.41 + x = y = z = w = 0.0f; 1.42 +} 1.43 + 1.44 +Vector4::Vector4(float x, float y, float z, float w) 1.45 +{ 1.46 + this->x = x; 1.47 + this->y = y; 1.48 + this->z = z; 1.49 + this->w = w; 1.50 +} 1.51 + 1.52 +float &Vector4::operator [](int idx) 1.53 +{ 1.54 + switch(idx) { 1.55 + case 0: 1.56 + return x; 1.57 + break; 1.58 + case 1: 1.59 + return y; 1.60 + break; 1.61 + case 2: 1.62 + return z; 1.63 + break; 1.64 + case 3: 1.65 + return w; 1.66 + break; 1.67 + default: 1.68 + break; 1.69 + } 1.70 + return x; 1.71 +} 1.72 + 1.73 +const float &Vector4::operator [](int idx) const 1.74 +{ 1.75 + switch(idx) { 1.76 + case 0: 1.77 + return x; 1.78 + break; 1.79 + case 1: 1.80 + return y; 1.81 + break; 1.82 + case 2: 1.83 + return z; 1.84 + break; 1.85 + case 3: 1.86 + return w; 1.87 + break; 1.88 + default: 1.89 + break; 1.90 + } 1.91 + return x; 1.92 +} 1.93 \ No newline at end of file