Game Development Reference
In-Depth Information
D3DXMatrixInverse(&out, NULL, this);
return out;
}
// Initialization methods
inline void BuildTranslation(const Vec3 &pos)
{
*this = Mat4x4::g_Identity;
m[3][0] = pos.x;
m[3][1] = pos.y;
m[3][2] = pos.z;
}
inline void BuildTranslation(const float x, const float y, const float z )
{
*this = Mat4x4::g_Identity;
m[3][0] = x;
m[3][1] = y;
m[3][2] = z;
}
inline void BuildRotationX(const float radians)
{ D3DXMatrixRotationX(this, radians); }
inline void BuildRotationY(const float radians)
{ D3DXMatrixRotationY(this, radians); }
inline void BuildRotationZ(const float radians)
{ D3DXMatrixRotationZ(this, radians); }
inline void BuildYawPitchRoll(
const float yawRadians, const float pitchRadians,
const float rollRadians)
{ D3DXMatrixRotationYawPitchRoll(
this, yawRadians, pitchRadians, rollRadians); }
inline void BuildRotationQuat(const Quaternion &q)
{ D3DXMatrixRotationQuaternion(this, &q); }
inline void BuildRotationLookAt(const Vec3 &eye, const Vec3 &at, const Vec3 &up) {
D3DXMatrixLookAtRH(this, &eye, &at, &up); }
Mat4x4(D3DXMATRIX &mat) { memcpy(&m, &mat.m, sizeof(mat.m)); };
Mat4x4() : D3DXMATRIX() { }
static const Mat4x4 g_Identity;
};
const Mat4x4 Mat4x4::g_Identity(D3DXMATRIX(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));
inline Mat4x4 operator * (const Mat4x4 &a, const Mat4x4 &b)
{
Mat4x4 out;
D3DXMatrixMultiply(&out, &a, &b);
return out;
}
Search WWH ::




Custom Search