00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VECTOR_H
00019 #define VECTOR_H
00020
00021 #include <string>
00022 #include <cstdio>
00023
00025 class Vector {
00027 float data[4];
00028
00029 public:
00031 Vector( const float x=0.0,
00032 const float y=0.0,
00033 const float z=0.0,
00034 const float w=1.0
00035 );
00036
00037
00038 float x () const;
00039 float y () const;
00040 float z () const;
00041 float w () const;
00042
00043 float & x ();
00044 float & y ();
00045 float & z ();
00046 float & w ();
00047
00048
00049 float magnitude() const;
00050 void normalize();
00051 void set(float nx, float ny, float nz);
00052
00053
00054 friend Vector operator + (const Vector &v1, const Vector &v2);
00055 friend Vector operator - (const Vector &v1, const Vector &v2);
00056 friend float dot (const Vector &v1, const Vector &v2);
00057 friend Vector cross (const Vector &v1, const Vector &v2);
00058 std::string toString();
00059
00060 };
00061
00062 #endif
00063