00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00015
00016 #ifndef __VPMATRIX_H
00017 #define __VPMATRIX_H
00018
00019
00020 #include <vppoint3d.h>
00021
00022
00023
00024
00025
00027
00028
00029
00030
00031
00032 typedef float mat44 [4][4];
00034
00035 class VPMatrix{
00036
00037
00038 private:
00039 float data[4][4];
00040
00041 protected:
00042 VPMatrix* vpGetAdjoint( void );
00043 float vpGetDet33( float, float, float, float, float, float, float, float, float );
00044 float vpGetDet22( float, float, float, float );
00045
00046 public:
00047 VPMatrix();
00048 VPMatrix( float[] );
00049 VPMatrix( float[][4] );
00050 ~VPMatrix();
00051
00052 float vpGetValueAt( int, int );
00053 void vpSetValueAt( int, int, float );
00054
00055 void vpGetMatrixF( float ** );
00056 float* vpGetMatrixVF( void );
00057
00058 VPMatrix* vpGetInverse( void );
00059 float vpGetDeterminent( void );
00060
00061 VPMatrix* vpMultiplyScalar( float );
00062 VPMatrix* vpMultiply( VPMatrix );
00063 VPMatrix* vpSubtract( VPMatrix );
00064 VPMatrix* vpAdd( VPMatrix );
00065 VPPoint3D* vpMultiply ( VPPoint3D );
00066
00067 };
00068
00069 #endif