1
This commit is contained in:
103
Core/Binary/UnityMathematicsSupport.cs
Normal file
103
Core/Binary/UnityMathematicsSupport.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Mathematics;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace BITKit
|
||||
{
|
||||
public static class UnityMathematicsSupportExtensions
|
||||
{
|
||||
#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_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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user