?? xmatrix3x3.inl
字號:
#ifndef __XMATRIX_3X3_INLINE_INCLUDE__
#define __XMATRIX_3X3_INLINE_INCLUDE__
#ifndef IN_MATHLIB_NAMESPACE
#error You cann't include this file out the XMathLib namespace
#endif
class _MATH_LIB_EXPORT_ XMatrix3x3
{
public:
XMatrix3x3()
{
memset((void*) data,0,sizeof(float)*9);
}
XMatrix3x3( float i )
{
memset((void*) data,0,sizeof(float)*9);
for(int c = 0 ; c < 3 ; c++)
{
m[c][c] = i;
}
}
XMatrix3x3( float _data[9] )
{
for(int c = 0 ; c < 9 ; c++)
{
data[c] = _data[c];
}
}
XMatrix3x3(XVector3D vec[3],bool isVertical)
{
if(isVertical)
{
m[0][0] = vec[0].x;
m[1][0] = vec[0].y;
m[2][0] = vec[0].z;
m[0][1] = vec[1].x;
m[1][1] = vec[1].y;
m[2][1] = vec[1].z;
m[0][2] = vec[2].x;
m[1][2] = vec[2].y;
m[2][2] = vec[2].z;
}
else
{
m[0][0] = vec[0].x;
m[0][1] = vec[0].y;
m[0][2] = vec[0].z;
m[1][0] = vec[1].x;
m[1][1] = vec[1].y;
m[1][2] = vec[1].z;
m[2][0] = vec[2].x;
m[2][1] = vec[2].y;
m[2][2] = vec[2].z;
}
}
void LoadIdentity()
{
memset((void*) data,0,sizeof(float)*9);
for(int c = 0 ; c < 3 ; c++)
{
m[c][c] = 1;
}
}
void Scale(float sx,float sy,float sz)
{
m[0][0] *= sx ; m[0][1] *= sx ; m[0][2] *= sx ;
m[1][0] *= sy ; m[1][1] *= sy ; m[1][2] *= sy ;
m[2][0] *= sz ; m[2][1] *= sz ; m[2][2] *= sz ;
}
void From(XMatrix& _m);
public:
union
{
struct{
float m00,m01,m02;
float m10,m11,m12;
float m20,m21,m22;
};
float data[9];
float m[3][3];
};
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -