mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
25 lines
670 B
C++
25 lines
670 B
C++
#include "Matrix4.h"
|
|
#include "Quaternion.h"
|
|
|
|
USING_NS_BF;
|
|
|
|
Matrix4 Matrix4::sIdentity(
|
|
1.0f, 0.0f, 0.0f, 0.0f,
|
|
0.0f, 1.0f, 0.0f, 0.0f,
|
|
0.0f, 0.0f, 1.0f, 0.0f,
|
|
0.0f, 0.0f, 0.0f, 1.0f);
|
|
|
|
Matrix4 Matrix4::CreateTransform(const Vector3& position, const Vector3& scale, const Quaternion& orientation)
|
|
{
|
|
// Ordering:
|
|
// 1. Scale
|
|
// 2. Rotate
|
|
// 3. Translate
|
|
|
|
Matrix4 rot = orientation.ToMatrix();
|
|
return Matrix4(
|
|
scale.mX * rot.m00, scale.mY * rot.m01, scale.mZ * rot.m02, position.mX,
|
|
scale.mX * rot.m10, scale.mY * rot.m11, scale.mZ * rot.m12, position.mY,
|
|
scale.mX * rot.m20, scale.mY * rot.m21, scale.mZ * rot.m22, position.mZ,
|
|
0, 0, 0, 1);
|
|
}
|