#ifndef MATH_VECTOR4_H #define MATH_VECTOR4_H #include #include class Vec3; class Quat; class Vec4 { public: float x, y, z, w; Vec4(void); Vec4(float x, float y, float z, float w); Vec4(float *v); Vec4(const Vec3 &v, float w = 0.0f); Vec4(const Quat &w); float *ptr(void); Vec4 operator-(void) const; Vec4 operator+(const Vec4 &rhs) const; Vec4 operator-(const Vec4 &rhs) const; Vec4 operator*(float rhs) const; Vec4 operator/(float rhs) const; Vec4 &operator+=(const Vec4 &rhs); Vec4 &operator-=(const Vec4 &rhs); Vec4 &operator*=(float rhs); Vec4 &operator/=(float rhs); bool operator==(const Vec4 &rhs) const; bool operator!=(const Vec4 &rhs) const; float norm(void) const; float normsq(void) const; Vec4 normalized(void) const; float dot(const Vec4 &rhs) const; void print(std::ostream &of) const; }; #endif