MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / xMat3x3RMulRotY

Function xMat3x3RMulRotY

src/SB/Core/x/xMath3.cpp:372–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

370}
371
372void xMat3x3RMulRotY(xMat3x3* o, const xMat3x3* m, F32 t)
373{
374 F32 cos = icos(t);
375 F32 sin = isin(t);
376 if (o == m)
377 {
378 F32 temp1 = o->right.x;
379 F32 temp2 = o->right.z;
380 o->right.z = ((cos * temp2) - (sin * temp1));
381 o->right.x = ((cos * temp1) + (sin * temp2));
382
383 temp1 = o->up.x;
384 temp2 = o->up.z;
385 o->up.z = ((cos * temp2) - (sin * temp1));
386 o->up.x = ((cos * temp1) + (sin * temp2));
387
388 temp1 = o->at.x;
389 temp2 = o->at.z;
390 o->at.z = ((cos * temp2) - (sin * temp1));
391 o->at.x = ((cos * temp1) + (sin * temp2));
392 }
393 else
394 {
395 o->right.x = (cos * m->right.x + (sin * m->right.z));
396 o->right.y = m->right.y;
397 o->right.z = (cos * m->right.z - (sin * m->right.x));
398
399 o->up.x = (cos * m->up.x + (sin * m->up.z));
400 o->up.y = m->up.y;
401 o->up.z = (cos * m->up.z - (sin * m->up.x));
402
403 o->at.x = (cos * m->at.x + (sin * m->at.z));
404 o->at.y = m->at.y;
405 o->at.z = (cos * m->at.z - (sin * m->at.x));
406
407 o->flags = 0;
408 }
409}
410
411void xMat3x3Transpose(xMat3x3* o, const xMat3x3* m)
412{

Callers 1

zEntPickup_SceneUpdateFunction · 0.50

Calls 2

icosFunction · 0.85
isinFunction · 0.85

Tested by

no test coverage detected