math_unity_conversion.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #if !UNITY_DOTSPLAYER
  2. using UnityEngine;
  3. #pragma warning disable 0660, 0661
  4. namespace Unity.Mathematics
  5. {
  6. public partial struct float2
  7. {
  8. public static implicit operator Vector2(float2 v) { return new Vector2(v.x, v.y); }
  9. public static implicit operator float2(Vector2 v) { return new float2(v.x, v.y); }
  10. }
  11. public partial struct float3
  12. {
  13. public static implicit operator Vector3(float3 v) { return new Vector3(v.x, v.y, v.z); }
  14. public static implicit operator float3(Vector3 v) { return new float3(v.x, v.y, v.z); }
  15. }
  16. public partial struct float4
  17. {
  18. public static implicit operator float4(Vector4 v) { return new float4(v.x, v.y, v.z, v.w); }
  19. public static implicit operator Vector4(float4 v) { return new Vector4(v.x, v.y, v.z, v.w); }
  20. }
  21. public partial struct quaternion
  22. {
  23. public static implicit operator Quaternion(quaternion q) { return new Quaternion(q.value.x, q.value.y, q.value.z, q.value.w); }
  24. public static implicit operator quaternion(Quaternion q) { return new quaternion(q.x, q.y, q.z, q.w); }
  25. }
  26. public partial struct float4x4
  27. {
  28. public static implicit operator float4x4(Matrix4x4 m) { return new float4x4(m.GetColumn(0), m.GetColumn(1), m.GetColumn(2), m.GetColumn(3)); }
  29. public static implicit operator Matrix4x4(float4x4 m) { return new Matrix4x4(m.c0, m.c1, m.c2, m.c3); }
  30. }
  31. }
  32. #endif