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