Converting a matrix back to euler angles?

BlitzMax Forums/BlitzMax Programming/Converting a matrix back to euler angles?

Well this works better...
Method Point(X#,Y#,Z#)

	Local mat:Float[16]
   	glMatrixMode(GL_MODELVIEW)
   	glPushMatrix()
    	glLoadIdentity()
	gluLookAt(Self.X#,Self.Y#,Self.Z#, X#,Y#,Z#, 0,1,0)
    	glGetFloatv(GL_MODELVIEW_MATRIX, Varptr(mat[0]) );
    	glPopMatrix()

	Local angle_y!   =  ASin( mat[8]); 
	Local C!         =  -Cos( angle_y );
    	Local angle_x!   = ATan2( -mat[9]/C, mat[10]/C )
    	Local angle_z!   = ATan2( -mat[4]/C , mat[0]/C ) 
	If mat[10]<0 angle_x:+180 ; angle_z:+180
		
	Pitch = -angle_x		; If Pitch<0 Pitch:+360
	Yaw   = ATan2(-mat[8],mat[10])	; If Yaw<0 Yaw:+360
	Roll  = angle_z			; If Roll<0 Roll:+360
	FlushMem()
	
EndMethod


But now I've noticed a tiny problem with rolling... Doh
Having any luck Antony?