Added @mtheall 's Mtx_Multiply() enhancement.

This commit is contained in:
Thompson Lee 2016-08-05 01:02:54 -04:00
parent dd546051dc
commit 6a77eb1dcf

View File

@ -1,7 +1,16 @@
#include <c3d/maths.h> #include <c3d/maths.h>
void Mtx_Multiply(C3D_Mtx* __restrict out, const C3D_Mtx* a, const C3D_Mtx* b) void Mtx_Multiply(C3D_Mtx* out, const C3D_Mtx* a, const C3D_Mtx* b)
{ {
// if out is a or b, then we need to avoid overwriting them
if(out == a || out == b)
{
C3D_Mtx tmp;
Mtx_Multiply(&tmp, a, b);
Mtx_Copy(out, &tmp);
return;
}
// http://www.wolframalpha.com/input/?i={{a,b,c,d},{e,f,g,h},{i,j,k,l},{m,n,o,p}}{{α,β,γ,δ},{ε,θ,ι,κ},{λ,μ,ν,ξ},{ο,π,ρ,σ}} // http://www.wolframalpha.com/input/?i={{a,b,c,d},{e,f,g,h},{i,j,k,l},{m,n,o,p}}{{α,β,γ,δ},{ε,θ,ι,κ},{λ,μ,ν,ξ},{ο,π,ρ,σ}}
int i, j; int i, j;
for (j = 0; j < 4; ++j) for (j = 0; j < 4; ++j)