00001 #pragma once
00002
00003 #include <vector>
00004 #include <cmath>
00005
00006 using namespace std;
00007
00008
00039 class CVisVector
00040 {
00041
00042 public:
00043 float x,y,z;
00044
00045 public:
00046
00047 CVisVector();
00048
00049 CVisVector( const float& a, const float& b, const float& c );
00050
00051
00052 const bool operator == ( const CVisVector& v ) const;
00053 const bool operator != ( const CVisVector& v ) const;
00054 const CVisVector operator - () ;
00055 const CVisVector& operator = ( const CVisVector& v );
00056 const CVisVector& operator += ( const CVisVector& v );
00057 const CVisVector& operator -= ( const CVisVector& v );
00058 const CVisVector& operator *= ( const float& s );
00059 const CVisVector& operator /= ( const float& s );
00060 const CVisVector operator + ( const CVisVector& v ) const;
00061 const CVisVector operator - ( const CVisVector& v ) const;
00062 const CVisVector operator * ( const float& s ) const;
00063
00064 friend inline const CVisVector CVisVector::operator * ( const float& s, const CVisVector& v )
00065 {
00066 return v * s;
00067 }
00068
00069
00070 const CVisVector operator / (float s) const;
00071 const CVisVector cross( const CVisVector& v ) const;
00072 const float dot( const CVisVector& v ) const;
00073 const float length() const;
00074 const CVisVector unit() const;
00075 void normalize();
00076
00077
00078
00079 };
00080
00081
00082
00083