################################################
## Simple use of setOrientation()
## by Spike1907
## March 11th, 2006
################################################
from GameLogic import getCurrentController as GCC
from math import atan2, asin, sin, cos, radians, degrees
o = GCC().getOwner()
def matToEuler():
ori = GCC().getOwner().getOrientation()
J = -asin(ori[0][2])
cJ = cos(J)
if cJ!=0.0:
cJ = 1.0/cJ
I = atan2(ori[1][2] * cJ , ori[2][2] * cJ)
K = atan2(ori[0][1] * cJ , ori[0][0] * cJ)
return (degrees(I) , degrees(J) , degrees(K))
def eulerToMat(I, J, K):
A , B = sin(I), cos(I)
C , D = sin(J), cos(J)
E , F = sin(K), cos(K)
AC, BC = A*C, B*C
return [[D*F , D*E , -C],
[AC*F-B*E, AC*E+B*F, A*D],
[BC*F+A*E, BC*E-A*F, B*D]]
o.setOrientation( eulerToMat(45,0,0) )