|
class TOMOVISION_UTIL Matrix {
public:
float mat[4][4] ;
friend class Vect ;
public:
typedef enum { REPLACE, BEFORE, AFTER } combine ;
// --------------- constructors ----------------------------------
inline Matrix() ;
inline Matrix( float, float, float, float,
float, float, float, float,
float, float, float, float,
float, float, float, float ) ;
inline Matrix(const Matrix& M) ;
// ---------------- functions -------------------------------------
inline void init() ;
inline void set(const Matrix& M) ;
inline void set( float vaa, float vab, float vac, float vad,
float vba, float vbb, float vbc, float vbd,
float vca, float vcb, float vcc, float vcd,
float vda, float vdb, float vdc, float vdd ) ;
inline void translate( const float x,
const float y,
const float z, const combine test) ;
inline void scale( const float x,
const float y,
const float z, const combine test) ;
inline void rot_x(const float val, const combine test) ;
inline void rot_y(const float val, const combine test) ;
inline void rot_z(const float val, const combine test) ;
inline void pivot(const float val, Vect axe, const combine test) ;
inline void stool(HWND hwnd, int code, char *str) ;
// ---------------- Overload: functions unitaires -----------------
inline int operator== (Matrix& M) ;
inline Matrix& operator= (const Matrix& M) ;
inline float* operator[] (const int i) const ;
inline Matrix operator- () const ;
inline Matrix operator! () const ; // inverse
inline Matrix operator~ () const ; // transpose
inline Matrix& operator-= (const Matrix& M) ;
inline Matrix& operator+= (const Matrix& M) ;
inline Matrix& operator*= (const Matrix& M) ;
} ;
// ---------------- Overload: fonctions binaires ------------------
inline Matrix operator* (const Matrix&, const Matrix&) ;
|