nuclear@3: #include "vmath.h" nuclear@3: nuclear@3: Vector2::Vector2() nuclear@3: { nuclear@3: x = y = 0.0f; nuclear@3: } nuclear@3: nuclear@3: Vector2::Vector2(float x, float y) nuclear@3: { nuclear@3: this->x = x; nuclear@3: this->y = y; nuclear@3: } nuclear@3: nuclear@3: Vector2 operator +(const Vector2 &a, const Vector2 &b) nuclear@3: { nuclear@3: return Vector2(a.x + b.x, a.y + b.y); nuclear@3: } nuclear@3: nuclear@3: Vector2 operator *(const Vector2 &v, float s) nuclear@3: { nuclear@3: return Vector2(v.x * s, v.y * s); nuclear@3: } nuclear@3: nuclear@3: Vector3::Vector3() nuclear@3: { nuclear@3: x = y = z = 0.0f; nuclear@3: } nuclear@3: nuclear@3: Vector3::Vector3(float x, float y, float z) nuclear@3: { nuclear@3: this->x = x; nuclear@3: this->y = y; nuclear@3: this->z = z; nuclear@3: } nuclear@3: nuclear@3: Vector4::Vector4() nuclear@3: { nuclear@3: x = y = z = w = 0.0f; nuclear@3: } nuclear@3: nuclear@3: Vector4::Vector4(float x, float y, float z, float w) nuclear@3: { nuclear@3: this->x = x; nuclear@3: this->y = y; nuclear@3: this->z = z; nuclear@3: this->w = w; nuclear@3: } nuclear@3: nuclear@3: float &Vector4::operator [](int idx) nuclear@3: { nuclear@3: switch(idx) { nuclear@3: case 0: nuclear@3: return x; nuclear@3: break; nuclear@3: case 1: nuclear@3: return y; nuclear@3: break; nuclear@3: case 2: nuclear@3: return z; nuclear@3: break; nuclear@3: case 3: nuclear@3: return w; nuclear@3: break; nuclear@3: default: nuclear@3: break; nuclear@3: } nuclear@3: return x; nuclear@3: } nuclear@3: nuclear@3: const float &Vector4::operator [](int idx) const nuclear@3: { nuclear@3: switch(idx) { nuclear@3: case 0: nuclear@3: return x; nuclear@3: break; nuclear@3: case 1: nuclear@3: return y; nuclear@3: break; nuclear@3: case 2: nuclear@3: return z; nuclear@3: break; nuclear@3: case 3: nuclear@3: return w; nuclear@3: break; nuclear@3: default: nuclear@3: break; nuclear@3: } nuclear@3: return x; nuclear@3: }