// // vector3d.h // // A vector in 3d space // // Copyright (C) J. Belson 1998.11.30 // #ifndef _VECTOR3D_H_ #define _VECTOR3D_H_ #include /** * Represents a vector in 3d space */ class vector3d { private: public: float i, j, k; vector3d(float ii, float jj, float kk, bool norm = false); vector3d() {}; float dot_product(const vector3d &v) const; vector3d vector_product(const vector3d &v) const; float angle(const vector3d& v) const; float magnitude(void) const; void normalise(void); vector3d operator+(vector3d v) const; vector3d operator*(float f) const; vector3d operator-(vector3d v) const; vector3d operator-() const; friend std::ostream& operator<<(std::ostream& str, const vector3d& v); void dump(void); }; #endif // _VECTOR3D_H_