This works perfectly for yaw and roll, but can't go past 90 degrees pitch. Once this is fixed, I can do parenting and TForm coordinates. I can rotate meshes, amazingly!
(This is Blitz+ 3D code.)
Function MatrixPitch#(matrix)
Return ATan2(Getmatelement(matrix,1,2),Getmatelement(matrix,2,2))
End Function
Function MatrixYaw#(matrix)
Return -ATan2(Getmatelement(matrix,2,0),Getmatelement(matrix,2,2))
End Function
Function MatrixRoll#(matrix)
Return ATan2(Getmatelement(matrix,0,1),Getmatelement(matrix,1,1))
;-ATan2(m(1,0),m(1,1))
End Function
|