rendered paste bodyFunction MakeQuatFromEuler:tquaternion(x:Double, y:Double, z:Double)
Local roll:Double = DegreesToRadians(x)
Local pitch:Double= DegreesToRadians(y)
Local yaw:Double = DegreesToRadians(z)
Local cyaw:Double, cpitch:Double, croll:Double, syaw:Double, spitch:Double, sroll:Double
Local cyawcpitch:Double, syawspitch:Double, cyawspitch:Double, syawcpitch:Double
cyaw = Cos(0.5 * yaw)
cpitch = Cos(0.5 * pitch)
croll = Cos(0.5 * roll)
syaw = Sin(0.5 * yaw)
spitch = Sin(0.5 * pitch)
sroll = Sin(0.5 * roll)
cyawcpitch = cyaw*cpitch
syawspitch = syaw*spitch
cyawspitch = cyaw*spitch
syawcpitch = syaw*cpitch
Local nf:Double = Double (cyawcpitch * croll + syawspitch * sroll)
Local xf:Double = Double (cyawcpitch * sroll - syawspitch * croll)
Local yf:Double = Double (cyawspitch * croll + syawcpitch * sroll)
Local zf:Double = Double (syawcpitch * croll - cyawspitch * sroll)
Return tquaternion.Create(nf,xf,yf,zf)
End Function