rayfract

annotate 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
rev   line source
nuclear@3 1 #include "vmath.h"
nuclear@3 2
nuclear@3 3 Vector2::Vector2()
nuclear@3 4 {
nuclear@3 5 x = y = 0.0f;
nuclear@3 6 }
nuclear@3 7
nuclear@3 8 Vector2::Vector2(float x, float y)
nuclear@3 9 {
nuclear@3 10 this->x = x;
nuclear@3 11 this->y = y;
nuclear@3 12 }
nuclear@3 13
nuclear@3 14 Vector2 operator +(const Vector2 &a, const Vector2 &b)
nuclear@3 15 {
nuclear@3 16 return Vector2(a.x + b.x, a.y + b.y);
nuclear@3 17 }
nuclear@3 18
nuclear@3 19 Vector2 operator *(const Vector2 &v, float s)
nuclear@3 20 {
nuclear@3 21 return Vector2(v.x * s, v.y * s);
nuclear@3 22 }
nuclear@3 23
nuclear@3 24 Vector3::Vector3()
nuclear@3 25 {
nuclear@3 26 x = y = z = 0.0f;
nuclear@3 27 }
nuclear@3 28
nuclear@3 29 Vector3::Vector3(float x, float y, float z)
nuclear@3 30 {
nuclear@3 31 this->x = x;
nuclear@3 32 this->y = y;
nuclear@3 33 this->z = z;
nuclear@3 34 }
nuclear@3 35
nuclear@3 36 Vector4::Vector4()
nuclear@3 37 {
nuclear@3 38 x = y = z = w = 0.0f;
nuclear@3 39 }
nuclear@3 40
nuclear@3 41 Vector4::Vector4(float x, float y, float z, float w)
nuclear@3 42 {
nuclear@3 43 this->x = x;
nuclear@3 44 this->y = y;
nuclear@3 45 this->z = z;
nuclear@3 46 this->w = w;
nuclear@3 47 }
nuclear@3 48
nuclear@3 49 float &Vector4::operator [](int idx)
nuclear@3 50 {
nuclear@3 51 switch(idx) {
nuclear@3 52 case 0:
nuclear@3 53 return x;
nuclear@3 54 break;
nuclear@3 55 case 1:
nuclear@3 56 return y;
nuclear@3 57 break;
nuclear@3 58 case 2:
nuclear@3 59 return z;
nuclear@3 60 break;
nuclear@3 61 case 3:
nuclear@3 62 return w;
nuclear@3 63 break;
nuclear@3 64 default:
nuclear@3 65 break;
nuclear@3 66 }
nuclear@3 67 return x;
nuclear@3 68 }
nuclear@3 69
nuclear@3 70 const float &Vector4::operator [](int idx) const
nuclear@3 71 {
nuclear@3 72 switch(idx) {
nuclear@3 73 case 0:
nuclear@3 74 return x;
nuclear@3 75 break;
nuclear@3 76 case 1:
nuclear@3 77 return y;
nuclear@3 78 break;
nuclear@3 79 case 2:
nuclear@3 80 return z;
nuclear@3 81 break;
nuclear@3 82 case 3:
nuclear@3 83 return w;
nuclear@3 84 break;
nuclear@3 85 default:
nuclear@3 86 break;
nuclear@3 87 }
nuclear@3 88 return x;
nuclear@3 89 }