Esempio n. 1
0
void 	mlMatrixTranspose(mlMatrix4x4 & result, const mlMatrix4x4 & source)
{
	result = mlMatrix4x4(
		mlVector4D(source.I.x, source.J.x, source.K.x, source.T.x),
		mlVector4D(source.I.y, source.J.y, source.K.y, source.T.y),
		mlVector4D(source.I.z, source.J.z, source.K.z, source.T.z),
		mlVector4D(source.I.w, source.J.w, source.K.w, source.T.w)
		);
}
Esempio n. 2
0
mlVector4D	mlMatrix4x4::TransformVector(const mlVector4D &v) const
{
	return mlVector4D(
				I.x * v.x + J.x * v.y + K.x * v.z + T.x * v.w,
				I.y * v.x + J.y * v.y + K.y * v.z + T.y * v.w,
				I.z * v.x + J.z * v.y + K.z * v.z + T.z * v.w,
				I.w * v.x + J.w * v.y + K.w * v.z + T.w * v.w
				);
}
Esempio n. 3
0
mlVector4D	operator * (mlFloat s, const mlVector4D &v)		{ return mlVector4D(v.x * s, v.y * s, v.z * s, v.w * s); }
Esempio n. 4
0
mlVector4D	mlVector4D::operator +  (const mlVector4D &v) const	{ return mlVector4D(x + v.x, y + v.y, z + v.z, w + v.w); }
Esempio n. 5
0
mlVector4D	mlVector4D::operator -  (const mlVector4D &v) const	{ return mlVector4D(x - v.x, y - v.y, z - v.z, w - v.w); }
Esempio n. 6
0
	mlVector3D(1.0f, 0.0f, 0.0f),
	mlVector3D(0.0f, 1.0f, 0.0f),
	mlVector3D(0.0f, 0.0f, 1.0f)
);

extern const mlMatrix3x4	mlMatrix3x4Identity
(
	mlVector3D(1.0f, 0.0f, 0.0f),
	mlVector3D(0.0f, 1.0f, 0.0f),
	mlVector3D(0.0f, 0.0f, 1.0f),
	mlVector3D(0.0f, 0.0f, 0.0f)
);

extern const mlMatrix4x4	mlMatrix4x4Identity
(
	mlVector4D(1.0f, 0.0f, 0.0f, 0.0f),
	mlVector4D(0.0f, 1.0f, 0.0f, 0.0f),
	mlVector4D(0.0f, 0.0f, 1.0f, 0.0f),
	mlVector4D(0.0f, 0.0f, 0.0f, 1.0f)
);

mlMatrix3x4::mlMatrix3x4(const mlQuaternion &quaternion)
{
	SetRotation(quaternion);
	SetTranslation(mlVector3DZero);
}

mlMatrix4x4::mlMatrix4x4(const mlMatrix3x3& matrixCloneFrom, const mlVector3D& translation)
{
	I.x = matrixCloneFrom.I.x;
	I.y = matrixCloneFrom.I.y;