Why does FRotator start with Pitch (Y-axis)?

Is there a historical reason or mathematical correctness that FRotator’s first parameter is Pitch (Y-axis) and not Roll (X-axis)?

It seems Blueprint implementation handles FRotator construction in a logical way:

KISMET_MATH_FORCEINLINE
FRotator UKismetMathLibrary::MakeRotator(float Roll, float Pitch, float Yaw)
{
	return FRotator(Pitch,Yaw,Roll);
}

According to Wikipedia (Euler angles - Wikipedia)

Tait–Bryan angles are also called Cardan angles; nautical angles; heading, elevation, and bank; or yaw, pitch, and roll.
So in this case the order is Z, Y, X.

2 Likes