using System; using GlitchyEngine.Math; using GlitchyEngine.Math.Attributes; namespace GlitchyEngine.Math; // TODO: Currently no VectorMath-Attribute because -uint results in long [Vector(typeof(uint), 2, "uint")] [VectorLogic] [ComparableVector] [VectorCast(typeof(int2), true)] [VectorCast(typeof(float2), true)] public partial struct uint2 { public static uint2 operator ~(uint2 value) { return new uint2(~value.X, ~value.Y); } } [Vector(typeof(uint), 3, "uint")] [VectorLogic] [ComparableVector] [VectorCast(typeof(int3), true)] [VectorCast(typeof(float3), true)] public partial struct uint3 { public static uint3 operator ~(uint3 value) { return new uint3(~value.X, ~value.Y, ~value.Z); } } [Vector(typeof(uint), 4, "uint")] [VectorLogic] [ComparableVector] [VectorCast(typeof(int4), true)] [VectorCast(typeof(float4), true)] public partial struct uint4 { public static uint4 operator ~(uint4 value) { return new uint4(~value.X, ~value.Y, ~value.Z, ~value.W); } }