Added missing quaternion to Euler functions that are currently used by Dots.Animation. Original functions come from core UnityEngine code unity\Runtime\Math\Simd\vec-quat.h:
float3 EulerXYZ(quaternion)
float3 EulerXZY(quaternion)
float3 EulerYXZ(quaternion)
float3 EulerYZX(quaternion)
float3 EulerZXY(quaternion)
float3 EulerZYX(quaternion)
float3 Euler(quaternion, RotationOrder)
Added float math.angle(quaternion q1, quaternion q2) to determine angle between two quaternions
Fixed nlerp to be branchless
Fixed quaternion mul to consider sign like core UnityEngine code.
Added chgsign and it's vector variants in order to change the sign of a value based on the most significant bit of another value.
unity\Runtime\Math\Simd\vec-quat.h
:float3 EulerXYZ(quaternion)
float3 EulerXZY(quaternion)
float3 EulerYXZ(quaternion)
float3 EulerYZX(quaternion)
float3 EulerZXY(quaternion)
float3 EulerZYX(quaternion)
float3 Euler(quaternion, RotationOrder)
float math.angle(quaternion q1, quaternion q2)
to determine angle between two quaternionsnlerp
to be branchlesschgsign
and it's vector variants in order to change the sign of a value based on the most significant bit of another value.