class vector3 { public: union { struct { float x,y,z; }; float v[3]; }; vector3(); vector3(vector3&); vector3(float, float, float); // присваиваение векторов vector3& operator= (vector3& v); // сравнение векторов bool operator== (vector3&); // величина вектора (от magnitude - величина) float mag(); // отрицательный вектор (унарная операция!!!) vector3 operator- (); vector3 operator+ (vector3&); vector3 operator- (vector3&); vector3 operator* (float&); vector3 operator/ (float&); // скалярное произедение векторов (dot product) float operator* (vector3&); // векторное произведение векторов (cross product) vector3 cross(vector3&); vector3& operator+= (vector3&); vector3& operator-= (vector3&); vector3& operator*= (float&); vector3& operator/= (float&); // нормирование вектора void normalize (); // расстояние между двумя точками float distance (vector3&); };