|
Lines 186-192
Link Here
|
| 186 |
newMatrix[8] = m1[0]*m2[8] + m1[4]*m2[9] + m1[8]*m2[10] + m1[12]*m2[11]; |
186 |
newMatrix[8] = m1[0]*m2[8] + m1[4]*m2[9] + m1[8]*m2[10] + m1[12]*m2[11]; |
| 187 |
newMatrix[9] = m1[1]*m2[8] + m1[5]*m2[9] + m1[9]*m2[10] + m1[13]*m2[11]; |
187 |
newMatrix[9] = m1[1]*m2[8] + m1[5]*m2[9] + m1[9]*m2[10] + m1[13]*m2[11]; |
| 188 |
newMatrix[10] = m1[2]*m2[8] + m1[6]*m2[9] + m1[10]*m2[10] + m1[14]*m2[11]; |
188 |
newMatrix[10] = m1[2]*m2[8] + m1[6]*m2[9] + m1[10]*m2[10] + m1[14]*m2[11]; |
| 189 |
newMatrix[11] = m1[3]*m2[8] + m1[7]*m2[10] + m1[11]*m2[10] + m1[15]*m2[11]; |
189 |
newMatrix[11] = m1[3]*m2[8] + m1[7]*m2[9] + m1[11]*m2[10] + m1[15]*m2[11]; |
| 190 |
|
190 |
|
| 191 |
newMatrix[12] = m1[0]*m2[12] + m1[4]*m2[13] + m1[8]*m2[14] + m1[12]*m2[15]; |
191 |
newMatrix[12] = m1[0]*m2[12] + m1[4]*m2[13] + m1[8]*m2[14] + m1[12]*m2[15]; |
| 192 |
newMatrix[13] = m1[1]*m2[12] + m1[5]*m2[13] + m1[9]*m2[14] + m1[13]*m2[15]; |
192 |
newMatrix[13] = m1[1]*m2[12] + m1[5]*m2[13] + m1[9]*m2[14] + m1[13]*m2[15]; |
|
Lines 308-314
Link Here
|
| 308 |
|
308 |
|
| 309 |
f32 rotx, roty, X, Z; |
309 |
f32 rotx, roty, X, Z; |
| 310 |
|
310 |
|
| 311 |
if (fabs(Y)>0.0005f) |
311 |
if (fabs(C)>0.0005f) |
| 312 |
{ |
312 |
{ |
| 313 |
rotx = mat(2,2) / C; |
313 |
rotx = mat(2,2) / C; |
| 314 |
roty = mat(2,1) / C; |
314 |
roty = mat(2,1) / C; |
|
Lines 320-335
Link Here
|
| 320 |
else |
320 |
else |
| 321 |
{ |
321 |
{ |
| 322 |
X = 0.0f; |
322 |
X = 0.0f; |
| 323 |
rotx = -mat(1,1); |
323 |
rotx = mat(1,1); |
| 324 |
roty = mat(1,0); |
324 |
roty = -mat(0,1); |
| 325 |
Z = atan2f( roty, rotx ) * (f32)GRAD_PI; |
325 |
Z = atan2f( roty, rotx ) * (f32)GRAD_PI; |
| 326 |
} |
326 |
} |
| 327 |
|
327 |
|
| 328 |
if (fabs(X)>=360.00f) X=0.00f; |
328 |
if (X<0.00f) X+=360.00f; |
| 329 |
if (fabs(Y)>=360.00f) Y=0.00f; |
329 |
if (Y<0.00f) Y+=360.00f; |
| 330 |
if (fabs(Z)>=360.00f) Z=0.00f; |
330 |
if (Z<0.00f) Z+=360.00f; |
| 331 |
|
331 |
|
| 332 |
return vector3df(X,Y,Z); |
332 |
return vector3df((f32)X,(f32)Y,(f32)Z); |
| 333 |
} |
333 |
} |
| 334 |
|
334 |
|
| 335 |
inline void matrix4::setInverseRotationRadians( const vector3df& rotation ) |
335 |
inline void matrix4::setInverseRotationRadians( const vector3df& rotation ) |