}
if (right || up)
{
- angle = angles[ROLL] * (M_PI*2 / 360);
- sr = sin(angle);
- cr = cos(angle);
- if (right)
+ if (angles[ROLL])
{
- right[0] = -1*(sr*sp*cy+cr*-sy);
- right[1] = -1*(sr*sp*sy+cr*cy);
- right[2] = -1*(sr*cp);
+ angle = angles[ROLL] * (M_PI*2 / 360);
+ sr = sin(angle);
+ cr = cos(angle);
+ if (right)
+ {
+ right[0] = -1*(sr*sp*cy+cr*-sy);
+ right[1] = -1*(sr*sp*sy+cr*cy);
+ right[2] = -1*(sr*cp);
+ }
+ if (up)
+ {
+ up[0] = (cr*sp*cy+-sr*-sy);
+ up[1] = (cr*sp*sy+-sr*cy);
+ up[2] = cr*cp;
+ }
}
- if (up)
+ else
{
- up[0] = (cr*sp*cy+-sr*-sy);
- up[1] = (cr*sp*sy+-sr*cy);
- up[2] = cr*cp;
+ if (right)
+ {
+ right[0] = sy;
+ right[1] = -cy;
+ right[2] = 0;
+ }
+ if (up)
+ {
+ up[0] = (sp*cy);
+ up[1] = (sp*sy);
+ up[2] = cp;
+ }
}
}
}
}
if (left || up)
{
- angle = angles[ROLL] * (M_PI*2 / 360);
- sr = sin(angle);
- cr = cos(angle);
- if (left)
+ if (angles[ROLL])
{
- left[0] = sr*sp*cy+cr*-sy;
- left[1] = sr*sp*sy+cr*cy;
- left[2] = sr*cp;
+ angle = angles[ROLL] * (M_PI*2 / 360);
+ sr = sin(angle);
+ cr = cos(angle);
+ if (left)
+ {
+ left[0] = sr*sp*cy+cr*-sy;
+ left[1] = sr*sp*sy+cr*cy;
+ left[2] = sr*cp;
+ }
+ if (up)
+ {
+ up[0] = cr*sp*cy+-sr*-sy;
+ up[1] = cr*sp*sy+-sr*cy;
+ up[2] = cr*cp;
+ }
}
- if (up)
+ else
{
- up[0] = cr*sp*cy+-sr*-sy;
- up[1] = cr*sp*sy+-sr*cy;
- up[2] = cr*cp;
+ if (left)
+ {
+ left[0] = -sy;
+ left[1] = cy;
+ left[2] = 0;
+ }
+ if (up)
+ {
+ up[0] = sp*cy;
+ up[1] = sp*sy;
+ up[2] = cp;
+ }
}
}
}
#include "matrixlib.h"
-void Matrix4x4_Print (const matrix4x4_t *in)
+void Matrix4x4_Print(const matrix4x4_t *in)
{
Con_Printf("%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n%f %f %f %f\n"
, in->m[0][0], in->m[0][1], in->m[0][2], in->m[0][3]