float3x3 float3x3::FromEulerXYX(float x2, float y, float x) { float3x3 r; Set3x3PartRotateEulerXYX(r, x2, y, x); assert(r.Equals(float3x3::RotateX(x2) * float3x3::RotateY(y) * float3x3::RotateX(x))); return r; }
float3x4 float3x4::FromEulerXYX(float x2, float y, float x) { float3x4 r; r.SetTranslatePart(0,0,0); Set3x3PartRotateEulerXYX(r, x2, y, x); assume(r.Equals(float3x4::RotateX(x2) * float3x4::RotateY(y) * float3x4::RotateX(x))); return r; }