129 lines
3.7 KiB
C#
129 lines
3.7 KiB
C#
|
using System;
|
||
|
using System.Buffers;
|
||
|
using System.IO;
|
||
|
using MemoryPack;
|
||
|
using Unity.Mathematics;
|
||
|
|
||
|
namespace BITKit
|
||
|
{
|
||
|
public static class UnityMathematicsSupportExtensions
|
||
|
{
|
||
|
#region float2
|
||
|
public static float2 ReadFloat2(this BinaryReader reader)
|
||
|
{
|
||
|
return new float2()
|
||
|
{
|
||
|
x = reader.ReadSingle(),
|
||
|
y = reader.ReadSingle(),
|
||
|
};
|
||
|
}
|
||
|
public static void WriteFloat2(this BinaryWriter writer, float2 value)
|
||
|
{
|
||
|
writer.Write(value.x);
|
||
|
writer.Write(value.y);
|
||
|
}
|
||
|
#endregion
|
||
|
#region float3
|
||
|
public static float3 ReadFloat3(this BinaryReader reader)
|
||
|
{
|
||
|
return new float3()
|
||
|
{
|
||
|
x = reader.ReadSingle(),
|
||
|
y = reader.ReadSingle(),
|
||
|
z = reader.ReadSingle(),
|
||
|
};
|
||
|
}
|
||
|
public static void WriteFloat3(this BinaryWriter writer, float3 value)
|
||
|
{
|
||
|
//value.x = MathB.Fix(value.x);
|
||
|
//value.y = MathB.Fix(value.y);
|
||
|
//value.z = MathB.Fix(value.z);
|
||
|
|
||
|
writer.Write(value.x);
|
||
|
writer.Write(value.y);
|
||
|
writer.Write(value.z);
|
||
|
}
|
||
|
#endregion
|
||
|
#region float4
|
||
|
public static float4 ReadFloat4(this BinaryReader reader)
|
||
|
{
|
||
|
return new float4()
|
||
|
{
|
||
|
x = reader.ReadSingle(),
|
||
|
y = reader.ReadSingle(),
|
||
|
z = reader.ReadSingle(),
|
||
|
w = reader.ReadSingle(),
|
||
|
};
|
||
|
}
|
||
|
|
||
|
public static void WriteFloat4(this BinaryWriter writer, float4 value)
|
||
|
{
|
||
|
//value.x = MathB.Fix(value.x);
|
||
|
//value.y = MathB.Fix(value.y);
|
||
|
//value.z = MathB.Fix(value.z);
|
||
|
//value.w = MathB.Fix(value.z);
|
||
|
|
||
|
|
||
|
writer.Write(value.x);
|
||
|
writer.Write(value.y);
|
||
|
writer.Write(value.z);
|
||
|
writer.Write(value.w);
|
||
|
}
|
||
|
#endregion
|
||
|
#region quaternion
|
||
|
public static quaternion ReadQuaternion(this BinaryReader reader)
|
||
|
{
|
||
|
return new(reader.ReadFloat4());
|
||
|
}
|
||
|
public static void WriteQuaternion(this BinaryWriter writer, quaternion value)
|
||
|
{
|
||
|
writer.WriteFloat4(value.value);
|
||
|
}
|
||
|
#endregion
|
||
|
}
|
||
|
public class UnityMathematicsSupport_float2 : NetMessageReader<float2>
|
||
|
{
|
||
|
public override float2 ReadBinary(BinaryReader reader)
|
||
|
{
|
||
|
return reader.ReadFloat2();
|
||
|
}
|
||
|
public override void WriteBinary(BinaryWriter writer, float2 value)
|
||
|
{
|
||
|
writer.WriteFloat2(value);
|
||
|
}
|
||
|
}
|
||
|
public class UnityMathematicsSupport_float3 : NetMessageReader<float3>
|
||
|
{
|
||
|
public override float3 ReadBinary(BinaryReader reader)
|
||
|
{
|
||
|
return reader.ReadFloat3();
|
||
|
}
|
||
|
public override void WriteBinary(BinaryWriter writer, float3 value)
|
||
|
{
|
||
|
writer.WriteFloat3(value);
|
||
|
}
|
||
|
}
|
||
|
public class UnityMathematicsSupport_float4 : NetMessageReader<float4>
|
||
|
{
|
||
|
public override float4 ReadBinary(BinaryReader reader)
|
||
|
{
|
||
|
return reader.ReadFloat4();
|
||
|
}
|
||
|
|
||
|
public override void WriteBinary(BinaryWriter writer, float4 value)
|
||
|
{
|
||
|
writer.WriteFloat4(value);
|
||
|
}
|
||
|
}
|
||
|
public class UnityMathematicsSupport_quaternion : NetMessageReader<quaternion>
|
||
|
{
|
||
|
public override quaternion ReadBinary(BinaryReader reader)
|
||
|
{
|
||
|
return reader.ReadFloat4();
|
||
|
}
|
||
|
public override void WriteBinary(BinaryWriter writer, quaternion value)
|
||
|
{
|
||
|
writer.WriteQuaternion(value);
|
||
|
}
|
||
|
}
|
||
|
}
|