0001:
0002:
0003:
0004:
0005:
0006:
0007:
0008:
0009:
0010: #ifndef _MATRIX_H_
0011: #define _MATRIX_H_
0012:
0013: #define IF_PI 3.14159265
0014:
0015: typedef float ifVector4[4];
0016:
0017: typedef float ifMatrix[4][4];
0018:
0019: ifMatrix *ifMatrixIdentity( ifMatrix *pOut );
0020: ifMatrix *ifMatrixIdentity( ifMatrix *pOut );
0021: ifMatrix *ifMatrixMultiply( ifMatrix *pOut
0022: , const ifMatrix *pM1
0023: , const ifMatrix *pM2
0024: );
0025: ifMatrix* ifMatrixRotationX( ifMatrix *pOut, float Angle );
0026: ifMatrix* ifMatrixRotationY( ifMatrix *pOut, float Angle );
0027: ifMatrix* ifMatrixRotationZ( ifMatrix *pOut, float Angle );
0028: ifMatrix* ifMatrixScaling( ifMatrix *pOut, float sx, float sy, float sz);
0029: ifMatrix* ifMatrixTranslation( ifMatrix *pOut, float x, float y, float z );
0030:
0031: ifMatrix* ifMatrixTranspose( ifMatrix *pOut, const ifMatrix *pM );
0032:
0033: ifVector4* ifVec4Add( ifVector4* pOut,
0034: const ifVector4* pV1,
0035: const ifVector4* pV2
0036: );
0037:
0038: ifVector4* ifVec4Normalize( ifVector4 *pOut, const ifVector4 *pV );
0039: ifVector4* ifVec4Transform( ifVector4 *pOut
0040: , const ifVector4 *pIn, const ifMatrix *pM );
0041: #endif
0042: