Quaternion rotation nodes have inconsistent application of Euler angles

Issue

Both ‘Rotation’ [3D.Quaternion] and ‘Rotation (Vector3)’ [3D.Quaternion] claim to process euler angles by yaw x pitch x roll (check the tooltip).

However they give different results. Seems like one of them is wrong.

QtoEulerCheck.vl (27.5 KB)

Related

the nodes apply the transformations differently, as can be seen in the code:

public static void RotationVector(Vector3 pitchYawRoll, out Quaternion result)
{
    Stride.Core.Mathematics.Quaternion.RotationYawPitchRoll(pitchYawRoll.X * Float32Extensions.cyclesToRadians,
        pitchYawRoll.Y * Float32Extensions.cyclesToRadians,
        pitchYawRoll.Z * Float32Extensions.cyclesToRadians, out result);
}

this is probably wrong, as the Vector3 pitchYawRoll is input in the function called RotationYawPitchRoll in the wrong order (x,y,z instead of y,x,z)

1 Like

i created an issue on github

2 Likes

Thanks for the report. Will be fixed in upcoming preview (>= 5.3-167).

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.