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