Matrix4x4::Matrix4x4(const Vector& vecForward, const Vector& vecUp, const Vector& vecRight, const Vector& vecPosition)
{
	SetForwardVector(vecForward);
	SetUpVector(vecUp);
	SetRightVector(vecRight);
	SetTranslation(vecPosition);

	m[0][3] = 0;
	m[1][3] = 0;
	m[2][3] = 0;
	m[3][3] = 1;
}
Exemple #2
0
void Matrix4x4::SetOrientation(const Vector& v, const Vector& vecUp)
{
	Vector vecDir = v.Normalized();

	Vector vecLeft;
	if (vecDir != vecUp && vecDir != -vecUp)
		vecLeft = vecUp.Cross(vecDir).Normalized();
	else
		vecLeft = Vector(0, 1, 0);

	SetForwardVector(vecDir);
	SetLeftVector(vecLeft);
	SetUpVector(vecDir.Cross(vecLeft).Normalized());
}