1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using System.IO;
- using UnityEngine;
- namespace MeidoPhotoStudio.Plugin;
- public static class BinaryExtensions
- {
- public static string ReadNullableString(this BinaryReader binaryReader) =>
- binaryReader.ReadBoolean()
- ? binaryReader.ReadString()
- : null;
- public static void WriteNullableString(this BinaryWriter binaryWriter, string str)
- {
- binaryWriter.Write(str is not null);
- if (str is not null)
- binaryWriter.Write(str);
- }
- public static void Write(this BinaryWriter binaryWriter, Vector3 vector3)
- {
- binaryWriter.Write(vector3.x);
- binaryWriter.Write(vector3.y);
- binaryWriter.Write(vector3.z);
- }
- public static void WriteVector3(this BinaryWriter binaryWriter, Vector3 vector3)
- {
- binaryWriter.Write(vector3.x);
- binaryWriter.Write(vector3.y);
- binaryWriter.Write(vector3.z);
- }
- public static Vector2 ReadVector2(this BinaryReader binaryReader) =>
- new(binaryReader.ReadSingle(), binaryReader.ReadSingle());
- public static Vector3 ReadVector3(this BinaryReader binaryReader) =>
- new(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle());
- public static Vector4 ReadVector4(this BinaryReader binaryReader) =>
- new(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle());
- public static void Write(this BinaryWriter binaryWriter, Quaternion quaternion)
- {
- binaryWriter.Write(quaternion.x);
- binaryWriter.Write(quaternion.y);
- binaryWriter.Write(quaternion.z);
- binaryWriter.Write(quaternion.w);
- }
- public static void WriteQuaternion(this BinaryWriter binaryWriter, Quaternion quaternion)
- {
- binaryWriter.Write(quaternion.x);
- binaryWriter.Write(quaternion.y);
- binaryWriter.Write(quaternion.z);
- binaryWriter.Write(quaternion.w);
- }
- public static Quaternion ReadQuaternion(this BinaryReader binaryReader) =>
- new(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle());
- public static void Write(this BinaryWriter binaryWriter, Color colour)
- {
- binaryWriter.Write(colour.r);
- binaryWriter.Write(colour.g);
- binaryWriter.Write(colour.b);
- binaryWriter.Write(colour.a);
- }
- public static void WriteColour(this BinaryWriter binaryWriter, Color colour)
- {
- binaryWriter.Write(colour.r);
- binaryWriter.Write(colour.g);
- binaryWriter.Write(colour.b);
- binaryWriter.Write(colour.a);
- }
- public static Color ReadColour(this BinaryReader binaryReader) =>
- new(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle());
- public static Matrix4x4 ReadMatrix4x4(this BinaryReader binaryReader)
- {
- Matrix4x4 matrix = default;
- for (var i = 0; i < 16; i++)
- matrix[i] = binaryReader.ReadSingle();
- return matrix;
- }
- }
|