From 3451ca26c7658d660b41f5be6839a4f9cc1eb714 Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Sun, 4 Jan 2026 14:50:09 -0600 Subject: [PATCH] use matrix multiplication operator --- main.cpp | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/main.cpp b/main.cpp index 2f0f1d7..356cc99 100644 --- a/main.cpp +++ b/main.cpp @@ -573,10 +573,9 @@ void Animate(float t) } */ -static inline void MatrixTRS(D3DXMATRIX * transform, - const D3DXVECTOR3 * translation, - const D3DXQUATERNION * rotation, - const D3DXVECTOR3 * scaling) +static inline D3DXMATRIX MatrixTRS(const D3DXVECTOR3 * translation, + const D3DXQUATERNION * rotation, + const D3DXVECTOR3 * scaling) { D3DXMATRIX mTranslation; D3DXMatrixTranslation(&mTranslation, translation->x, translation->y, translation->z); @@ -587,8 +586,7 @@ static inline void MatrixTRS(D3DXMATRIX * transform, D3DXMATRIX mScaling; D3DXMatrixScaling(&mScaling, scaling->x, scaling->y, scaling->z); - D3DXMatrixMultiply(transform, &mRotation, &mTranslation); - D3DXMatrixMultiply(transform, transform, &mScaling); + return mScaling * mRotation * mTranslation; } static inline float fract(float f) @@ -640,21 +638,13 @@ void Animate(float t) const Node * node = skin->joints[1]; // T * R * S - - D3DXMATRIX global_transform; - MatrixTRS(&global_transform, &node->translation, &rotation, &node->scale); + D3DXMATRIX global_transform = MatrixTRS(&node->translation, &rotation, &node->scale); D3DXMatrixIdentity(&mJoints[0]); - D3DXMatrixIdentity(&mJoints[1]); - const D3DXMATRIX * inverse_bind_matrix = &skin->inverse_bind_matrices[1]; - //D3DXMatrixMultiply(&mJoints[1], &global_transform, inverse_bind_matrix); - //D3DXMatrixIdentity(&mJoints[1]); - //g_World1 = global_transform; + const D3DXMATRIX& inverse_bind_matrix = skin->inverse_bind_matrices[1]; - D3DXMatrixMultiply(&mJoints[1], inverse_bind_matrix, &global_transform); - //mJoints[1] = global_transform; - //g_World1 = *inverse_bind_matrix; + mJoints[1] = inverse_bind_matrix * global_transform; } void Render()