|
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) ;
|