All pastes #352417 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-02-12 20:22 UTC
rendered paste body
Function 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