Vect

 

 

 

class          TOMOVISION_UTIL  Vect {

 

//private:

public:

          float          x, y, z, t ;

 

public:

          // --------------- Constructeurs -------------------------------

          Vect() ;

          Vect(float val) ;

          Vect(float vx, float vy, float vz=0.0f, float vt=0.0f) ;

          Vect(float *v) ;

          Vect(Vect& v) ;

 

          // --------------- Functions ----------------------------------

          void          set(Vect& v) ;

          void          set(float val) ;

          void          set(float *val) ;

          void          set(float vx, float vy, float vz, float vt=0.0f) ;

 

          inline          float          norm()  const ;

          inline          Vect          normalise() ;

          inline          float          dist(Vect &V) ;

          inline          float          dist_sqr(Vect &V) ;

          inline          Vect          transform(Matrix M) ;

          inline          Vect          orient(Matrix M) ;

          inline          short          dir_max() ;

          inline          void    stool(HWND hwnd, int code, char *str) ;

 

          // --------------- Overloads: unary operators -----------------------------

          inline          int          operator==          (Vect& V) ;

          inline          Vect&          operator=           (Vect& V) ;

          inline          Vect&          operator=          (float val) ;

          inline          float&          operator[]          (int i)          ;

          inline          Vect          Vect::operator-  ();

          inline          Vect          Vect::operator-= (Vect& V);

          inline          Vect          Vect::operator*= (float val);

          inline          Vect          Vect::operator/= (float val);

          inline          Vect          Vect::operator+= (Vect& V);

          inline          Vect          Vect::operator+= (float val);

          inline          Vect          Vect::operator-= (float val);

          inline          Vect          Vect::operator*= (const Matrix& M);

} ;

 

 

// --------------- Overloads: binary operators ----------------------------

inline          Vect          operator^          (const Vect&, const Vect&) ;          // vect product

inline          float          operator*          (const Vect&, const Vect&) ;          // scal product

inline          Vect          operator*          (const Vect&, float) ;

inline          Vect          operator*          (float, const Vect&) ;

inline          Vect          operator/          (const Vect&, float) ;

inline          Vect          operator+          (const Vect&, const Vect&) ;

inline          Vect          operator+          (const Vect&, float) ;

inline          Vect          operator+          (float, const Vect&) ;

inline          Vect          operator-          (const Vect&, const Vect&) ;

inline          Vect          operator-          (const Vect&, float) ;

inline          Vect          operator-          (float, const Vect&) ;

inline          Vect          operator*          (const Vect& V, const Matrix& M) ;