nuclear@3: #ifndef VMATH_H_ nuclear@3: #define VMATH_H_ nuclear@3: nuclear@3: class Vector2 { nuclear@3: public: nuclear@3: float x, y; nuclear@3: nuclear@3: Vector2() : x(0), y(0) {} nuclear@3: Vector2(float xa, float ya) : x(xa), y(ya) {} nuclear@3: nuclear@3: float &operator [](int idx) { return (&x)[idx]; } nuclear@3: const float &operator [](int idx) const { return (&x)[idx]; } nuclear@3: }; nuclear@3: nuclear@3: class Vector3 { nuclear@3: public: nuclear@3: float x, y, z; nuclear@3: nuclear@3: Vector3() : x(0), y(0), z(0) {} nuclear@3: Vector3(float xa, float ya, float za) : x(xa), y(ya), z(za) {} nuclear@3: nuclear@3: float &operator [](int idx) { return (&x)[idx]; } nuclear@3: const float &operator [](int idx) const { return (&x)[idx]; } nuclear@3: }; nuclear@3: nuclear@3: class Vector4 { nuclear@3: public: nuclear@3: float x, y, z, w; nuclear@3: nuclear@3: Vector4() : x(0), y(0), z(0), w(0) {} nuclear@3: Vector4(float xa, float ya, float za, float wa) : x(xa), y(ya), z(za), w(wa) {} nuclear@3: nuclear@3: float &operator [](int idx) { return (&x)[idx]; } nuclear@3: const float &operator [](int idx) const { return (&x)[idx]; } nuclear@3: }; nuclear@3: nuclear@3: #endif // VMATH_H_